转:数据科学 怎样进行大数据的入门级学习?
数据科学并没有一个独立的学科体系,统计学,机器学习,数据挖掘,数据库,分布式计算,云计算,信息可视化等技术或方法来对付数据。
但从狭义上来看,我认为数据科学就是解决三个问题:
1. data pre-processing;(数据预处理)
2. data interpretation;(数据解读)
3.data modeling and analysis.(数据建模与分析)
这也就是我们做数据工作的三个大步骤:
1、原始数据要经过一连串收集、提取、清洗、整理等等的预处理过程,才能形成高质量的数据;
2、我们想看看数据“长什么样”,有什么特点和规律;
3、按照自己的需要,比如要对数据贴标签分类,或者预测,或者想要从大量复杂的数据中提取有价值的且不易发现的信息,都要对数据建模,得到output。
这三个步骤未必严谨,每个大步骤下面可能依问题的不同也会有不同的小步骤,但按我这几年的经验来看,按照这个大思路走,数据一般不会做跑偏。
这样看来,数据科学其实就是门复合型的技术,既然是技术就从编程语言谈起吧,为了简练,只说说R和Python。但既然是荐数据科学方面的书,我这里就不提R/Python编程基础之类的书了,直接上跟数据科学相关的。
R programming
如果只是想初步了解一下R语言已经R在数据分析方面的应用,那不妨就看看这两本:
R in action:我的R语言大数据101。其实对于一个没有任何编程基础的人来说,一开始就学这本书,学习曲线可能会比较陡峭。但如果配合上一些辅助材料,如官方发布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的问题集(Newest ‘r’ Questions),遇到复杂的问题可在上面搜索,总会找到解决方案的。这样一来,用这本书拿来入门学习也问题不大。而且这本书作者写得也比较轻松,紧贴实战。
Data analysis and graphics using R:使用R语言做数据分析的入门书。这本书的特点也是紧贴实战,没有过多地讲解统计学理论,所以喜欢通过情境应用来学习的人应该会喜欢这本入门书。而且这本书可读性比较强,也就是说哪怕你手头没电脑写不了代码,有事没事拿出这本书翻一翻,也能读得进去。
但如果你先用R来从事实实在在的数据工作,那么上面两本恐怕不够,还需要这些:
Modern applied statistics with S:这本书里统计学的理论就讲得比较多了,好处就是你可以用一本书既复习了统计学,又学了R语言。(S/Splus和R的关系就类似于Unix和Linux,所以用S教程学习R,一点问题都没有)
Data manipulation with R:这本书实务性很强,它教给你怎么从不同格式的原始数据文件里读取、清洗、转换、整合成高质量的数据。当然和任何一本注重实战的书一样,本书也有丰富的真实数据或模拟数据供你练习。对于真正从事数据处理工作的人来说,这本书的内容非常重要,因为对于任何研究,一项熟练的数据预处理技能可以帮你节省大量的时间和精力。否则,你的研究总是要等待你的数据。
R Graphics Cookbook:想用R做可视化,就用这本书吧。150多个recipes,足以帮你应付绝大多数类型的数据。以我现在极业余的可视化操作水平来看,R是最容易做出最漂亮的图表的工具了。
An introduction to statistical learning with application in R:这本书算是著名的the element of statistical learning的姊妹篇,后者更注重统计(机器)学习的模型和算法,而前者所涉及的模型和算法原没有后者全面或深入,但却是用R来学习和应用机器学习的很好的入口。
A handbook of statistical analysis using R:这本书内容同样非常扎实,很多统计学的学生就是用这本书来学习用R来进行统计建模的。
Python
Think Python,Think Stats,Think Bayes:这是Allen B. Downey写的著名的Think X series三大卷。其实是三本精致的小册子,如果想快速地掌握Python在统计方面的操作,好好阅读这三本书,认真做习题,答案链接在书里有。这三本书学通了,就可以上手用Python进行基本的统计建模了。
Python For Data Analysis: 作者是pandas的主要开发者,也正是Pandas使Python能够像R一样拥有dataframe的功能,能够处理结构比较复杂的数据。这本书其实analysis讲得不多,说成数据处理应该更合适。掌握了这本书,处理各种糟心的数据就问题不大了。
Introduction to Python for Econometrics, Statistics and Data Analysis:这本书第一章就告诉你要安装Numpy, Scipy, Matplotlib, Pandas, IPython等等。然后接下来的十好几章就是逐一介绍这几个库该怎么用。很全面,但读起来比较枯燥,可以用来当工具书。
Practical Data Analysis: 这本书挺奇葩,貌似很畅销,但作者把内容安排得东一榔头西一棒子,什么都讲一点,但一个都没讲透。这本书可以作为我们学习数据分析的一个索引,看到哪块内容有意思,就顺着它这个藤去摸更多的瓜。
Python Data Visualization Cookbook: 用Python做可视化的教材肯定不少,我看过的也就这一本,觉得还不错。其实这类书差别都不会很大,咬住一本啃下来就是王道。
- Exploratory Data Analysis 和 Data Visualization
Exploratory Data Analysis:John Tukey写于1977年的经典老教材,是这一领域的开山之作。如今EDA已经是统计学里的重要一支,但当时还是有很多人对他的工作不屑一顾。可他爱数据,坚信数据可以以一种出人意料的方式呈现出来。正是他的努力,让数据可视化成为一门无比迷人的技术。但这本书不推荐阅读了,内容略过时。要想完整地了解EDA,推荐下一本:
Exploratory Data Analysis with MATLAB:这本书虽然标题带了个MATLAB,但实际上内容几乎没怎么讲MATLAB,只是每讲一个方法的时候就列出对应的MATALB函数。这本书的重要之处在于,这是我读过的讲EDA最系统的一本书,除了对visualization有不输于John Tucky的讲解外,对于高维的数据集,通过怎样的方法才能让我们从中找到潜在的pattern,这本书也做了详尽的讲解。全书所以案例都有对应的MATALB代码,而且还提供了GUI(图形用户界面)。所以这本书学起来还是相当轻松愉悦的。
Visualize This:中译本叫“鲜活的数据”,作者是个“超级数据迷”,建立了一个叫http://flowingdata.com的网页展示他的数据可视化作品,这本书告诉你该选择什么样的可视化工具,然后告诉你怎样visualize关系型数据、时间序列、空间数据等,最后你就可以用数据讲故事了。如果你只想感受一下数据可视化是个什么,可以直接点开下面这个链接感受下吧!A tour through the visualization zoo(A Tour Through the Visualization Zoo)
Machine Learning & Data Mining
这一块就不多说了,不是因为它不重要,而是因为它太太太重要。所以这一部分就推两本书,都是”世界名著“,都比较难读,需要一点点地啃。这两本书拿下,基本就算是登堂入室了。其实作为机器学习的延伸和深化,概率图模型(PGM)和深度学习(deep learning)同样值得研究,特别是后者现在简直火得不得了。但PGM偏难,啃K.Daphne那本大作实在太烧脑,也没必要,而且在数据领域的应用也不算很广。deep learning目前工业界的步子迈得比学术界的大,各个domain的应用如火如荼,但要有公认的好教材问世则还需时日,所以PGM和deep learning这两块就不荐书了。
The Element of Statistical Learning:要学机器学习,如果让我只推荐一本书,我就推荐这本巨著。Hastie、Tibshirani、Friedman这三位大牛写书写得太用心了,大厦建得够高够大,结构也非常严谨,而且很有前瞻性,纳入了很多前沿的内容,而不仅仅是一部综述性的教材。(图表也做得非常漂亮,应该是用R语言的ggplot2做的。)这本书注重讲解模型和算法本身,所以需要具备比较扎实的数理基础,啃起这本书来才不会太吃力。事实上掌握模型和算法的原理非常重要。机器学习(统计学习)的库现在已经非常丰富,即使你没有完全搞懂某个模型或算法的原理和过程,只要会用那几个库,机器学习也能做得下去。但你会发现你把数据代进去,效果永远都不好。但是,当你透彻地理解了模型和算法本身,你再调用那几个库的时候,心情是完全不一样的,效果也不一样。
Data Mining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 数据挖掘的教材汗牛充栋,之所以推荐这本韩家炜爷爷的,是因为虽然他这本书的出发点是应用,但原理上的内容也一点没有落下,内容非常完整。而且紧跟时代,更新的很快,我看过的是第二版,就已经加进去了social network analysis这种当时的前沿内容。现在已经有第三版了,我还没看过,但应该也加入了不少新内容。其实这本书并不难读,只是篇幅较长,啃起来比较耗时。
其实这两本书里单拎出来一块内容可能又是几本书的节奏,比如bayesian方法,再拿出两三本书来讲也不为过,我个人用到的比较多,而且也确实有不少好书。但并非是所有data scientist都要用到,所以这一块就不再细说。
还有一些印象比较深刻的书:
Big Data Glossary: 主要讲解大数据处理技术及工具,内容涵盖了NoSQL,MapReduce,Storage,Servers,NLP库与工具包,机器学习工具包,数据可视化工具包,数据清洗,序列化指南等等。总之,是一本辞典式的大数据入门指导。
Mining of Massive Datasets:这本书是斯坦福大学Web Mining的讲义,里面很多内容与韩家炜的Data Mining那本书重合,但这本书里详细地讲了MapReduce的设计原理,PageRank(Google创业时期的核心排序算法,现在也在不断优化更新)讲解得也比较详细。
Developing Analytic Talent: 作者是个从事了十几年数据工作的geek,技术博客写得很有个人风格,写的内容都比较偏门,通常只有具备相关数据处理经验的人能体会出来,丝毫不照顾初学者的感受。比如他会谈到当数据流更新太快时该怎么办,或者MapReduce在什么时候不好用的问题,才不管你懂不懂相关基础原理。所以这本书不太适合初学者阅读。这本书其实是作者的博客文章的集结,用how to become a data scientist的逻辑把他近几年的博客文章串联了起来。
Past, Present and Future of Statistical Science:这本书是由COPSS(统计学社委员会,由国际各大统计学会的带头人组成)在50周年出版的一本纪念册,里面有50位统计学家每人分别贡献出的一两篇文章,有的回忆了自己当年如何走上统计学这条路,有的探讨了一些统计学的根本问题,有的谈了谈自己在从事的前沿研究,有的则给年轻一代写下了寄语。非常有爱的一本书。
其它资料
Harvard Data Science:这是H大的Data science在线课,我没有修过,但口碑很好。这门课需要费用8千刀左右,比起华盛顿大学的4千刀的Data science在线课虽贵一倍,但比斯坦福的14千刀要便宜将近一半(而且斯坦福的更偏计算机)。如果想自学,早有好心人分享了slides: (https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)
PyData:PyData是来自各个domain的用Python做数据的人每年举行一次的聚会,期间会有各路牛人举行一些规模不大的seminar或workshop,有好心人已经把video上传到github,有兴趣的去认领吧(DataTau/datascience-anthology-pydata · GitHub)
工具
R/Python/MATLAB(必备):如果是做数据分析和模型开发,以我的观察来看,使用这三种工具的最多。R生来就是一个统计学家开发的软件,所做的事也自然围绕统计学展开。MATLAB虽然算不上是个专业的数据分析工具,但因为很多人不是专业做数据的,做数据还是为了自己的domain expertise(特别是科学计算、信号处理等),而MATLAB又是个强大无比的Domain expertise工具,所以很多人也就顺带让MATLAB也承担了数据处理的工作,虽然它有时候显得效率不高。Python虽然不是做数据分析的专业软件,但作为一个面向对象的高级动态语言,其开源的生态使Python拥有无比丰富的库,Numpy, Scipy 实现了矩阵运算/科学计算,相当于实现了MATLAB的功能,Pandas又使Python能够像R一样处理dataframe,scikit-learn又实现了机器学习。
SQL(必备):虽然现在人们都说传统的关系型数据库如Oracle、MySQL越来越无法适应大数据的发展,但对于很多人来说,他们每天都有处理数据的需要,但可能一辈子都没机会接触TB级的数据。不管怎么说,不论是用关系型还是非关系型数据库,SQL语言是必须要掌握的技能,用什么数据库视具体情况而定。
MongoDB(可选):目前最受欢迎的非关系型数据库NoSQL之一,不少人认为MongoDB完全可以取代mySQL。确实MongoDB方便易用,扩展性强,Web2.0时代的必需品。
Hadoop/Spark/Storm(可选): MapReduce是当前最著名也是运用最广泛的分布式计算框架,由Google建立。Hadoop/Spark/storm都是基于MapReduce的框架建立起来的分布式计算系统,要说他们之间的区别就是,Hadoop用硬盘存储数据,Spark用内存存储数据,Storm只接受实时数据流而不存储数据。一言以蔽之,如果数据是离线的,如果数据比较复杂且对处理速度要求一般,就Hadoop,如果要速度,就Spark,如果数据是在线的实时的流数据,就Storm。
OpenRefine(可选):Google开发的一个易于操作的数据清洗工具,可以实现一些基本的清洗功能。
Tableau(可选):一个可交互的数据可视化工具,操作简单,开箱即用。而且图表都设计得非常漂亮。专业版1999美刀,终身使用。媒体和公关方面用得比较多。
Gephi(可选):跟Tableau类似,都是那种可交互的可视化工具,不需要编程基础,生成的图表在美学和设计上也是花了心血的。更擅长复杂网络的可视化。
推荐这六本机器学习的经典书籍,并详细说说它们的优缺点
第一本书,我推荐《Pattern Classification》
优点:
1.版本多,好找。不解释。
2.图多,也不解释。
3.一开始 就用简单例子把模式识别的流程,和基本概念比如贝叶斯推断、极大似然等等基本概念,以及评价分类能力常用的接收机特性曲线(Receiver Operating Characteristic curve ROC)等等概念提出来了,讲得比较清楚。即使一开始看不明白,但是你知道有这些玩意,以后会多留心。
4.涉及面比较广。虽然成书比较早了第二版是2000年,第一版居然是1973年。但是覆盖的算法和领域比较广泛,不只限于模式识别了,作为概览很不错了。
5.有深度。很多加*的章节之外,还有涉及哲学思想的评注章节,“发人深省”四个字并不为过,而且值得“反复回味”:比如“奥康的剃刀(Occam’s razor)”法则,“没有天生优越的分类器”法则,等等等,这个中译本的序言里也提到了。
6.入门的数学要求不高。这点对工科出身的人入门很重要。个人感觉学过概率和线代,入门就够了。当然,随机过程啊,矩阵论啊当然难免会涉及到,但是作者已经尽量淡化数学要求了。
问题和不足:
1.图注简略。图虽多,有时还是难免不懂。
2.有难度。公式不少,而且有时跳步,够工科生啃的。每个章节都有引申部分。传说有的学校前三章就能讲2个月以上的。
3.适合理解理论思路思想,但是想对照编程实践,有点难度。虽然有一些算法的伪代码,但是个人觉得还是太简略了。主要是对数据的描述太少。不过,好消息是——现在有配套的Matlab教程了!坏消息是——貌似国内没引进.(偶尔说话大喘气一下,哈哈)
感觉如果不是特别有钱,特别痴迷这个,还是算了。别的书有白提供程序的(再次大喘气)。
4.偏预测,轻数据挖掘;在预测里偏分类,轻回归。这倒不奇怪,人家书名写得明白。
但是,即使想做数据挖掘的,我还是推荐先看这个书。因为首先入门阶段,基本概念都是差不多的,而且后面讲到算法性能评价、选择标准等等思想确实值得领会。
这本主要用来领会思想思路,先不要执着于看懂每行公式,每张图。
第一本大概就这样。
后面就不分先后了。因为有的重理论,有的重应用,而且每个牛人都有自己擅长和生疏的领域,能在自己擅长的领域把各种算法串成脉络,讲清楚发展过程和区别联系已经很难得了。
推荐二《Artificial Intelligence:A Modern Approach》
中文和2种影印都是原书第2版,02年出的,两种影印我比较过内容没区别,但是清华的纸质稍好,但价格贵好多。中文和人邮的影印图书馆好找,但是市面上好像木有了。
现在原版是09年底刚出的第3版了。但看书评,好像变化不是特别大,有些有第2版的人觉得亏了。
优点:
1.涉及面特别广。从走棋的算法,到语义逻辑分析,到智能系统……并不局限于概率统计类的方法,无所不包。
2.很多AI方面的历史人物和典故。从莱布尼茨时代的机械计算机器,到图灵,到50 60年代某人第一次写了个啥算法。怎么说呢,当故事书看也行了。
3.叙述比较清楚。
问题:
1.有点散。各个章节之间有时联系不是那么大,其实为了做到包罗万象,散是难免的。
2.Introduction 而非Reference。所以指望看这个书完了去照着写算法,就别想了。
3.第2版里没涉及支持向量机(Support Vetor Machine SVM)。这个即使作为02 年出的书也不应该了。不过现在SVM基本是大路货了,到处都是(SVM有点走当年神经网络最后烂大街,无人问津的趋势)。
4.太厚,快速翻阅即可。中文700多页,英文1100多页。因为毕竟大家有各自专业背景,所以挑前几章+自己相关领域的章节,浏览即可,其他当故事书看,就当做专业英语的阅读资料吧。
总之,适合没接触过的这方面的人入门用。但是个人感觉一个是有点散,一个是概念太多,没有突出概率统计。感觉很容易迷路似的,所以第一本没推荐这个。但N多学校都用这个做教材,不是没道理的。
推荐三《Nonlinear Time Series: Nonparametric and Parametric Methods》
这本是两个中国牛人写的。范剑青、姚奇伟.
这本虽然专讲时间序列,但是觉得自动化之类工科出身的人往机器学习数据挖掘方面转的话,这样一本由数学家写的数学味浓一些的书还是很有必要的。特别是中国人写的,所以在大牛在国内的时候,还有机会当面请教。
优点:
1. 背景知识适合自动化、通信这些专业的。一般电子类的都会学点现代数字信号处理比如Wiener最佳滤波,Kalman滤波之类,已经了解ARMA模型了, 这样看这个书可以了解这些方法的发展和引申。虽然不见得以后真的去做金融之类,但是用自己熟悉的背景知识去入门,总比两眼一抹黑钻进去强。其实“在工言 工”,看成是在讲高级滤波算法的话,能不能用在控制系统里呢?反正俺那本已经被搞控制的同学借去鸟。
2.图表例子多,程序提供下载。虽然是S-plus/R写的,可能工科的没接触过R,但是很容易上手。
3.数学味,不解释。
问题:
1.领域比较专门。主要适合经济数据,金融数据这些。当然书里也举了生态学上的例子。
2.比较难懂。一个是数学味,一个是很少分析算法细节,公式推导都比较简略,要配合参考文献和程序。
但是之所以推荐这本,倒不是说里面讲到的那些方法。而是想:
1.介绍两位中国牛人,有机会见到可以请教。
2.通过这书里的例子,了解点R语言。开源的数学软件,是数学家用的,上面有很多最新的ML算法。假如你早已熟悉了工程味的MATLAB,现在可以体味一下R简化的都是哪些地方?在思路和实践上,都要习惯不断切换工科和理科两种方式。试试理科的工具,也就能多找找感觉。
3.要适应数学家的表达。毕竟这个领域的算法都是人家提出来的,看论文基本就是在膜拜统计学家了。通过这个也体会一下同样是ARMA模型,理科是怎么思考的。不要再满足于当初学信号处理的时候,好像学了个Levinson-Durbin,Kalman递推公式就万事大吉。
推荐四《Pattern Recognition and Machine Learning》
最后3本,打算先介绍2本贝叶斯方法为主的。下一次再用我最喜欢、也看得最仔细的《the Elements of StatisticalLearning》(EoSL)压轴。
作者个人网站:Christopher M. Bishop 上面有题解。这本国内好像没引进。但是人大经济学论坛和CSDN上有PDF下载,淘宝上好像也有卖打印版的。
优点:
1.comprehensive。即使是打12星的读者,也承认这书相对其他同类书里算是好读的了。毕竟,让没接触过的人一下子把脑子切换成用概率来建立数学模型,描述数据,不是太容易的。能用尽量清楚的语言描述清楚已经很显示作者功力了。
2. 权威性和读者口碑。作者个人网站上有他的其他著作,不赘述了。关于口碑,不止一个读者在其他书的书评里提到这本《PRML》和之前第一本介绍的 《Pattern Classification》以及下次再说的《EoSL》,并称为3本最pop的ML书。而Pattern Classification 的第1版是1973年,第2版是2000年;《EoSL》第1版是2001年,第2版是2009年;都比2006年才出版的《PRML》出得早。能和这2 本并称,可见这本书的在读者心中的地位。
插一句:这种700多页难啃、但又必须通读的理论书,我还是觉得读pop的比较放心。即使暂时读不懂,也不要紧,反正硬读下去就是了,准没错。我不是太敢去碰生僻冷门的著作,一个怕读半截发现不行,浪费时间,一个是怕读完了,结果把路子走野了。
缺点:
1.缺实际例子。Amazon上给1、2星的大多是因为这个原因。好几个读者说:不要着急,08年出配套的MATLAB示例。结果到现在作者个人网站上也只字未提。
2. 主要是以贝叶斯推断的框架来描述问题的。有什么样的世界观就有什么样的方法论,对其他方法介绍得就很少了。难怪不止一个读者说:This books should be called “My personal unifying theory of Machine Learning and Pattern Recognitionusing the Bayesian Approach”.
3.数学要求+textbook。因为缺实际例子,所以图就净是示意性质的简单图了。而贝叶斯方法少不了大量的公式和积分符号,这些是工科人最头痛的。最喜欢看能编程实现的伪代码,实在没有,看见sigma求和符号也比积分号舒服点,起码知道这就一个for循环的事。
没把这本放第一本的原因主要就是12了,其实2也不能算缺点。
推荐五《Semiparametric Regression (Cambridge Series in Statistical and Probabilistic Mathematics)》
推荐六《EoSL》:一副机器学习数据挖掘的脚手架
《The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition (Springer Series in Statistics)》
优点:
思路和动机。Amazon有读者觉得这书不好,仅仅是作者的研究个人研究笔记而已。没错,这是一本三个作者把70年代以来他们的研究轨迹串起来的书。
对于作案水平高的老大,能毫无保留把作案手法给小贼们讲清楚已经是难能可贵了。而再能进一步交待清楚自己作案动机、怎么逐一发展出的作案手法的心得,这可是很稀有的存在啊。
不得不提到厚积薄发老大的【原创】结束语+全文链接:那些没有拆掉的脚手架们。(全文完),在里面老大提到:
“卢梭曾写过《忏悔录》,剖析自己的心路历程。我读数学家传记,读到高斯时,有后人抱怨,“他建立了一座宏伟的数学宫殿供我们敬仰,却在宫殿建成后把脚手架拆得干干净净,让我们无从知道他是怎么做出那些伟大的发现的。”
可以说,这本书就是三个作者给数据挖掘,机器学习这个宫殿搭的一个脚手架。处处可见作者思路的轨迹,是怎么想出那么多方法的。
我本不想细说这个,正如Amazon上读者说的,这个脚手架的个人色彩浓厚了点,机器学习领域方法太多,走作者这条路未必对就真对路。但是既然南寒问到了,那就提作者背背书吧。
不过这么一来,一篇肯定就放不下了,讲到哪里算哪里,多了就再起新篇吧。
作者出发点是“维数灾难(the curse of dimensionality)”。
如果用“少量的训练样本在高维特征空间中分布变得稀疏,导致算法缺乏泛化能力”这样的话来解释,我想任何人第一次听说的时候绝对不会明白。我即使现在明白了,也还是觉得这种表达太装13了,太绕。那就换一种角度来说。
解方程的时候,理论上方程个数N只要等于未知数个数p,那么就可以了。但是实际中考虑的误差之类的,方程数要比未知数多,才能保证求出的解是“好的”。总是希望最好是“所有可能的样本”拿来都能套用这个解。也就是说是全局最优解。
“维灾难”是说,随着未知数个数增加,需要的方程个数增加得大得多。具体到机器学习上1个训练样本就是1个方程,那么维数p一高,你的训练样本N再多也是“不够用”的,即使N>>p。
解决方法就俩字——想办法“降维”。降低描述每个样本的特征向量的维数p,也就是降未知数的个数。这样方程数量不变的情况下,未知数少了。
除 了维灾难,还有一种情况,就是未知数反过来比方程多的时候,而且是p>>N。比如DNA微阵列分析、语义分析这些。以DNA来说,对某种癌 症,上万的基因的可能致病作用是未知数(如果考虑不同基因组合作用,就更多了),可病人样本的总是有限的,有时就是要在几千个,几百个的样本上进行分析, 希望能“挖掘”到放之四海而皆准的原理来。这时候想把p降到<N,实在不现实。
而方程太少,参数太多,肯定是无穷多种解啊,可是致病机理一定是确定的。想得到唯一解怎么办呢?嗯,加约束条件。
我概括作者研究的总方向就是一个:线性模型+罚约束。
作 者在第3章开始讲线性回归,然后第4章线性分类。从最基础的最小二乘解开始,然后是对解加2范数约束得到Ridge Regression岭回归;再到加1范数的约束,于是有了Lasso,LAR;然后是1 2 范数的组合Elastic Net等等等……。一开始读过,觉得这些没什么特别之处啊,说一千道一万,不就是个线性方程组的解么,能有什么意思?就像《地道战》里的牛娃说的:“鼓捣 这玩意,能把黑风口的炮楼挖掉么?”Amazon也有读者觉得前几章有点浪费篇幅。除了因为觉得线性回归、分类太简单,还有挤占别的章节篇幅的嫌疑,后面 再说。
但是越往后读,就越要经常往回翻第3章。
与其说这是作者的写作方式,倒不如说作者的研究路径就是这种不断“回溯”的过程(借用软件工程里的话)。具体地说:作者就是用这种不断应用“线性模型+罚约束”的思想,串起来一系列的方法:
第5章从样条到加罚平滑样条和小波,这就到了kernel的思想:经过非线性的核/基函数作用,非线性问题又变成了线性问题。
这就到了第9章的广义加法模型:树和多元加法样条。
有了广义加法模型,第10章作者用“逐次向加法模型添加非线性基函数,以使指数形式的损失函数变小”的角度分析了Adaboost,boosting,以及提出了MART。
然后到了第15章Random Forest。这章很短,但是之前一路看过来之后,觉得就是这么简单而已。
16章的Ensemble Learning也是如此,开头的ECOC虚晃一枪。后面仍然使用boosting 、Random Forest的思路,用线性组合+罚来集成多分类器。
最后的18章,推广到p>>N的情况下的特征选择问题。作者展示了在DNA微阵列分析问题上,把之前各种方法随便组合起来一下(比如加罚的logistic 回归,线性回归+PCA = 监督PCA),都有不俗表现。
通 读此书之后让人觉得是某位大侠,从最朴实无华的招式起手,初觉平淡无奇,但是后面不断深入、不断变化,到最后的眼花缭乱,屡出奇招。而每次变招都是从原来 那最简单的招式开始(比如太极拳,就是揽雀尾啊,那几招)。这几章构成了一个连贯的思路,作者们30多年来的成果主要也集中上面这几章。
其他的章节要么是为了挂靠在这个思路下面(4线性分类),要么是为了讲这个思路不得不提到(6核平滑、7模型选择、13原型方法和近邻、14无监督学习)。其中的7、14也是非常重要的章节。
剩下的就比较鸡肋了,应该是作者不擅长或者不care,但是因为写书还是放进来的(8 贝叶斯推断、11神经网络、12支持向量机、17图模型)。仅以这些方法本身论,都是能单独写一本书的,也应该算是“必知必会”的知识点了,但是本书中篇幅和内容上都比较简略了。
相关推荐
1. 大数据开发入门:首先,需要掌握传统的关系型数据库如MySQL,学习SQL,以及数据迁移工具和BI数据可视化工具。 2. 大数据核心基础:进一步学习Linux操作系统,Hadoop生态系统,以及Hive数据仓库,为后续的高级...
如何进行入门级学习?虽然数据科学并无一个独立的学科体系,统计学,机械学习,数据挖掘,资料库,分散式计算,云计算,信息可视化等技术或方式都可以来对付数据。但从狭义上来看,数据科学就是解决三个问题:1. ...
三、如何进行入门级学习虽然数据科学并无一个独立的学科体系,统计学,机械学习,数据挖掘,资料库,分散式计算,云计算,信息可视化等技术或方式都可以来对付数据。但从狭义上来看,数据科学就是解决三个问题:1. ...
数据科学与大数据领域是当前信息技术行业的热门焦点,Python语言作为其中的重要工具,因其简洁明了的语法和强大的库支持,成为初学者入门和专业人士进行数据分析、机器学习乃至网络爬虫的首选语言。在这个名为“数据...
- **数据科学家路线图**:针对希望成为数据科学家的学习者,提供了从基础统计学到高级机器学习算法的学习路径,强调了理论与实践相结合的重要性。 - **数据分析师路线图**:侧重于数据分析师应具备的技能,包括数据...
内容概要:10G的Python数据分析与挖掘实战学习视频,包括了Python3数据科学入门与实战,大数据入门到实战篇(Hadoop2.80),Python3实战Spark大数据分析及调度,数据分析与数据挖掘高级实战案例 适合人群:具备一定...
总的来说,数据可视化是理解和解析大数据的关键途径,通过有效的可视化工具和技术,我们可以从大量复杂数据中提取有价值的信息,从而促进业务决策、科学研究和社会洞察。无论是入门级的Excel,还是专业级的Tableau和...
【大数据人工智能入门 JAVA高级项目实战】是一门针对初学者和进阶者的综合课程,旨在帮助学员掌握大数据处理、Hadoop分布式框架以及人工智能的基础知识,并通过实际项目提升技能。本课程结合JAVA高级编程技术,提供...
大数据开发入门指南旨在帮助初学者理解并掌握大数据技术的基础知识,从理论概念到实际操作,全方位解析大数据领域的...无论你是数据分析师、数据科学家还是软件工程师,都能从中受益,为自己的职业生涯开启新的篇章。
本课程是大数据必修课的一部分,专注于数据科学和R语言的学习,特别强调数据可视化这一重要环节。R语言作为数据科学领域广泛使用的工具,其强大的图形生成能力是数据探索和理解的关键。课程分为多个章节,从基础到...
对于想要入门数据科学的读者,本书提供了一个循序渐进的学习路径,从Python基础到高级的数据分析技巧,再到机器学习算法,逐步深入。 通过本书,读者不仅可以掌握数据科学的基础知识,还能通过实践案例理解数据科学...
本文为Java程序员提供了一个入门级别的大数据技术学习路径,旨在帮助程序员在三个月内通过自学转型为大数据工程师。文章首先介绍了作者作为大数据工程师的背景,并概述了大数据的四大特征:数据来源广泛、数据格式...
本教程主要聚焦于如何利用Python进行大数据分析,适合初学者入门。我们将通过一个名为"大数据大作业.ipynb"的Jupyter Notebook文件来探讨这个主题。 首先,Python中的Pandas库是处理结构化数据的核心工具。Pandas...
清华大学推出的这套精品数据科学R语言课程,旨在为学生和专业人士提供全面的学习资源,帮助他们掌握R语言的核心技能。本课程涵盖了从基础到高级的各种主题,包括R语言入门、数据模型、数据准备、数据可视化、数据...
1. 数据分析师:数据分析师是数据行业的入门级职位,他们运用现有的工具来分析和解决问题,不需要数学或研究背景。数据分析师需要掌握编程、统计学、机器学习、数据再加工和数据可视化这五大核心技能,并注重细节,...
《大数据必修课 数据科学课程 R语言教程含练习题》 ...本课程的目的是培养具有大数据处理能力的专业人才,通过学习R语言的这些基础知识,学员可以掌握数据科学的关键技能,为未来在大数据领域的深入研究打下坚实基础。
6. **工作经验**:对候选人所需的工作年限,显示了入门级职位与高级职位的比例。 7. **教育背景**:要求的最低学历,如本科、硕士或博士,以及是否需要特定的专业背景,如计算机科学、统计学或数据挖掘。 8. **技能...
这套资源包含了丰富的实例和项目实战,对于想要入门或者深入理解大数据领域的学习者来说,是非常有价值的参考资料。 【描述】:“大数据学习的PPT,资源很好,适合初学者,大家可以关注下”说明这套PPT内容全面且...