对比我自己过去两年的学习和实践,我自己觉得不一定要全部看完入门,完全可以在某一个方向上面深入,包括一些数学知识,也是遇到了就去看,所以一些看上去很简单的算法和饮用,可能要花很长时间才能读通。可是,你第二次再遇到类似的算法,你就会很快领会。
如果你是菜鸟: 1.读书学习: a.《Introduction to Data Mining》,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人 b.《Data Mining : Concepts and Techniques》,这本比较厚,也多了一些数据仓库方面的知识 c.《Introduction to Machine Learning》,如果对算法比较喜欢,可以阅读 2.了解经典算法。有几个部分: a.关联规则挖掘 (Apriori, FPTree, etc.) b.分类 (C4.5, KNN, Logistic Regression, SVM, etc.) c.聚类 (Kmeans, DBScan, Spectral Clustering, etc.) d.降维 (PCA, LDA, etc.) e.推荐系统 (基于内容的推荐,协同过滤,如矩阵分解等)然后在公开数据集上测试,看实现的效果。可以在下面的网站找到大量的公开数据集:http://archive.ics.uci.edu/ml/ 3.熟悉几个开源的工具: Weka (用于上手); LibSVM, scikit-learn, Shogun 4.到 https://www.kaggle.com/ 上参加几个101的比赛,学会如何将一个问题抽象成模型,并从原始数据中构建有效的特征 (Feature Engineering).
如果你已入门: 1.读书学习: a.《Pattern Recognition and Machine Learning》 b.《The Elements of Statistical Learning》 c.《Machine Learning: A Probabilistic Perspective》第一本比较偏Bayesian;第二本比较偏Frequentist;第三本在两者之间,但我觉得跟第一本差不多,不过加了不少新内容。当然除了这几本大而全的,还有很多介绍不同领域的书,例如《Boosting Foundations and Algorithms》,《Probabilistic Graphical Models Principles and Techniques》;以及理论一些的《Foundations of Machine Learning》,《Optimization for Machine Learning》等等。这些书的课后习题也非常有用,做了才会在自己写Paper的时候推公式。 2.读论文。包括几个相关会议:KDD,ICML,NIPS,IJCAI,AAAI,WWW,SIGIR,ICDM;以及几个相关的期刊:TKDD,TKDE,JMLR,PAMI等。跟踪新技术跟新的热点问题。当然,如果做相关research,这一步是必须的。例如我们组的风格就是上半年读Paper,暑假找问题,秋天做实验,春节左右写/投论文。 3.跟踪热点问题。例如最近几年的Recommendation System,Social Network,Behavior Targeting等等,很多公司的业务都会涉及这些方面。以及一些热点技术,例如现在很火的Deep Learning。 4.学习大规模并行计算的技术,例如MapReduce、MPI,GPU Computing。基本每个大公司都会用到这些技术,因为现实的数据量非常大,基本都是在计算集群上实现的。 5.参加实际的数据挖掘的竞赛,例如KDDCUP,或 https://www.kaggle.com/ 上面的竞赛。这个过程会训练你如何在一个短的时间内解决一个实际的问题,并熟悉整个数据挖掘项目的全过程。 6.参与一个开源项目,如上面提到的Shogun或scikit-learn还有Apache的Mahout,或为一些流行算法提供更加有效快速的实现,例如实现一个Map/Reduce平台下的SVM。这也是锻炼Coding的能力。
作者:头条号 / 景冉品测薛新
链接:http://toutiao.com/a6322999965221634305/
来源:头条号(今日头条旗下创作平台)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。