有人手写实现李航《统计学习方法》第2版书中全部算法

2020 年 5 月 19 日 CVer

点击上方“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一个在看

登录查看更多
0

相关内容

专知会员服务
137+阅读 · 2020年5月19日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
《深度学习》圣经花书的数学推导、原理与Python代码实现
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
196+阅读 · 2020年2月11日
资源 | 李航老师《统计学习方法》(第2版)课件下载
专知会员服务
248+阅读 · 2019年11月10日
统计学习方法第一版课程PPT
AINLP
13+阅读 · 2019年5月14日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
Semantics of Data Mining Services in Cloud Computing
Arxiv
4+阅读 · 2018年10月5日
Arxiv
4+阅读 · 2018年9月25日
Arxiv
8+阅读 · 2018年5月15日
VIP会员
相关VIP内容
相关论文
Top
微信扫码咨询专知VIP会员