查看原文
其他

《统计学习方法》代码更新了-(github的star数5300+)

机器学习初学者 机器学习初学者 2022-05-16

李航老师的《统计学习方法》可以说是机器学习的入门宝典,许多机器学习培训班、互联网企业的面试、笔试题目,很多都参考这本书。2019年5月1日,《统计学习方法第二版》出版了!本人的github也做了相应更新。


github(李航《统计学习方法》的代码实现):

https://github.com/fengdu78/lihang-code  

本次修改了部分错误,增加了每章概述,更新完前12章,今后将增加第二版的内容。

修改主要错误:

第3章 k近邻法的max_count错误

第10章 隐马尔可夫模型的viterbi索引错误

增加的内容:

增加每章的概要

《统计学习方法》简介


《统计学习方法》全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。

《统计学习方法》可以说是机器学习的入门宝典,许多机器学习培训班、互联网企业的面试、笔试题目,很多都参考这本书。 

第一版课程目录:

第1章 统计学习方法概论

第2章 感知机

第3章 k近邻法

第4章 朴素贝叶斯

第5章 决策树

第6章 逻辑斯谛回归

第7章 支持向量机

第8章 提升方法

第9章 EM算法及其推广

第10章 隐马尔可夫模型

第11章 条件随机场

第12章 统计学习方法总结


第二版课程目录:

第1篇 监督掌习

第1章统计学习及监督学习概论
第2章感知机
第3章k近邻法
第4章朴素贝叶斯法
第5章决策树
第6章逻辑斯谛回归与优选熵模型
第7章支持向量机
第8章提升方法
第9章EM算法及其推广
第10章隐马尔可夫模型
第11章条件随机场
第12章监督学习方法总结
第2篇无监督学习
第13章无监督学习概论
第14章聚类方法
第15章奇异值分解
第16章主成分分析
第17章潜在语义分析
第18章概率潜在语义分析
第19章马尔可夫链蒙特卡罗法

第20章  潜在狄利克雷分配

第21章  PageRank算法

第22章  无监督学习方法总结

    附录A  梯度下降法

    附录B  牛顿法和拟牛顿法

    附录C  拉格朗日对偶性

    附录D  矩阵的基本子空间

    附录E  KL散度的定义和狄利克雷分布的性质

本人做了比较,第二版的前十二章与第一版完全一致,并对第一版的错误进行了修改,建议直接买第二版。购买链接



统计学习方法的代码实现


《统计学习方法》官方没有提供代码实现,但是网上有许多机器学习爱好者尝试对每一章的内容进行了代码实现。

本站在github网站搜集了一些代码进行整理,并作了一定的修改,使用python3.6实现了第1-12章的课程代码。

代码目录与截图:

图:代码目录(ipynb格式)


import numpy as np
import math
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10,8))
x = np.linspace(start=-1, stop=2, num=1001, dtype=np.float)
logi = np.log(1 + np.exp(-x)) / math.log(2)
boost = np.exp(-x)
y_01 = x < 0
y_hinge = 1.0 - x
y_hinge[y_hinge < 0] = 0

plt.plot(x, y_01, 'g-', mec='k', label='(0/1损失)0/1 Loss', lw=2)
plt.plot(x, y_hinge, 'b-', mec='k', label='(合页损失)Hinge Loss', lw=2)
plt.plot(x, boost, 'm--', mec='k', label='(指数损失)Adaboost Loss', lw=2)
plt.plot(x, logi, 'r-', mec='k', label='(逻辑斯谛损失)Logistic Loss', lw=2)
plt.grid(True, ls='--')
plt.legend(loc='upper right',fontsize=15)
plt.xlabel('函数间隔:$yf(x)$',fontsize=20)
plt.title('损失函数',fontsize=20)
plt.show()


图:代码截图(第12章 绘制损失函数)(ipynb格式)

    课件

《统计学习方法》课件

作者袁春:清华大学深圳研究生院,提供了全书12章的PPT课件。

图:课件截图

    总结

《统计学习方法》可以说是机器学习的入门宝典,本站根据网上资料用python复现了课程内容并提供,近日增加了相应内容并修改了错误,本文提供本书的代码实现课件电子书下载。

github(李航《统计学习方法》的代码实现):

https://github.com/fengdu78/lihang-code  

备注:黄海广博士的github可以直接在百度云下载镜像


本站简介↓↓↓ 

“机器学习初学者”是帮助人工智能爱好者入门的个人公众号(创始人:黄海广)

初学者入门的道路上,最需要的是“雪中送炭”,而不是“锦上添花”。

本站的知识星球(黄博的机器学习圈子)ID:92416895

目前在机器学习方向的知识星球排名第一(上图二维码)


往期精彩回顾

备注:本站qq群:865189078(共8个群,不用重复加)。加入本站微信群,请加黄博的助理微信说明:公众号用户加群。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存