• Stars
    star
    1,709
  • Rank 27,303 (Top 0.6 %)
  • Language
    Jupyter Notebook
  • License
    Other
  • Created almost 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

统计学习方法习题解答,在线阅读地址:https://datawhalechina.github.io/statistical-learning-method-solutions-manual

统计学习方法习题解答

  李航老师的《统计学习方法》和《机器学习方法》是机器学习领域的经典入门教材之一。本书分为监督学习、无监督学习和深度学习,全面系统地介绍了机器学习的主要方法。

  • 第1篇主要介绍监督学习的主要方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、EM算法、隐马尔可夫模型和条件随机场等;
  • 第2篇主要介绍无监督学习的主要方法,包括聚类方法、奇异值分解、主成分分析、潜在语义分析、概率潜在语义分析、马尔科夫链蒙特卡罗法、潜在狄利克雷分配和PageRank算法等;
  • 第3篇主要介绍深度学习的主要方法,包括前馈神经网络、卷积神经网络、循环神经网络、序列到序列模型、预训练语言模型和生成对抗网络等。

使用说明

  统计学习方法习题解答,主要完成了该书的所有习题,并提供代码和运行之后的截图,里面的内容是以统计学习方法的内容为前置知识,该习题解答的最佳使用方法是以李航老师的《机器学习方法》为主线,并尝试完成课后习题,如果遇到不会的,再来查阅习题解答。
  如果觉得解答不详细,可以点击这里提交你希望补充推导或者习题编号,我们看到后会尽快进行补充。

在线阅读地址

在线阅读地址:https://datawhalechina.github.io/statistical-learning-method-solutions-manual

选用的《机器学习方法》版本

书名:机器学习方法
作者:李航
出版社:清华大学出版社
版次:2022年3月第1版

Notebook运行环境配置

  1. Python版本
    请使用python3.10.X,如使用其他版本,requirements.txt中所列的依赖包可能不兼容。

  2. 安装相关的依赖包

    pip install -r requirements.txt
  3. 安装graphviz(用于展示决策树)
    可参考博客:https://blog.csdn.net/HNUCSEE_LJK/article/details/86772806

  4. 安装PyTorch 访问PyTorch官网,选择合适的版本安装PyTorch,有条件的小伙伴可以下载GPU版本

pip3 install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1+cu116 -f https://download.pytorch.org/whl/torch_stable.html
  1. docsify框架运行
    docsify serve ./docs

协作规范

  1. 由于习题解答中需要有程序和执行结果,采用jupyter notebook的格式进行编写(文件路径:notebook/notes),然后将其导出成markdown格式,再覆盖到docs对应的章节下。
  2. 可按照Notebook运行环境配置,配置相关的运行环境。
  3. 习题解答编写中,需要尽量使用初学者(有高数基础)能理解的数学概念,如果涉及公式定理的推导和证明,可附上参考链接。
  4. 当前进度
章节号 标题 进度 负责人 审核人
1 统计学习方法概论 已完成 胡锐锋、毛鹏志 王维嘉、毛鹏志、范佳慧
2 感知机 已完成 胡锐锋 毛鹏志、范佳慧、王天富、王茸茸
3 k近邻法 已完成 胡锐锋 王维嘉、毛鹏志、王茸茸
4 朴素贝叶斯法 已完成 胡锐锋、王维嘉 王瀚翀、王天富、王茸茸
5 决策树 已完成 胡锐锋、王维嘉 王瀚翀、王天富、王茸茸
6 逻辑斯谛回归与最大熵模型 已完成 胡锐锋 毛鹏志、范佳慧、王瀚翀
7 支持向量机 已完成 胡锐锋、王茸茸 王维嘉、王瀚翀、王天富
8 提升方法 已完成 胡锐锋、王茸茸 王维嘉、毛鹏志、王瀚翀
9 EM算法及其推广 已完成 胡锐锋 毛鹏志、范佳慧、王瀚翀、王茸茸
10 隐马尔可夫模型 已完成 胡锐锋、王瀚翀 王维嘉、范佳慧、王天富、王茸茸
11 条件随机场 已完成 胡锐锋、王瀚翀 王维嘉、范佳慧、王天富
14 聚类方法 已完成 胡锐锋、刘晓东 毛鹏志、汪健麟、王天富
15 奇异值分解 已完成 胡锐锋、李拥祺 张宇明、刘晓东、兰坤
16 主成分分析 已完成 胡锐锋、王茸茸 张宇明、刘晓东、范致远、兰坤
17 潜在语义分析 已完成 胡锐锋 汪健麟、王天富、兰坤
18 概率潜在语义分析 已完成 胡锐锋 毛鹏志、兰坤、汪健麟、张宇明
19 马尔可夫链蒙特卡罗法 已完成 胡锐锋、王天富 毛鹏志、刘晓东、范致远、汪健麟
20 潜在狄利克雷分配 已完成 胡锐锋、薛博阳 毛鹏志、刘晓东、范致远、王天富
21 PageRank算法 已完成 胡锐锋、毛鹏志 张宇明、范致远、王天富
23 前馈神经网络 已完成 胡锐锋、毛鹏志 王天富、李拥祺、王昊文、胡磊
24 卷积神经网络 已完成 胡锐锋、王天富 王昊文、李拥祺、胡磊、李拙
25 循环神经网络 已完成 胡锐锋、王昊文 毛鹏志、李拥祺、王天富、李拙
26 序列到序列模型 待完善 胡锐锋、薛博阳 毛鹏志、王昊文、胡磊、李拙
27 预训练语言模型 已完成 胡锐锋、范致远 毛鹏志、胡磊、王天富、李拙
28 生成对抗网络 已完成 胡锐锋、胡磊 毛鹏志、王昊文、王天富、李拥祺

项目结构

codes----------------------------------------------习题代码
|   +---ch02-----------------------------------------第2章习题解答代码
|   |   +---perceptron.py------------------------------习题2.2(构建从训练数据求解感知机模型的例子)
|   +---ch03-----------------------------------------第3章习题解答代码
|   |   +---k_neighbors_classifier.py------------------习题3.1(k近邻算法关于k值的模型比较)
|   |   +---kd_tree_demo.py----------------------------习题3.2(kd树的构建与求最近邻点)
|   |   +---my_kd_tree.py------------------------------习题3.3(用kd树的k邻近搜索算法)
|   +---ch05-----------------------------------------第5章习题解答代码
|   |   +---k_neighbors_classifier.py------------------习题5.1(调用sklearn的DecisionTreeClassifier类使用C4.5算法生成决策树)
|   |   +---my_decision_tree.py------------------------习题5.1(自编程实现C4.5生成算法)
|   |   +---my_least_squares_regression_tree.py--------习题5.2(最小二乘回归树生成算法)
|   +---ch06-----------------------------------------第6章习题解答代码
|   |   +---my_logistic_regression.py------------------习题6.2(实现Logistic回归模型学习的梯度下降法)
|   |   +---maxent_dfp.py------------------------------习题6.3(最大熵模型学习的DFP算法)
|   +---ch07-----------------------------------------第7章习题解答代码
|   |   +---svm_demo.py--------------------------------习题7.2(根据题目中的数据训练SVM模型,并在图中画出分离超平面、间隔边界及支持向量)
|   +---ch08-----------------------------------------第8章习题解答代码
|   |   +---adaboost_demo.py---------------------------习题8.1(使用sklearn的AdaBoostClassifier分类器实现)
|   |   +---my_adaboost.py-----------------------------习题8.1(自编程实现AdaBoost算法)
|   +---ch09-----------------------------------------第9章习题解答代码
|   |   +---three_coin_EM.py---------------------------习题9.1(三硬币模型的EM算法)
|   |   +---gmm_demo.py--------------------------------习题9.3(使用GaussianMixture求解两个分量高斯混合模型的6个参数)
|   |   +---my_gmm.py----------------------------------习题9.3(自编程实现求两个分量的高斯混合模型的5个参数)
|   +---ch10-----------------------------------------第10章习题解答代码
|   |   +---hidden_markov_backward.py------------------习题10.1(隐马尔可夫模型的后向算法)
|   |   +---hidden_markov_forward_backward.py----------习题10.2(隐马尔可夫模型的前向后向算法)
|   |   +---hidden_markov_viterbi.py-------------------习题10.3(隐马尔可夫模型的维特比算法)
|   +---ch11-----------------------------------------第11章习题解答代码
|   |   +---crf_matrix.py------------------------------习题11.4(使用条件随机场矩阵形式,计算所有路径状态序列的概率及概率最大的状态序列)
|   +---ch14-----------------------------------------第14章习题解答代码
|   |   +---divisive_clustering.py---------------------习题14.1(分裂聚类算法)
|   +---ch15-----------------------------------------第15章习题解答代码
|   |   +---my_svd.py----------------------------------习题15.1(自编程实现奇异值分解)
|   |   +---outer_product_expansion.py-----------------习题15.2(外积展开式)
|   +---ch16-----------------------------------------第16章习题解答代码
|   |   +---pca_svd.py---------------------------------习题16.1(样本矩阵的奇异值分解的主成分分析算法)
|   +---ch17-----------------------------------------第17章习题解答代码
|   |   +---lsa_svd.py---------------------------------习题17.1(用矩阵奇异值分解进行潜在语义分析)
|   |   +---divergence_nmf_lsa.py----------------------习题17.2(损失函数是散度损失时的非负矩阵分解算法)
|   +---ch18-----------------------------------------第18章习题解答代码
|   |   +---em_plsa.py---------------------------------习题18.1(基于生成模型的EM算法的概率潜在语义分析)
|   +---ch19-----------------------------------------第19章习题解答代码
|   |   +---monte_carlo_method.py----------------------习题19.1(蒙特卡洛法积分计算)
|   |   +---metropolis_hastings.py---------------------习题19.7(使用Metropolis-Hastings算法求后验概率分布的均值和方差)
|   |   +---gibbs_sampling.py--------------------------习题19.8(使用吉布斯抽样算法估计参数的均值和方差)
|   +---ch20-----------------------------------------第20章习题解答代码
|   |   +---gibbs_sampling_lda.py----------------------习题20.2(LDA吉布斯抽样算法)
|   +---ch21-----------------------------------------第21章习题解答代码
|   |   +---page_rank.py-------------------------------习题21.2(基本定义的PageRank的迭代算法)
|   +---ch23-----------------------------------------第23章习题解答代码
|   |   +---feedforward_nn_backpropagation.py----------习题23.3(自编程实现前馈神经网络的反向传播算法)
|   +---ch24-----------------------------------------第24章习题解答代码
|   |   +---cnn-text-classification.py-----------------习题24.7(基于CNN的自然语言句子分类模型)
|   +---ch26-----------------------------------------第26章习题解答代码
|   |   +---lstm_seq2seq.py----------------------------习题26.1(4层LSTM组成的序列到序列的基本模型)
|   |   +---cnn_seq2seq.py-----------------------------习题26.4(基于CNN的序列到序列模型)
|   +---ch27-----------------------------------------第27章习题解答代码
|   |   +---bi-lstm-text-classification.py-------------习题27.1(基于双向LSTM的预训练语言模型)
|   |   +---auto_encoder.py----------------------------习题27.3(2层卷积神经网络编码器和2层卷积神经网络解码器组成的自动编码器)
|   +---ch28-----------------------------------------第28章习题解答代码
|   |   +---zero_sum_game.py---------------------------习题28.2(零和博弈的代码验证)
docs-----------------------------------------------习题解答
notebook-------------------------------------------习题解答JupyterNotebook格式
requirements.txt-----------------------------------运行环境依赖包

致谢

核心贡献者

  • 胡锐锋-项目负责人 (Datawhale成员-华东交通大学-系统架构设计师)
  • 王维嘉 (中国石油大学(北京))
  • 王茸茸 (北京邮电大学-风控算法工程师)
  • 王瀚翀 (华东师范大学-推荐系统方向)
  • 毛鹏志 (Datawhale成员-中科院计算所-信息检索与生物信息方向)
  • 刘晓东 (中科院自动化研究所-意图识别与人机交互方向)
  • 李拥祺 (南方科技大学-运动规划与控制决策方向)
  • 王天富 (中国科学技术大学-数据挖掘与强化学习方向)
  • 薛博阳 (香港中文大学-语言模型与语音识别方向)
  • 胡磊 (北京科技大学-表征学习与生物信息方向)
  • 范致远 (Datawhale成员-中科院自动化研究所-信息抽取与大模型可信推理方向)
  • 王昊文 (帝国理工学院-算法工程师)

其他

  1. 特别感谢 @Sm1les@LSGOMYP 对本项目的帮助与支持;
  2. 感谢@GYHHAHA,指出了第7章习题7.4的解答问题,并完善了该题的解答;
  3. 感谢范佳慧、汪健麟、张宇明、兰坤、李拙等同学对项目提供的完善性建议;
  4. 感谢张帆同学对习题27.1解答的帮助,解决了ELMo预训练模型的代码问题。

参考文献

  1. 李航《统计学习方法笔记》中的代码、notebook、参考文献、Errata
  2. CART剪枝详解
  3. CART剪枝算法详解

关注我们

扫描下方二维码关注公众号:Datawhale

  Datawhale,一个专注于AI领域的学习圈子。初衷是for the learner,和学习者一起成长。目前加入学习社群的人数已经数千人,组织了机器学习,深度学习,数据分析,数据挖掘,爬虫,编程,统计学,Mysql,数据竞赛等多个领域的内容学习,微信搜索公众号Datawhale可以加入我们。

LICENSE

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

More Repositories

1

pumpkin-book

《机器学习》(西瓜书)公式详解
23,825
star
2

leedl-tutorial

《李宏毅深度学习教程》(李宏毅老师推荐👍,苹果书🍎),PDF下载地址:https://github.com/datawhalechina/leedl-tutorial/releases
Jupyter Notebook
13,188
star
3

llm-cookbook

面向开发者的 LLM 入门教程,吴恩达大模型系列课程中文版
Jupyter Notebook
11,475
star
4

easy-rl

强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/
Jupyter Notebook
9,150
star
5

self-llm

《开源大模型食用指南》基于Linux环境快速部署开源大模型,更适合中国宝宝的部署教程
Jupyter Notebook
8,097
star
6

joyful-pandas

pandas中文教程
Jupyter Notebook
4,603
star
7

llm-universe

本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/
Jupyter Notebook
4,420
star
8

competition-baseline

数据挖掘、计算机视觉、自然语言处理、推荐系统竞赛知识、代码、思路
Jupyter Notebook
4,251
star
9

fun-rec

推荐系统入门教程,在线阅读地址:https://datawhalechina.github.io/fun-rec/
Jupyter Notebook
4,197
star
10

hugging-llm

HuggingLLM, Hugging Future.
Jupyter Notebook
2,732
star
11

so-large-lm

大模型基础: 一文了解大模型基础知识
2,612
star
12

daily-interview

Datawhale成员整理的面经,内容包括机器学习,CV,NLP,推荐,开发等,欢迎大家star
HTML
2,524
star
13

thorough-pytorch

PyTorch入门教程,在线阅读地址:https://datawhalechina.github.io/thorough-pytorch/
Jupyter Notebook
2,426
star
14

learn-nlp-with-transformers

we want to create a repo to illustrate usage of transformers in chinese
Shell
2,245
star
15

team-learning

主要展示Datawhale的组队学习计划。
2,208
star
16

team-learning-data-mining

主要存储Datawhale组队学习中“数据挖掘/机器学习”方向的资料。
Jupyter Notebook
1,599
star
17

key-book

《机器学习理论导引》(宝箱书)的证明、案例、概念补充与参考文献讲解。
1,522
star
18

hugging-multi-agent

A tutorial based on MetaGPT to quickly help you understand the concept of agent and muti-agent and get started with coding development. 基于MetaGPT的多智能体入门与开发教程
CSS
1,333
star
19

llms-from-scratch-cn

仅需Python基础,从0构建大语言模型;从0逐步构建GLM4\Llama3\RWKV6, 深入理解大模型原理
Jupyter Notebook
1,149
star
20

hands-on-data-analysis

动手学数据分析以项目为主线,知识点孕育其中,通过边学、边做、边引导来得到更好的学习效果
Jupyter Notebook
1,148
star
21

tiny-universe

《大模型白盒子构建指南》:一个全手搓的Tiny-Universe
Python
1,113
star
22

team-learning-nlp

主要存储Datawhale组队学习中“自然语言处理”方向的资料。
Jupyter Notebook
865
star
23

dive-into-cv-pytorch

动手学CV-Pytorch版
Python
837
star
24

team-learning-program

主要存储Datawhale组队学习中“编程、数据结构与算法”方向的资料。
Jupyter Notebook
825
star
25

wonderful-sql

Follow me,从 0 到 1 掌握 SQL。
736
star
26

leetcode-notes

🐳 LeetCode 算法笔记:面试、刷题、学算法。在线阅读地址:https://datawhalechina.github.io/leetcode-notes/
682
star
27

machine-learning-toy-code

《机器学习》(西瓜书)代码实战
Jupyter Notebook
648
star
28

whale-quant

本项目为量化开源课程,可以帮助人们快速掌握量化金融知识以及使用Python进行量化开发的能力。
Jupyter Notebook
515
star
29

intro-mathmodel

《数学建模导论》教程,全网最全数学建模模型与算法教程系列,带你走进数学建模的大门!
460
star
30

fantastic-matplotlib

Matplotlib中文教程,在线阅读地址:https://datawhalechina.github.io/fantastic-matplotlib/
Python
456
star
31

torch-rechub

A Lighting Pytorch Framework for Recommendation Models, Easy-to-use and Easy-to-extend.
Python
400
star
32

powerful-numpy

巨硬的NumPy
Jupyter Notebook
363
star
33

d2l-ai-solutions-manual

《动手学深度学习》习题解答,在线阅读地址如下:
Jupyter Notebook
337
star
34

learn-python-the-smart-way

聪明方法学Python,简明且系统的 Python 入门教程。
Jupyter Notebook
330
star
35

vced

VCED 可以通过你的文字描述来自动识别视频中相符合的片段进行视频剪辑。该项目基于跨模态搜索与向量检索技术搭建,通过前后端分离的模式,帮助你快速的接触新一代搜索技术。
Python
327
star
36

team-learning-cv

主要存储Datawhale组队学习中“计算机视觉”方向的资料。
Jupyter Notebook
315
star
37

juicy-bigdata

🎉🎉🐳 Datawhale大数据处理导论教程 | 大数据技术方向的开篇课程🎉🎉
Python
265
star
38

office-automation

python自动化办公
Jupyter Notebook
245
star
39

learn-python-the-smart-way-v2

聪明办法学Python,简明且系统的 Python 入门教程第二版。
Jupyter Notebook
216
star
40

DOPMC

Datawhale 开源项目管理委员会(Datawhale Open-source Project Management Committee,简称DOPMC)
199
star
41

grape-book

图深度学习(葡萄书),在线阅读地址: https://datawhalechina.github.io/grape-book
HTML
186
star
42

team-learning-sql

主要存储Datawhale组队学习中“SQL”方向的资料。
178
star
43

joyrl

An easier PyTorch deep reinforcement learning library.
Python
160
star
44

agent-tutorial

157
star
45

awesome-compression

模型压缩的小白入门教程
152
star
46

smoothly-vslam

VSLAM开源基础教程,各章节练习代码
C++
149
star
47

undingable-optimization

顶不住的运筹优化
149
star
48

faster-git

a chinese tutorial of git
138
star
49

ensemble-learning

Jupyter Notebook
137
star
50

free-excel

开源Excel教程。
CSS
131
star
51

unusual-deep-learning

水很深的深度学习
122
star
52

hugging-sd

Hugging StableDiffusion, Hugging Future.
Jupyter Notebook
112
star
53

huawei-od-python

华为OD算法题解
Python
110
star
54

sweetalk-design-pattern

基于《大话设计模式》对设计原则和设计模式进行解读。
C++
106
star
55

joyrl-book

Jupyter Notebook
101
star
56

sora-tutorial

97
star
57

wow-fullstack

wow-fullstack,令人惊叹的全栈开发教程
JavaScript
88
star
58

hands-dirty-nlp

本课程面对具有一定机器学习基础,但尚未入门的NLPer或经验尚浅的NLPer,尽力避免陷入繁琐枯燥的公式讲解中,力求用代码展示每个模型背后的设计思想,同时也会带大家梳理每个模块下的技术演变,做到既知树木也知森林。
Jupyter Notebook
80
star
59

paper-chart-tutorial

《科研论文配图》组队学习
64
star
60

whale-anno

Datawhale自研数据标注工具
Vue
63
star
61

time-series-learning

天池”AI Earth“气象海洋预测竞赛的Topline学习教程
Jupyter Notebook
60
star
62

wow-plotly

高级可视化神器plotly的学习
Jupyter Notebook
55
star
63

leegenai-tutorial

《李宏毅生成式人工智能教程》,PDF下载地址:https://github.com/datawhalechina/leegenai-tutorial/releases
55
star
64

openmmlab-tutorial

帮助新手快速入门、快速使用、习惯 OpenMMLab 开源库官方文档且能够自主上手实验,自由选择阅读更深层的知识。
Jupyter Notebook
53
star
65

go-talent

Go天才小队
Go
49
star
66

rl-papers

rl-papers
41
star
67

whale-paper

Datawhale论文分享,阅读前沿论文,分享技术创新
40
star
68

unlock-hf

解锁HuggingFace生态的百般用法
HTML
40
star
69

aima-notes

人工智能:现代方法(第4版)笔记
39
star
70

llm-deploy

大模型/LLM推理和部署理论与实践
39
star
71

llm-research

39
star
72

what-is-vs

向量检索教程
36
star
73

whale-starry

繁星点点,光芒万丈
C++
34
star
74

team-learning-rl

主要存储Datawhale组队学习中“强化学习”方向的资料。
31
star
75

hugging-audio

Hugging Face Audio Course中文版,帮助学习者快速入门音频模态
Jupyter Notebook
28
star
76

ML-FTTI

机器学习 - 从原理到实现
Python
28
star
77

whale-web

Python
27
star
78

handy-ollama

动手学Ollama,CPU玩转大模型部署,在线阅读地址:https://datawhalechina.github.io/handy-ollama/
Jupyter Notebook
27
star
79

magic-cv

Jupyter Notebook
22
star
80

hugging-rl

Robot Learning Algorithms
18
star
81

leeml-notes

leeml-notes已更名为leedl-tutorial,请访问:https://github.com/datawhalechina/leedl-tutorial
18
star
82

coggle

Coggle数据科学
16
star
83

easy-grokking-deep-learning

Easy-Grokking-Deep-Learning,意为轻松摸索深度学习,英文缩写可简称为EGDL。
Python
13
star
84

scientific-computing

Python科学计算教程,学完Python不知道如何应用?看这里:https://datawhalechina.github.io/scientific-computing/
12
star
85

sweetalk-data-structure

电子书阅读地址
10
star
86

datawhale-linklearner

datawhale linklearner 网站
TypeScript
9
star
87

camel-agent-tutorial

This is a tutorial based on the CAMEL framework, aimed at understanding how to build an Agent Society from the ground up!
9
star
88

repo-template

Datawhale Repository Template
8
star
89

self-dify

8
star
90

udl-tutorial

6
star
91

easy-ros2arm

Robotic arm with machine vision and its os is ROS2.
C++
5
star
92

HandPoseKeyPoints

5
star
93

latex-template

Datawhale LaTex Template
TeX
5
star
94

design-and-analysis-of-algorithm

4
star
95

hello-net

4
star
96

fun-marl

4
star
97

light-memory-pool

基于Arrow的轻量内存池
C++
4
star
98

hands-on-llm

Python
3
star
99

whale-coin

Python
3
star
100

ai-club

Datawhale 高校联盟
3
star