(五)Data Mining 数据挖掘学习路径
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
0 | (optional)Stanford CS229 | 【基础】【数学】 适用于:
如果目标只是掌握初阶的知识,那么不需要死磕数学理论,可以跳过这里。 | Youtube: https://www.youtube.com/watch?v=jGwO_UgTS7I&list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU B站:https://www.bilibili.com/video/BV1JE411w7Ub/?from=search&seid=9965245452780421393 课表和作业: http://cs229.stanford.edu/syllabus-autumn2018.html CS229是coursera ML课程的前身,和coursera ML课程有一定程度的重合,但是这门课更偏向理论,coursera ML更加侧重实践,只会大致的讲解算法的原理,然后在编程中实现。 |
1 | Coursera 机器学习入门课程 by Andrew Ng | 【基础101】【机器学习】 | coursera:https://www.coursera.org/specializations/machine-learning-introduction 作业:https://github.com/zlotus/Coursera_Machine_Learning_Exercises 参考答案:https://github.com/loveunk/machine-learning-excercise-notebook-python 听课笔记:https://zhuanlan.zhihu.com/mlearn Coursera在2022年已经下线了老版课程,上线了出了新版课程,由一门课变成了一个specialization,多了更多新的算法。 李杰克的建议是,大家可以通过《Machine Learning》去学习机器学习中的基础知识,我拎些重要的出来:损失函数、梯度下降、线性回归、逻辑回归、SVM、反向传播法、正则化、KNN、K-Means、PCA,大家可以优先重点搞懂这些东西,你进入到深度的知识储备算是基本够了。 没有用到什么超出线性代数,高数,概率论课本的数学。如果有概念看不懂,比如梯度,后验概率,Jacobian。那就把视频暂停,去查一下维基百科,或者翻一下自己的课本,搞懂了,然后再继续看视频。有些知识点,比如支持向量机的对偶问题,实在实在看不懂,那就算了,你就相信他跟原问题同解,接着看怎么加kernel。如果有地方实在搞不懂,也千万不要放弃,接着往下看。 上Coursera在线教学网站学习,优点是每个章节学习之后可以在线答题,可以提交答案检验是否正确,而且还可以做编程练习,编程练习提交到系统后,系统可以自动测试程序是否运行正确。缺点是需要科学上网,而且有些视频并没有中文字幕。 上网易云课堂学习,优点是速度快,全部视频都有中文字幕。缺点是没有在线习题,也没有编程练习。 |
2 | 《数据挖掘导论》Introduction to Data Mining by Pang-Ning Tang、Michael Steinbach、Vipin Kumar | 【基础101】 最好配合每一章后面的习题使用 最好可以选择一些工具去使用一下各个模型 | pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYo0JyjhAY.pdf 习题答案: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9YiNuwYoxLe1pQQ.pdf 最多人推荐的书籍。 不会有太多数学:这本书上的内容,高中生都能读懂。这本书作为入门书非常好。内容浅显易懂,略去了各个定理的证明部分,通过枚举大量具体的算法实例来简要说明算法的流程和意义,让初学者可以以最快速度总揽全局,掌握数据挖掘领域的基本要点。通过这本书说明的主要是算法的运行过程和意义,而非算法本身的数学推理,不会有太多的数学公式。 有算法的使用场景:本书把算法按照它们实现的功能和目的,分成比如回归、分类、聚类等等,然后讲可以实现聚类的算法有哪些,可以实现回归的有哪些,这种方式对于构建一个大概的机器学习体系还是有好处的,但是深度不够。对于算法都提出了优缺点,使用场景,以及出了问题怎么办。 基础和高级知识有区分:把常用模型和高级话题分成连续的两个章节,很适合统计学学生入门数据挖掘的。 有课后练习:在学习中,对于课后练习,一定要自己去做一做才能知道自己理解怎么样了,不会了就去咨询。甚至你自己可以选择一些工具是实现各个模型看看。 |
2‘ | Jiawei Han的《数据挖掘概念与技术》Data Mining: Concepts and Techniques | 【基础101】 2的平替,比较“掉书袋”、教科书的感觉,有些人不太推荐 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYozLrxlwE.pdf这本书是国内很多高校上课指定教材(可能这是为什么很多人推荐的原因)。 不仅详尽讲述了数据挖掘的基本概念和方法,又具有一定的深度,介绍了数据挖掘领域近年来最新的课题。 只要求读者具备少量的编程经验以及了解基本的数据和统计分析方向的知识。 据说翻译版不如原文好懂。 我并不是很推荐这本书。这本书什么都讲了,甚至很多书少有涉及的一些点都有涉猎,比如OLAP的方面。其实这本书对于初学者不是那么友好的,给人较强的教科书的感觉,如果你有很强的毅力读完这本书,也只能获得一些零碎的概念的认识,很难上手实际的项目。 |
3 | 《集体智慧编程》Segaran的《Programming Collective Intelligence》 | 【基础101】【实战】 边学边练,把书上的代码跑一跑 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9YiNuwYopsT6jwM.pdf 没有数学推导:此书无公式推导,只告诉我们算法的应用场景。 通过实际例子来进行学习:这本书讲述了数据挖掘里面的很多实用的算法,而且最重要的是陈述的方式不像 Han 那种大牛掉书袋的讲法,而是举了很多实际的例子。 有编程实战:辅以python的代码,让你很快的就能理解到这种算法能够应用在哪个实际问题上,并且还能自己上手写写代码。 这本书在我看来适合的三个人群:A. 刚刚具有基础编程知识的学生 B. 不是希望进入数据挖掘领域,只是要急着做完一个项目 C. 大多数的产品经理。 |
3‘ | 《利用Python进行数据分析》 | 【实战】 3的平替 在实战中可以把这本书当作工具书,用以熟悉Python的库 | http://phylab.fudan.edu.cn/doku.php?id=course:python:start 这本书介绍了最主要的python数据处理工具:numpy,pandas,matplotlib等,当通读完一遍之后,这本书就可以被当成工具书,偶尔查一查。 基于python语言介绍了numpy ,pandas等库的操作,本书中有大量具体的实践建议,以及大量综合应用方法。由于作者Wes McKinney是pandas库的主要作者,所以本书也可以作为利用Python实现数据密集型应用的科学计算实践指南。本书适合刚刚接触Python的分析人员以及刚刚接触科学计算的Python程序员。 回答一个用python的:想一边看书一边敲代码马上出结果的看这里:不得不提《用python进行数据分析》,对着习题练一遍,马上出效果,然后拿自己感兴趣的数据来练手,照葫芦画瓢,上手极快,且容易有成就感。一看见有人的回答是列书单我就烦。看完给你一堆数据你会处理吗?学这种东西就是要直接上项目、解决问题。BTW,我在学习过程中发现复旦大学物理实验室的对这本书学习的相关资料—— |
4 | Weka LibSVM, scikit-learn, Shogun | 这几个工具至少挑选2个熟悉一下 | |
5 | Kaggle 实战项目练习 | 【实战】
| 这里为大家推荐几篇非常好的文章,里面手把手的教了大家入门级的三个经典练习项目(其实是已经结束了的赛题),供大家学习。 1. Titanic(泰坦尼克之灾) 中文教程: 逻辑回归应用之Kaggle泰坦尼克之灾 https://blog.csdn.net/han_xiaoyang/article/details/49797143 英文教程:An Interactive Data Science Tutorial https://www.kaggle.com/code/helgejo/an-interactive-data-science-tutorial 2. House Prices: Advanced Regression Techniques(房价预测) 中文教程:Kaggle竞赛 — 2017年房价预测 英文教程:How to get to TOP 25% with Simple Model using sklearn https://www.kaggle.com/code/neviadomski/how-to-get-to-top-25-with-simple-model-sklearn 3. Digital Recognition(数字识别) 中文教程:大数据竞赛平台—Kaggle 入门 https://blog.csdn.net/u012162613/article/details/41929171 英文教程:Interactive Intro to Dimensionality Reduction https://www.kaggle.com/code/arthurtok/interactive-intro-to-dimensionality-reduction |
2. 中阶
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | 李航老师的《统计学习方法》 | 【数学】【机器学习】 这三本书都是机器学习入门的经典书籍,之所以同时推荐三本,不是为了从这三本书中选一个,而是全部买下来对照着看:这本书对公式的推理相对详细;周志华的《机器学习》(西瓜书)内容更加广泛,但推理不太详细;Mitchell的《机器学习》重在算法的思路,对公式的推理很浅显,但易懂。建议学习的时候以李航老师的书为基础,对周志华老师的书进行系统的学习。 边看书边手推公式然后对着GitHub一边敲代码 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9oiNuwYouOf3xQU.pdf代码实现(李航老师微博推荐): https://github.com/WenDesi/lihang_book_algorithm (这本书是机器学习的入门书,之所以放在中阶而不是初阶,是因为不是直接关于数据挖掘的。) 着重于数学推导,能让我们深入地了解数据挖掘领域的一些算法。把几大类经典模型背后的理论刻画得淋漓尽致,看了之后对SVM的VC维理论、EM算法等有了深刻认识 这本书以干货为主,书中没有多余的例子与解释,很多都是从问题定义直接开始,到算法,到分析。书中例子、推导、算法相对比较难,很有必要仔细阅读。 每章末尾的参考文献也方便了想深入理解算法的童鞋直接查到经典论文。 |
2 | 周志华老师的《机器学习》(西瓜书) | 【机器学习】 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYowIWSiQc.pdf(这本书是机器学习的入门书,之所以放在中阶而不是初阶,是因为不是直接关于数据挖掘的。) 这本书的结构很清晰,理论和实践都有设计,是一本不错的学习书 作者周志华教授是人工智能大牛,也是国际上人工智能奖项“大满贯” Fellow华人第一人。这是一本非常值得推荐给机器学习入门者梳理知识以及机器学习从业者的书。书本的印刷质量不错,语言表达与思维逻辑也很清晰,内容涵盖了绝大多数热门算法与模型。此书的结构基本与《elements of statistical learning》相同,不想看英文版的同学可以看这本。 不足:这本书已经比较老了,内容中有一些过时的地方。 |
2‘ | 《统计学习基础:数据挖掘、推理与预测》The Elements of Statistical Learning : Data Mining, Inference, and Prediction by Trevor Hastie & Robert Tibshirani 江湖人称ESL | 【统计】【机器学习】 2的平替 学习时,可以考虑将重要方法进行数学推导以理解原理,并结合数据集进行R编程操作。 网上也提供一些数据集,可以配合着R操作来学习,熟练R的同时,掌握各种机器学习方法。 | Pdf(中文): https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYoiImYygE.pdf pdf (英文): https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYo8cnaigU.pdf比较偏Frequentist 斯坦福三位统计鼻祖级教授著作。本书对机器学习各领域的方法都有详尽的介绍,更侧重于统计知识。此外,它涵盖了许多数据挖掘技术。如神经网络,关联规则挖掘,SVM,回归,聚类等主题。 |
3 | Tom Mitchell的《机器学习》 | 【机器学习】 | (这本书是机器学习的入门书,之所以放在中阶而不是初阶,是因为不是直接关于数据挖掘的。) pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYoqLiS1wI.pdf 这本书可以看作是对于十多年前的机器学习的一个综述,作者简单明了的讲述了很多流行的算法,并且对于各个算法的适用点和特点都有详细的解说,轻快地在一本薄薄的小书里给了大家一个机器学习之旅。 作者Tom Mitchell是CMU的大师,有机器学习和半监督学习的网络课程视频。这本书是领域内翻译的较好的书籍,讲述的算法也比《统计学习方法》的范围要大很多。据评论这本书主要在于启发,讲述公式为什么成立而不是推导;不足的地方在于出版年限较早,时效性不如PRML。但有些基础的经典还是不会过时的,所以这本书现在几乎是机器学习的必读书目。 |
4 | Ian H. Witten & Eibe Frank的《数据挖掘 实用机器学习技术》Data Mining: Practical Machine Learning Tools and Techniques | 【实战】 作为查缺补漏用,建议只看一些上述书中没讲到的算法 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg9IiNuwYo1fj0xwE.pdf 本书作者就是著名的Weka的编写者。整本书的思想脉络也是尽可能的由易到难,从简单的模型入手扩展到现实生活 中实际的算法问题,最难能可贵的是书的最后还稍微讲了下如何使用weka,这样大家就能在学习算法之余能够用weka做做小实验,有更加直观的认识。 |
4’ | (optional)weka | 【实战】 简单使用一下即可,用的人不多了,大家都用python库了 | 由Java开发的 Weka(Waikato Environment for Knowledge Analysis)是一个知名机器学机软件,其支持几种经典的数据挖掘任务,显著的数据预处理,集群,分类,回归,虚拟化,以及功能选择。其技术基于假设数据是以一种单个文件或关联的,在那里,每个数据点都被许多属性标注。 Weka 使用Java的数据库链接能力可以访问SQL数据库,并可以处理一个数据库的查询结果。它主要的用户接品是Explorer,也同样支持相同功能的命令行,或是一种基于组件的知识流接口。 |
4‘ | 实现经典算法 | 【实战】 | 实现下面几个经典算法: a. 关联规则挖掘 (Apriori, FPTree, etc.) b. 分类 (C4.5, KNN, Logistic Regression, SVM, etc.) c. 聚类 (Kmeans, DBScan, Spectral Clustering, etc.) d. 降维 (PCA, LDA, etc.) e. 推荐系统 (基于内容的推荐,协同过滤,如矩阵分解等) 然后在公开数据集上测试,看实现的效果。 |
5 | 参加Kaggle等比赛 | 【实战】 和“初阶”里提到的Kaggle练习不同,这里是真刀真枪的比赛 | 平台有:kaggle、阿里巴巴天池、kesci、datacastle、biendata、datafountain 等 选比较常规的分类或回归赛题,建议选分类赛题 |
6 | (optional)吴军的《数学之美》 | 【科普】【应用】 因为推荐的人比较多,但是又是科普性质的,所以放在这里 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg84iNuwYo94_buwQ.pdf科普性质的书,也有推导,深入浅出,引人入胜,非常棒,对搜索和NLP领域的算法有了较多认识。作者吴军大家都很熟悉。以极为通俗的语言讲述了数学在机器学习和自然语言处理等领域的应用。 |
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | 《pattern recognition and machine learning》 江湖人称PRML | 【机器学习】【理论】 配合习题 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg55GNuwYorpD59AE.pdf 习题: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg55GNuwYo0Kfn0AI.pdf matlab实现: python实现: 模式识别的经典教材,偏理论,讲得比较浅显,算是机器学习的初级书籍。这本书较轻为全面介绍了模式识别和机器学习领域,需要掌握一些多变量微积分和基本线性代数的知识。 比较偏Bayesian 这本书已经有很多人介绍过了,这本书虽然是大部头,但作者写的行云流水,把贝叶斯玩的很6,思路非常清晰,而且全。每当我在推导算法的时候遇到障碍,都会从这本书中找答案,幸运的是这本书通常都会给我答案。 侧重于概率模型,是贝叶斯方法的扛鼎之作,据评“具有强烈的工程气息,可以配合stanford 大学 Andrew Ng 教授的 Machine Learning 视频教程一起来学,效果翻倍。 读起来可能比较辛苦,一共有738页,包括431个分级练习。 本书有大段描述性文字,常用文字代替数学公式去描述原理。大家可以自己尝试数学推导。 |
2 | Duda的《模式分类》Pattern Classification | 【理论】 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg55GNuwYo0_L5zgQ.pdf一本砖头书,建议看前三章,主要涉及贝叶斯参数估计,另外LDA、PCA的推导也可以看看,讲的不错 这本《模式分类》是很多高校的数据挖掘导论课程的教科书,重在理论的学习。如果不通读这本书,你会发现在研究很多问题的时候,甚至一些相对简单的问题(比如贝叶斯在高斯假设下为什么退化成线性分类器)你都要重新复习。 |
3 | 数据挖掘与数据化运营实战 思路、方法、技巧与应用 | 【应用】【工业界】 对业界工作的人有帮助 | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg6JGNuwYo7LGUcg.pdf 推荐理由: 诸多数据挖掘书籍中为数不多的穿插大量真实的实践应用案例和场景的书籍。阿里巴巴BI部门数据分析专家卢辉多年数据挖掘应用实践经验结晶,用通俗易懂的“非技术”语言和大量活泼生动的案例展现了数据挖掘与数据化运营的商业实践。 以一个阿里巴巴数据运营从业人员的角度,讲解电子商务中,如何利用数据进行数据化运营来创造价值。 |
4 | 项亮的《推荐系统实践》 | 【应用】【推荐系统】 边读边练,用网上公开的数据集做一个toy project | Pdf: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg55GNuwYo8OeuvAc.pdf 读完之后对推荐系统用到的模型、整个知识体系都有深刻认识。 这本书不用说了,研究推荐系统必须要读的书,而且是第一本要读的书。 |
5 | 熟悉大数据处理框架 | 【大数据处理框架】 | 分为两个部分:Linux&Hadoop生态体系和分布式计算。 A. Linux&Hadoop生态体系 Linux体系、Hadoop离线计算大纲、分布式数据库Hbase、数据仓库Hive、数据迁移工具Sqoop、Flume分布式日志框架 推荐书籍: 1. 《Big Data》 在大数据的背景下,我很少看到关于数据建模,数据层,数据处理需求分析以及数据架构和存储实现问题。这本书却提供了令人耳目一新的全面解决方案。 2. 《Hadoop权威指南》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg6JGNuwYogI-AyAY.pdf 《Hadoop权威指南(中文版)》从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。 3. 《Hive编程指南》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg5pGNuwYo3b76_gY.pdf 《Hive编程指南》是一本Apache Hive的编程指南,旨在介绍如何使用Hive的SQL方法HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大数据集合。 B. 分布式计算 1. 分布式计算框架 Python编程语言、Scala编程语言、Spark大数据处理、Spark—Streaming大数据处理、Spark—Mlib机器学习、Spark—GraphX 图计算、实战一:基于Spark的推荐系统(某一线公司真实项目)、实战二:新浪网(www.sina.com.cn) 2. storm技术架构体系 Storm原理与基础、消息队列kafka、Redis工具、zookeeper详解、实战一:日志告警系统项目、实战二:猜你喜欢推荐系统实战 3. Flink(比storm用的更多) 推荐书籍: 1. 《Learning Spark》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg5ZGNuwYozOihtwQ.pdf 《Spark 快速大数据分析》是一本为Spark 初学者准备的书,它没有过多深入实现细节,而是更多关注上层用户的具体用法。不过,本书绝不仅仅限于Spark 的用法,它对Spark 的核心概念和基本原理也有较为全面的介绍,让读者能够知其然且知其所以然。 2. 《Spark机器学习:核心技术与实践》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg6JGNuwYo6_GJkQI.pdf 本书采用理论与大量实例相结合的方式帮助开发人员掌握使用Spark进行分析和实现机器学习算法。通过这些示例和Spark在各种企业级系统中的应用,帮助读者解锁Spark机器学习算法的复杂性,通过数据分析产生有价值的数据洞察力。 |
6 | 熟悉数据库 | 可以掌握不深,但是还是要了解,基本的操作会用。 推荐阅读书目(极少人提到数据库这方面,下面的书都是只提到过一次的): 《SQL必知必会》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg5pGNuwYoyZ2GpQc.pdf《数据库系统概念》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg5pGNuwYo3IjgxwM.pdf《高性能MySQL》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAg5pGNuwYonrinmgE.pdf |
4. 一些辅助资料
1 | 数据集 | UCI(http://archive.ics.uci.edu/ml/datasets.html):加州大学欧文分校开放的经典数据集,被很多机器学习实验室采用。 Awesome Public Datasets (https://github.com/awesomedata/awesome-public-datasets):这是github一大神整理的一个丰富的数据集资源获取渠道合集。 国家数据(http://data.stats.gov.cn/index.htm):数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据。 CEIC(https://www.ceicdata.com/zh-hans):超过128个国家的经济数据,能够精确查找GDP, CPI, 进口,出口,外资直接投资,零售,销售,以及国际利率等深度数据。 中国统计信息网(http://www.tjcn.org/):国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息。 |