算法学习路径

这篇文章不算是原创文章,下面的文章,是我在之前的公司,以为算法大师分享给我的,很感谢他,能让我对算法有更深的了解,感谢这位友人!LWJ


传统算法:


初级(先决条件:无):链表,队列,栈,二叉树,二叉堆,排序,DFS,BFS,floyd算法,并查集,树状数组,huffman树,trie树,哈希表
中级(先决条件:初级传统算法):A*,IDA*,DP,Dijkstra+堆,SPFA,prim,kuskal+堆,强联通分量,线段树,网络流,KMP,RMQ
高级(先决条件:中级传统算法):状态压缩DP,AC自动机,斐波那契堆等(这类不好学,看兴趣)

传统算法没有列全,列了一些常用的,每一个列出的算法至少要到POJ刷3道该类别的题目,不参考任何代码和题解,才能算勉强掌握,切忌贪功冒进。


迭代算法:

 

初级(先决条件:无):BGD,SGD(对应回归算法)
中级(先决条件:初级迭代):遗传算法,SMO(对应SVM),ALS(对应推荐),SVD(对应特征选择和推荐)


分类/回归算法:

 


初级(先决条件:初级迭代):感知机算法,KNN,线性回归,logistic regression,局部加权回归,朴素贝叶斯,ID3算法,CART决策树。
中级(先决条件:初级分类/回归;中级迭代;初级传统算法):BP神经网络,RBF神经网络,SVM,C4.5决策树,Adaboost,GBDT。
高级(先决条件:中级分类/回归;中级传统算法):deep learning


聚类算法:


初级(先决条件:无):kmeans,DBscan等(几乎所有聚类算法都不难,可以现学现卖)

 


特征选择:

 


初级(先决条件:无):开方检验,信息熵
中级(先决条件:中级迭代):PCA,LDA


关联规则:

 


初级(先决条件:无):Apriori
中级(先决条件:关联规则初级):FP-Tree


推荐算法:


初级(先决条件:初级传统算法):userCF,itemCF
中级(先决条件:初级推荐;中级迭代):LFM相关,考虑时间地点上下文,考虑tag信息等

算法理解的阶段:看懂原理-》读懂参数-》推导原理-》自己实现,以上的先决条件都是指该级别算法达到自己实现的最终条件所需要的前提。
学习顺序建议先选择一个模块学好,再扩展到其他模块初级。


相关书籍推荐:


传统算法:
初级/中级:


《算法导论》:经典中的经典,国外的算法教材,此书足够支撑你学习到中级,正常看完此书的时间约为1-2年,每个算法看完后都要做对应的高强度练习,才能真正掌握。
《算法艺术与信息学竞赛》:此书由浅入深,吃透此书,所有互联网公司的面试题都不会难住你,关键在于趣味性很强,可以作为算法导论的补充。
高级:
《TAOCP》:适合买一套放书架上装逼。反正比尔盖茨说了,如果你看懂前三卷还把题做了,请联系他,他来挖你进微软。顺便说一句,我看不懂,谁看懂了教教我。


迭代算法:
《计算方法》:这方面我不是很深入,不过任何一本国外的数值计算方法教材都能满足我们的学习要求,如果没时间看完,至少需要把最小二乘法相关的东西看看。

其他:
初级:
《数据挖掘导论》:我暂时认为这是最好的入门书,虽是导论,但是每个算法也不是一笔带过,适合作为第一本数据挖掘方向的书来阅读。
《数据挖掘概念与技术》:其实这本书是垃圾,别看,浪费时间。
《机器学习》:不错的好书,算法有点老旧,不过适合入门。
《数据挖掘实用机器学习技术》:这个书可以看成weka的教材,weka是一个java写的数据挖掘包,我读了所有源码,实现过程中封装得非常好,
不过算法优化得不够,适合学习使用,真正用起来速度比较慢。
《推荐系统实践》:项量写的,推荐大神,公认的推荐系统最好的入门书。
中级:
《统计学习方法》:李航是国内这方面的顶尖人物,这书属于国内少有的好书。
《模式分类》:国内高校都要求机器学习相关方向的研究生掌握前三章,非常非常经典,但是很难,几乎没有几个研究生能真正掌握。
高级:
《支持向量机导论》:这本书直接把支持向量机讲透了,数学要求比较高,但绝对是好书。
《神经网络与机器学习》:好书,不过数学要求很高,能看懂多少算多少。
我自己其实看书也不多,这些大多都是我在大学积累的,工作以后没怎么看过了,大家发现什么好书可以再推荐给我。

相关系统和工具推荐:
初级:weka,python(自己实现)
中级:scikit-learn,最著名的python机器学习包,值得通读源码,能学到不少新的算法。
      NLTK,最著名的python文本挖掘包,可以了解一下。
高级:mahout,著名的分布式机器学习包,以推荐方向为主。
      spark MLlib,最火的分布式机器学习包,内存计算。

最后补充一句,所有类型的算法过了中级以后可以开始考虑算法的分布式实现,这个又有另外一个层面的理解,所以你还需要了解hadoop和spark的做法。

您还没有登录,请先 登录或者 注册后,添加评论
公告栏
当前开发版本 2.1.0
  • 公告栏展示
  • 打赏功能添加
  • 消息系统后端支持(回复,删除,读取)
  • 支持RSS
赞助开发

支持下作者

您的支持是我们最大的动力

...
狸猫
友情链接
INAG工具库
热门文章
最近发表