《写给程序员的数据挖掘实践指南》——1.4本书体例

1.4本书体例

本书秉承践行学习法。我建议大家用书中提供的Python代码来进行习题练习和实验,而不是被动地阅读本书。多多实验、深入代码并在多个不同数据集上尝试本书中的方法是真正理解技术的关键。

我努力做到如下两个方面之间的平衡:一方面,我详细介绍实用的数据挖掘Python代码以便读者可以使用并对其进行修改;另一方面,读者也能了解背后的数据挖掘技术。为防止读者阅读理论、数学及Python代码时大脑的思维停滞,我加入插图和图片来刺激大脑的另一部分。

Google研究院院长彼得·诺维德(Peter Norvig)在他的Udacity在线课程《计算机程序设计》中提到:

下面我会给出我的解答并讨论。需要注意的是,一个问题可能有多种解决方法。我并不是说我的解答就是唯一的或者最好的。我的解答只是为了让你学习某种编程风格或者技术。如果大家用另外一种方法解决了问题,那很好,真的很好。 所有的学习过程都发生在你的大脑中而非我的大脑中。因此,重要的一点是理解你的代码和我的代码之间的关系以及自己得到解答方法,这样你就能检查我的代码,之后或许能够挑出几项以后可以使用的线索或技术。

我十分同意上述说法

本书并不是全面介绍数据挖掘技术的教材。市面上有一些教材,比如Pang-Ning Tan、Michael Steinbach及Vipin Kumar合著的《数据挖掘导论》(Introduction to Data Mining),该教材提供了这些方法的数学基础的深入介绍。而你拿到的本书却是为了提供一个快速、粗略的实用性入门介绍,通过它可以了解数据挖掘技术的基础知识。之后,你可以选择一本更精深的书来填补可能的差距。

本书具有可用性的内容还包括随书附带的Python代码和数据集。我认为这两者的加入会使学习者更容易理解关键概念,同时学习者也不用通过逐行敲入代码来进行学习。

学完本书之后可以做的事
学完本书之后,你可以使用Python或者任意一种你所了解的语言设计实现Web网站的推荐系统。例如,当你浏览Amazon的某款商品或者Pandora的某首歌曲时,一些你可能喜欢的推荐结果也会展示给你。你将学会如何开发这样的系统。此外,本书会提供足够的词汇以使你在数据挖掘开发团队中顺利开展工作。

本书的一个目的是可以帮大家揭开推荐、恐怖识别及其他数据挖掘系统的神秘“面纱”。你至少会对这些系统的运行过程有一个大致的了解。

为什么这本书很重要
为什么你应该花费时间来学习这本关于数据挖掘的书?本章一开始我给出了数据挖掘的几个重要示例。那一部分可以概括如下:存在很多对象(包括电影、音乐、书籍、电饭锅等),这些对象的规模都将急剧增长。这么多对象出现之后的一个问题就是如何找到与我们相关的对象。在所有电影当中,应该看哪些电影?我应该读的下一本书是什么?识别相关内容是数据挖掘要完成的任务。很多Web网站都有专门处理“内容查找”任务的组件。除了上面提到的电影、音乐、书籍及电饭锅之外,你可能还希望推荐关注哪些朋友。如果一份个性化的报纸只展示你感兴趣的内容,你会觉得怎么样?如果你是程序员,尤其是Web开发人员,了解数据挖掘技术十分有用。

好了,现在你该明白为什么要花时间来学习数据挖掘了,但是为什么选择这本书呢?也有一些书从非技术的角度对数据挖掘进行全面的介绍,也存在快速阅读、饶有趣味、价格便宜、适合夜读的书。史蒂芬·贝克(Stephen Baker)撰写的The Numerati是一本好书。我强烈推荐这本书。我在弗吉尼亚和新墨西哥之间驾车时听过这本书的音频版本,这本书确实引人入胜。另一个极端是大学的数据挖掘教材。它们提供了数据挖掘理论和实现的全面深入的分析。我写这本书的目的在于填补上述两者之间的鸿沟。该书为喜欢编程的人设计,这些人也往往称为黑客(hacker)。

这本书适合在计算机边阅读,这样读者可以通过代码来实践

哎呀!

书中也包含数学公式,但是我试图按照普通程序员可以理解的方式来解释这些公式。这些程序员可能忘记了大学时学过的大半数学知识。

如果上面这些还不能说服你的话,我要说的是,本书是免费的,即你完全可以免费共享。

为什么书名中包含“Ancient Art of the Numerati”
2010年6月,我开始考虑书名的事情。我喜欢很聪明的书名,但是不幸的是,我没有这方面的天赋。最近我发表了一篇标题为Linguistic__Dumpster Diving:Geographical Classification of Arabic Text的论文(对,是一篇数据挖掘的论文)。我很喜欢这个标题,因为它与文章内容完全吻合所以显得十分聪明,但是我必须承认这个标题是我太太的主意。我曾经与人合写了一篇标题为Mood and Modality: Out of the theory and____into the fray的论文。它是我的合作者Marjorie McShane给的标题。总之,回到2010年6月,我所有的聪明主意都太含糊,所以你不知道这本书到底要讲什么。最后,我将“写给程序员的数据挖掘实践指南”作为书名的一部分。我相信这给出了本书内容的一个清晰的描述,即这本书是为了给程序员提供入门介绍的。你可能会对如下冒号后面的一句话感到迷惑不解:

Numerati是史蒂芬·贝克(Stephen Baker)构造的一个术语。我们每个人每天都会产生数量惊人的数字化数据。这些数据包括信用卡交易、Twitter 上的推文、Gowalla上的帖子、Foursquare上的签到信息、手机通话、邮件、短信,等等。

你一起床,The Matrix就知道你7:10会在Foggy Bottom站乘地铁,7:32在Westside站下车,然后7:45在5th and Union的星巴克饮一大杯拿铁咖啡,同时吃蓝莓司康饼。你利用Gowalla进行上班打卡,9:35在亚马逊上购买P90X家庭健身锻炼计划(Extreme Home Fitness Workout Program)的13张 DVD套装以及一个单杠,然后在Golden Falafel吃午饭。

史蒂芬·贝克写到:

能够弄清构建数据意义的人仅仅是那些高明的数学家、计算机科学家和工程师。当让我们面对这些眼花缭乱的数据组合时,这些Numerati究竟能够从我们身上学到什么?假定你是纽约北郊区的一个潜在的越野车(SUV)客户,或者是阿尔伯克基(Albuquerque)市一个经常去教堂做礼拜的反堕胎民主党人。或许你是一个将迁到印度南部城市海得拉巴(Hyderabad)的Java程序员,或许是一个正在寻找国内徒步线路、喜欢喝基安蒂红葡萄酒的射手座爵士乐爱好者,此时正在斯德哥尔摩的壁炉边暖暖而坐。不管你是什么人,我们每个人都涉及方方面面的东西,而公司和政府都想对你进行识别和定位。

正如你或许可以猜到的那样,我喜欢术语Numerati以及史蒂芬·贝克对它的描述。

1雷明顿(Renmington),著名的枪械厂商。——译者注
2James Michener(詹姆斯•麦切纳,1907-1997),美国著名的历史小说家。——译者注
3Barry Goldwater(巴里•戈德华特,1909-1998),美国政治家,共和党人,曾任亚利桑那州参议员,是1964年美国总统选举共和党的总统候选人。The Conscience of a Conservative是其1960年出版的一本书。——译者注
4Henry Ford(亨利•福特,1863-1947),美国福特汽车公司的建立者。有人指出,他讲这句话是为当时制造的车只能是黑色而找借口。——译者注
5Sears,著名零售公司。——译者注
6Spotify,一个起源于瑞典的音乐平台,提供包括四大唱片公司和众多独立厂牌在内的约1500万首歌曲的流媒体服务。——译者注
7Consumer Reports是1936年开始由美国消费者协会创办的月刊。——译者注
8Roger Ebert(罗杰•埃伯特,1942-2013),美国影评人、剧本作家,普利策奖获得者。 ——译者注
9Lyndon Johnson(林登•约翰逊,1908-1973),第三十六任美国总统。——译者注
10该广告英语名为“Daisy”,又名“Daisy Girl”或“Peace, Little Girl”,是1964年美国总统选举时候选人林登•约翰逊一方推出的一部备受争议的电视竞选广告,通过该广告抨击另一候选人上台后可能的风险。——译者注
11自动答录电话指的是由计算机系统自动拨号,播放事先录制的电话留言的宣传电话。Robocall是产品促销和政治竞选的常用手段。——译者注
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-12-23 18:28:03

《写给程序员的数据挖掘实践指南》——1.4本书体例的相关文章

《写给程序员的数据挖掘实践指南》——第5章 分类的进一步探讨—算法评估及kNN

第5章 分类的进一步探讨-算法评估及kNN 写给程序员的数据挖掘实践指南 回到上一章中关于运动员的例子.在那个例子中我们构建了一个分类器,输入为运动员的身高.体重,输出为其从事的体育项目-体操.田径或篮球. 因此,左图的Marissa Coleman身高6英尺1英寸,体重160磅.我们的分类器能够将她正确判断为篮球运动员: >>> cl = Classifier('athletesTrainingSet.txt') >>> cl.classify([73, 160])

《写给程序员的数据挖掘实践指南》导读

前言 写给程序员的数据挖掘实践指南 在你面前是一个学习基本的数据挖掘技术的工具.绝大多数数据挖掘教材关注数据挖掘的基础理论知识,因此众所周知给读者带来理解上的困难.当然,不要误解我的意思,那些书中的知识相当重要.但是,如果你是一名想学习一点数据挖掘知识的程序员,你可能会对入门者实用手册感兴趣.而这正是本书的宗旨所在. 本书内容采用"做中学"的思路来组织.我希望读者不是被动地阅读本书,而是通过课后习题和本书提供的Python代码进行实践.我也希望读者积极参与到数据挖掘技术的编程当中.本书

《写给程序员的数据挖掘实践指南》——第1章 数据挖掘简介及本书使用方法

第1章 数据挖掘简介及本书使用方法写给程序员的数据挖掘实践指南假想150年前一个美国小镇的生活情形:大家都互相认识:百货店某天进了一批布料,店员注意到这批布料中某个特定毛边的样式很可能会引起Clancey夫人的高度兴趣,因为他知道Clancey夫人喜欢亮花纹样:于是他在心里记着等Clancey夫人下次光顾时将该布料拿给她看看:Chow Winkler告诉酒吧老板Wilson先生,他考虑将多余的雷明顿(Renmington)1来福枪出售:Wilson先生将这则消息告诉Bud Barclay,因为他

《写给程序员的数据挖掘实践指南》——1.3TB级挖掘是现实不是科幻

1.3TB级挖掘是现实不是科幻 20世纪末,100万词的数据集被认为很大.20世纪90年代我在读研究生时(是的,我有那么老)在Greek New Testament做了一年程序员.大约20万单词的分析就大到不能放在主机内存里而不得不把结果缓存在磁带上,因此必须要安装磁带机. Barbara Friberg依据该结果写成Analytical Greek New Testament一书并公开出版(可以从亚马逊网站上订购).我是当时在明尼苏达大学完成该项目的3名程序员之一. 现在在数T信息上进行数据挖

《写给程序员的数据挖掘实践指南》——5.3混淆矩阵

5.3混淆矩阵 到目前为止,通过计算下列精确率百分比,我们对分类器进行评估: 有时,我们可能希望得到分类器算法的更详细的性能.能够详细揭示性能的一种可视化方法是引入一个称为混淆矩阵(confusion matrix)的表格.混淆矩阵的行代表测试样本的真实类别,而列代表分类器所预测出的类别. 它之所以名为混淆矩阵,是因为很容易通过这个矩阵看清楚算法产生混淆的地方.下面以女运动员分类为例来展示这个矩阵.假设我们有一个由100名女子体操运动员.100名WNBA篮球运动员及100名女子马拉松运动员的属性

《写给程序员的数据挖掘实践指南》——5.1训练集和测试集

5.1训练集和测试集 前一章的最后部分中,我们使用了3个不同的数据集:女子运动员数据集.Iris数据集以及汽车MPG数据集.我们把每个数据集分成两个子集,一个用于构建分类器,该数据集称为训练集(training set).另一个数据集用于评估分类器,该数据集称为测试集(test set).训练集和测试集是数据挖掘中的常用术语. 数据挖掘领域的人永远不会在用于训练系统的数据上进行测试!下面以近邻算法为例来解释为什么不能使用训练数据来测试.如果上述例子中的篮球运动员Marissa Coleman在训

《写给程序员的数据挖掘实践指南》——5.4一个编程的例子

5.4一个编程的例子 回到上一章当中提到的来自卡内基梅隆大学的汽车MPG数据集,该数据集的格式如下: 下面试图基于气缸的数目.排水量(立方英寸).功率.重量和加速时间预测汽车的MPG.我将所有392个实例放到mpgData.txt文件中,然后编写了如下的短Python程序,该程序利用分层采样方法将数据分到10个桶中(数据集及Python代码都可以从网站guidetodatamining.com下载). import random def buckets(filename, bucketName,

《写给程序员的数据挖掘实践指南》——5.6近邻算法的改进

5.6近邻算法的改进 一个普通的分类器的例子是Rote分类器,它只记忆所有的训练集,仅当实例与训练样本精确匹配时才对实例进行分类.如果只在训练集上进行评估,那么Rote分类器的精确率一直是100%.在实际中,由于有些待分类的实例不在训练集中出现,因此Rote分类器并不是一个好的选择.我们可以将前面介绍的近邻分类器看成是Rote分类器的一个扩展.与Rote分类器寻找精确匹配不同的是,近邻方法寻找近似的匹配.Pang Ning Tan.Michael Steinbach和Vipin Kumar在他们

《写给程序员的数据挖掘实践指南》——5.7一个新数据集及挑战

5.7一个新数据集及挑战 现在到考察一个新数据集的时候了,该数据集是美国国立糖尿病.消化和肾脏疾病研究所(United States National Institute of Diabetes and Digestive and Kidney Diseases,简称NIDDK)所开发的皮马印第安人糖尿病数据集(Pima Indians Diabetes Data Set). 令人吃惊的是,有超过30%的皮马人患有糖尿病.与此形成对照的是,美国糖尿病的患病率为8.3%,中国为4.2%. 数据集中