数据挖掘入门基础知识疑惑? 举报 理由 举报 取消 本科阶段只学过C语言,外加一些线性代数,概率论的知识。现在硕士阶段进行数据挖掘、自然语言处理的学习中感觉到力不从心。不知道从何去入手,有一堆书也不知道先后顺序或者如何搭配。数据结构与算法、离散数学、数据库等内容也不清楚。总而言之就是相当之困惑,感觉前景一片黑暗,希望能有人帮我解下惑,不胜感激!! 2017年12月21日 10 条回复 1459 次浏览 入门,学习,数据挖掘,机器,自然语言
回复 ( 10 )
1 工具的学习(排列有序)
python(我用的python tutorial,细节可以查书learning python,然后查询一些文档比如,numpy,matplotlib官方文档)
java (我先看的 head first java, 然后thinking in java看了一部分)
linux shell (越熟越好,我只是刷了鸟哥那本入门书的前半部分)
hadoop (需要会折腾,在win电脑上不好配置,如果实验室有环境或者有人帮忙带带入门最好。
2 机器学习入门(排列有序)
集体编程智慧(把例子刷一遍,一方面是理解入门数据挖掘,一方面更熟悉下python)
数据挖掘导论,机器学习(tom mitchell),Andrew Ng的机器学习课程,机器学习实战(主要参考下书中的代码,书中代码并不是非常完美,主要用来入门)。。
这几个材料建议选其中一、二个为核心连贯学习,其他可以参考。比如你先用数据挖掘导论了解一些基本的概念,用Andrew Ng的机器学习课程进行比较细致的学习,其中要实习一些算法的时候可以参考机器学习实战,某些算法看不懂时候可以参考其他书籍
Kaggle找几个最简单的题进行入门实战。(比如泰坦尼克号那题)
可以适当了解一些机器学习的具体应用,如:推荐系统、图像处理、语音或搜索。(结合自己的兴趣专业选择某一个深入学习)
Pattern Recognition And Machine Learning,The Elements of Statistical Learning 两本理论非常详细的巨著,如果有精力一定要看看。建议从第一本看起(因为我也只能勉强看懂第一本,第二本如果其他人都说很经典,可以看懂的话肯定是要看的)。
3 数据结构基础
算法导论+leetcode在线题目
总结:
看书要多动手,多总结,比如看了个朴素贝叶斯算法,最好把这个方法总结一下,然后编写代码实现简单的例子。参考更多的书籍,参考baidu
—————————–
另外如果想找份工作一定要多多实习,只要有一份不错的实习经验找个好工作的概率大大增加。从另外一个角度,不要把宝全部压在校招上
参考自我的博客哈:经验分享:大学生研究生如何找到一份数据挖掘的工作
你现在硕士,不知道是否读博,时间也短,动手把自己硕士毕业要用的算法code出来,这个过程你自然就知道该补什么了。这个领域很大,包括入门都是,硕士毕业没必要大而全,小而精就好。
谢邀。首先得明确一个问题:你为什么要学习数据挖掘?
从数学的角度谈一下吧:最基本的理解数据挖掘,应该需要最优化,凸分析(这个其实只要一点点),线性代数,统计学,数值计算等(等我想起来了再补充)。老实说,对数学课程的种类不多,范围不大,但是对理解的深度却要求颇高。你不理解欧式空间距离,就没办法理解k临近,你不理解条件概率和最大似然估计就不理解贝叶斯、EM算法,你不理解马尔可夫, 你就不理解隐式马尔可夫,你不理解梯度,就没法理解梯度下降法,你不理解常用的数值算法思路,就没法理解随机梯度下降法。
总而言之,大多数工科学术学习数学的套路:记公式,套题。是不太适合进行深入学习的。数学中有很多公认的直觉性的东西,也许聪明人他没有在专业数学领域学习过,也有这种直觉,但是对于大多数人认为数学很难,也就是因为既没有大量的时间去琢磨数学思维,又没有“天赋”。
对于题主的建议,就像前面的朋友说的,希望你从少数算法入手,理解意义,code出来,在这个code的过程中,发现自己不理解的,再去查资料,会提升很快。
我也是正在做数据挖掘的研究生。
首先,放弃C吧,用C做数据挖掘是不可想象的,先学个PYTHON。
其次,数据结构与算法、离散数学、数据库这些都不重要(对新手来说)。先把机器学习的算法刷一遍。推荐本书,机器学习实战,把里面的代码敲一遍,基本就差不多了。再学点spark,你已经可以开始做比赛或者项目了。
最后,数据挖掘:概念与技术
数据挖掘门外汉,自然语言处理爱好者弱答:
首先入门:看《数学之美》吧,作为一个非科班出身的强烈推荐的入门读物,没有其二只有其一,看了它你就知道你要做什么了。
关于工具:python或者matlab,在我们那个时代,实验室流行的还是后者,不过我强烈推荐前者,目前老外写的使用python的机器学习和数据挖掘或自然语言处理的书籍当当上还是能找到不少,也是近几年发展起来的,我们那时候都还没有,现在你们可幸福了。(目前这类实践也有专门的网站可以学习,有了它操练起来吧,然后一句句实验例子和结果,最后组合自己想法这样)
关于专业书:三大块:机器学习类(方法),概率统计类(理论基础),数据挖掘类(实践)。这个在百度或谷歌搜下“十大推荐书籍”,基本上都有了,然后图书馆借咯,书不在多,在于细细品味。
最后切勿一口一个胖子。
一楼肖博的建议挺好的,我也补充一下。
首先,楼主有一定的C基础,那基本的数据结构和语法应该问题不大,数据库就是一个应用型的东西,难度也不大。这是需要掌握。
其次,python r sas java甚至matlab必须掌握一门,具体哪一门要看你的导师以及师兄之前的代码积累是哪一门。当年我甚至是C#加oracle做的。
然后制定文献阅读及算法实现计划,以研究生的水平,2周1篇甚至1周1篇kdd相关研究方向的论文。一开始看会非常慢,看习惯之后就好了。最好读之前先读相关方向的综述论文。我们是一星期一个文献阅读分享会,有很多论文自己没有读但是同门一分享就了解了很多。lda,lasso,hmm,gmm还有概率图等都是其他人读了分享的,分享会这个东西挺好的。
制定3个月实现其中一篇论文算法的计划,一年可以积累3-4个算法进行实验对比。数据的话使用kaggle的数据。
同时,精通几大基础算法的推导。当时我们老师让我们学的是EM算法,最大熵,SVM还有一些如牛顿法等的简单凸优化算法。最后考试还要吧推导写一遍,比较崩溃。
研究生2年搞定以上肯定没有问题,然后研二下应该就可以发论文写毕业论文了,研三随意毕业没有问题。
祝楼主顺利。
谢邀。
最近一直在反思自己的学习方式是否正确,看很多别人推荐的书和视频,学语言学算法。因为总感觉有不足的地方,所以一直在Input.
我觉得正确的方式是主动的去output. 就是找本书翻翻,了解了基本的概念之后就去做具体的东西,做的过程中,用到什么学什么。你是做数据挖掘的,一开始机器学习的算法搞那么清楚没什么卵用,扭头就忘了。你做的东西基本成型了,有自己的理解了,觉得别人的包不好用了,再去学机器学习就知道自己为什么去学了。
1什么是数据挖掘/分析
简单地说就是,在大型数据库中,自动发现有用信息的过程,加以分析。其中数据库中的知识发现是重要的环节,也就是人们说的KDD,knowledge discovery in database。
2KDD是什么
其实就是一个数据处理的过程,从输入数据开始,进行预处理工作,包括特征选择,维归约规范化和选择数据子集等等,随后进行分析和挖掘,再经过处理,例如模式过滤,可视化,模式表示等,最后形成可用信息的过程。
3数据挖掘要解决什么问题
具体的讲主要是以下几个,首先是数据的可伸缩性,提高或改变数据的可伸缩度。其次是解决数据高维性的问题。处理异种数据和复杂数据。解决数据所有权与分布问题。对非传统的分析进行合理处理。
4数据挖掘的任务
其实主要包括四个大块,可以独立运行,也可以联合操作,分别是聚类分析,预测建模,关联分析,异常检测。
聚类分析实用的技术包括K均值,凝聚层次聚类,dbscan,簇评估等,主要目的是通过基于原型,密度,图等的聚类,发现其间的关系。
预测建模则更多的是一种可视化角度分析方法,利用分类,回归等方法,来建立模型解决问题。
关联分析顾名思义,更多强调数据中的特征强关联,例如说过一万次的啤酒与尿布等。
异常检验则主要是识别不同于其他数据的具有显著特征值的数据。
5基础知识有什么
想学习数据挖掘,几个基础知识是必备。首先是线性代数,包括向量,矩阵等。否则你根本不会是用科学工具。其次是维归约,包括PCA,SVD等技术的使用。还有概率统计,回归方程,优化,也是必备知识。暂时写这么多,有时间再多说些。
可以尝试先学习下关于数据挖掘常用的算法。试着自己能把代码敲出来,这样对算法就有基本的了解了。我推荐看下 机器学习实战,这本书对常见的算法介绍的蛮详细的。里面也有代码可以试着自己敲出来。这样才算学会~~~~
那么用哪种编程语言呢,上面推荐的这本书用的 python,有个好处就是python 有比较好的现成的算法库,矩阵计算库,比如,scikit-learn,numpy。不用太多关心编程语言本身,专注于算法实现。
至于以后可能会用到c++,java或者scala这些,到时候就看你用到啥工具了。。可以选择一个深入学习下。
有了基本的算法认识,然后应该可以跟着实验室的项目啥的~~~完了就知道自己哪些缺的,需要去补。选择自己感兴趣的领域,小小深入下~~
再推荐个网站,kaggle,上面有很多的练习~~~