点击上方“CVer”,选择加"星标"或“置顶”
重磅干货,第一时间送达
编辑:Amusi | 代码已上传,文末附下载方式
前言
上周整理分享了一篇李航《统计学习方法》第1版的代码学习资料,详见:
大家反映资料很好,但不少同学追问有没有第2版的代码学习资料。首先说一下,上次分享的资料其实很好地概括了第1版的内容,有博客笔记、代码。所以手里只有第1版"蓝皮书"的同学,推荐看上面那份资料。
统计学习方法(第2版)是第1版的内容扩展版,在12章的基础上增加了10章,扩展到了目前第2版的22章内容,主要增加的是无监督学习部分。
截止2020年5月19日,该书在豆瓣上拿到 9.2 的评分(相当之高)。
本文旨在分享《统计学习方法》第2版的算法实现代码。
注意,与第1版不同,可能是第2版去年才推出的缘故。网上实际复现第2版算法代码的大佬很少很少,目前没有看到完整复现的项目。所以这里分享的是 Amusi 认为最好的两个复现版本,大家可以交叉来看。
手写实现李航《统计学习方法》第2版书中全部算法
最佳复现项目推荐1:
https://github.com/hktxt/Learn-Statistical-Learning-Method
最佳复现项目推荐2:
https://github.com/SmirkCao/Lihang
这里强调一下,网上很多很多代码都已经不是作者纯自己思考,根据公式来自己写的。大多都是参考很多代码,毕竟这种知识点其实已经是经典内容了。这里不考究,代码是否是原作者自己写的,因为对我们读者而言,我们也只是作为参考,加深知识点印象而已。其实Amusi 很推荐大家,边学习、边记笔记、边写代码,其中笔记和代码可以发布到github上(一方面做个留存,而且万一火了呢)。
最佳复现项目推荐1
https://github.com/hktxt/Learn-Statistical-Learning-Method
这个复现项目是我目前看到覆盖章节数量最多的项目(高达21章),你可以看一下这里列出的内容,应该会很满意。其中代码是ipynb格式,也就是用jupyter notebook来写的。
第1章:统计学习方法概论
least_sqaure_method.ipynb
第2章:感知机
perceptron.ipynb
第3章:k近邻法
KNN.ipynb
第4章:朴素贝叶斯法
NaiveBayes.ipynb
第5章:决策树
DT.ipynb
第6章:逻辑斯蒂回归与最大熵模型
LR.ipynb
第7章:支持向量机
SVM.ipynb
第8章:提升方法
Adaboost.ipynb
第9章:EM算法及其推广
EM.ipynb
第10章:隐马尔可夫模型
HMM.ipynb
第11章:条件随机场
CRF.ipynb
第12章:监督学习方法总结
Summary_of_Supervised_Learning_Methods.ipynb
第13章:无监督学习概论
Introduction_to_Unsupervised_Learning.ipynb
第14章:聚类方法
Clustering.ipynb
第15章:奇异值分解
SVD.ipynb
第16章:主成分分析
PCA.ipynb
第17章:潜在语义分析
LSA.ipynb
第18章:概率潜在语义分析
PLSA.ipynb
第19章:马尔可夫链蒙特卡洛法
MCMC.ipynb
第20章:潜在狄利克雷分配
LDA.ipynb
第21章:潜在狄利克雷分配
PageRank.ipynb
Amusi 其实很推荐用markdown格式来记笔记,其中jupyter notebook就支持markdown,所以各位同学在写文字+代码时,其实就可以用jupter notebook,方便预览和测试。
比如16章 主成分分析PCA复现代码,部分内容节选
比如19章 马尔可夫链蒙特卡洛法 复现代码,部分内容节选
最佳复现项目推荐2
https://github.com/SmirkCao/Lihang
这个复现项目其实是从第1版扩展到的第2版,所以该项目star数量很高,已经3.3k+,大部分是火于第1版的复现。该项目第2版内容覆盖面没有上个项目广泛,但相比于其他项目,已经算是覆盖挺广的了,而且内容毕竟详尽。
这里重点介绍一下该项目分享的一个知识点篇幅占比图,很有意思!
这里插入个图表,列举了各个章节所占篇幅,其中SVM是监督学习里面占用篇幅最大的,MCMC是无监督里面篇幅占用最大的,另外DT,HMM,CRF,SVD,PCA,LDA,PageRank也占了相对较大的篇幅。
章节之间彼此又有联系,比如NB和LR,DT和AdaBoost,Perceptron和SVM,HMM和CRF等等,如果有大章节遇到困难,可以回顾前面章节的内容,或查看具体章节的参考文献,一般都给出了对这个问题描述更详细的参考文献,可能会解释你卡住的地方。
侃侃
再好的代码,也只是给你作为参考,来加深知识点印象而已。最重要的还是你看书、理解公式、写代码。Amusi再次推荐大家,边学习、边记笔记、边写代码,其中笔记和代码可以发布到github上(一方面做个留存,而且万一火了呢,也能帮助到其他同学)。
算法代码下载
在CVer公众号后台回复:0519,即可获得本文推荐的两个《统计学习方法》第2版算法实现项目代码
重磅!CVer-论文写作与投稿 交流群已成立
扫码添加CVer助手,可申请加入CVer-论文写作与投稿 微信交流群,目前已满1800+人,旨在交流顶会(CVPR/ICCV/ECCV/ICML/ICLR/AAAI等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI等写作与投稿事宜。
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如论文写作+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加微信群
▲长按关注CVer公众号
请给CVer一个在看!