零基础数据挖掘学习清单

先甩片汤话:不知怎么的,就从纯工科的学业到管理工作岗位,又进入了数据挖掘的学习。一切都是从头学起,不会写代码,(本科学的C++,也只记得课程的名字),数学也多年未动,离散数学从未接触,这条路步履维艰。

啥也不说了,有时间抱怨,不如迅速开干,用了一个月不到,首先明确自己哪里不足(其实就是哪里都不足),把自己要补足的东西先码在这,东西有点多,变身!拼了!

P.S:平时上班,工作也很忙。按照这个计划,已经进行了2-3个月了,已经有点感觉了。其实,这两三个月也没有塌下心来学,估计自己半年就可以入门了。

                                                                                                                                                              

废话不多,先把自己的学习清单给自己列出来。本人零基础,所以有些东西很基础,高手莫要笔试。

1.数据挖掘基本知识

这一部分主要是看书,先了解一个情况。至于用什么书。口碑比较好的有《数据挖掘:概念与技术(第3版)》。我买了,看了一大半,感觉不太适合初学者。有些概念直接给出,对于底子不好的人有些突兀,要是硬着头皮使劲看,还是很有收获的,适合入门以后反复看。推荐一本很老的书《数据仓库与数据挖掘》,作者:武森等。这本书相对来说不那么厚,很多基础概念也有论述,对初学者来说很友好。

这一部分的学习是贯穿始终的,有经验的前辈们介绍,什么时候拿出来看看都是有收获的。

2.数学基础

这一部分也是不可或缺的,学一下未必能有感受。学好了,绝对收益无穷。我的计划是穿插在整个学习过程中。主要内容是:线性代数、离散数学。

(1)线性代数

已经学过的,没学过的都要认真学一下。国内的教材个人以为对概念没有深入说透。比如特征值和特征向量,到底干嘛用的。矩阵的乘法本质意义,也没说清楚。

推荐麻省理工的公开课:线性代数。网易公开课就有翻译好的。附上链接:

http://open.163.com/special/opencourse/daishu.html

(2)离散数学

这个大部分人(不是专业的)都没学过,听着就头痛。别急,不用全学,重点是图论、代数系统、命题(谓词和逻辑)、集合与关系。随便找一本薄一点的教材。这些内容其实之前高中本科都有接触,主要是一些逻辑符号,思维方式需要看懂。否则在一些地方看到一些莫名其妙的符号,不了解,看到一些简单的公式以为很复杂,得不偿失。

(3)运筹学

这个绝对是基础课,之所以放在后面是因为本人认真学了。推荐的教材《运筹学》教材编写组编写。一本大厚绿皮书。对策论等跟博弈论有关的不用看。有条件的可以把算法在跑一遍。绝对收获良多。

3.工具

这部分本人在网上查了很久,课题组问了几百遍。最终确认的这几个。很多人说有编程经验的人,学一个就一两周的事,无奈,我零基础。所以,这一部分绝对是个重点。先说本人确定的语言:MATLAB、Python、R。

(1)MATLAB

先说MATLAB,别说这个老,别说这个是学校搞学术才用的。不想挑起争论,主要理由——好上手。上手以后就可以跑一些算法,提高一些信心和学习的乐趣。教材我随便找一本厚厚的备查(从来没翻过)。我主要看的是官方手册的Primer。然后就开始写脚本和函数,如果有看不懂的直接百度、google或者help。写的都很清楚。这一部分主要是迅速上手,我已经略有收获了。

(2)Python和R

这两个放在一起,是因为网上关于这两个的争论太多了。本人也无数次迷失过。不争论优劣,确实是各有优势。我的顺序是首先学python,立志以这个作为自己的主要程序。其次再是R,从画图入手。R画出来的图真是好看。至于学习的思路:先找一本入门的书,越简单越好,学完之后找一本手册,然后练习。

首先python,先看《Head First Python》。挺好的。简单易懂,网上竟然还能下载到英文的PDF。然后是《利用Python进行数据分析》和《机器学习实战》。第一本书主要是利用Python做数据挖掘的,基本提到Python学习都会推荐这本。第二本是理解机器学习的佳作,书中用到的语言就是Python。一边学语言,一边理解机器学习。很好的顺序。

其次R,因为有了前面的一部分基础,学起来会容易一些。主要推荐教材是《R语言初学者指南》和《R语言实战》。这部分的学习我准备跳着看,早期主要利用R来画图。然后步步深入着学习。这样才能充分的练习,而不仅仅是纸上谈兵。

(3)Mysql

最后加一个,了解一点Mysql,由于零基础对数据的各种都不了解,强烈推荐一周读完《深入浅出Mysql》。难度不大,主要是入门。如果以后用得着,再深入研究。

再次重申一遍:这一阶段还是要找程序写。如果有工作或者项目,直接上,学的最快。如果没有,找篇不错的,感兴趣的博士论文,跑一遍里边的程序。这部分内容不是学出来的,绝对练出来的。

4.算法

算法太多了,常见的就那些。一方面要看明白,理解算法。另一方面用上面的语言跑出来。既能理解算法,也能很好的熟悉语言。

5.文本编辑器

直接上干货。Emacs org-mode。这部分是等进入高阶阶段要学的东西。不是因为难,不是因为不好。主要是因为这个不是本人现在的当务之急。看别人用的,心理痒痒,确实很好。所以,姑且放在这里。

                                                                                                                                                                  

总结

整个入门阶段,千万不要抱着学完一个在学一个的思想。同时学!比如,语言入门了,就找算法实践。看到一个算法,一定要程序跑出来。中间累了,把数学基础补一补。看算法的时候,数学哪里不懂,百度哪里。

总结一句话:反复实践。半年入门。

(有需要,欢迎交流,需要什么资料,本人有的话可以分享。)

原文地址:https://www.cnblogs.com/Tavion/p/5163984.html