文章目录
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第1章 统计学习方法概论
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第 2章感知机
《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第3章 k邻近邻法
我算是有点基础的(有过深度学习和机器学的项目经验),但也是半路出家,无论是学Python还是深度学习,都是从问题出发,边查边做,没有系统的学过相关的知识,这样的好处是入门快(如果想快速入门,大家也可以试试,直接上手项目,从小项目开始),但也存在一个严重的问题就是,很多东西一知半解,容易走进死胡同出不来(感觉有点像陷入局部最优解,找不到出路),所以打算系统的学习几本口碑比较不错的书籍。
书籍选择: 当然,机器学习相关的书籍有很多,很多英文版的神书,据说读英文版的书会更好,奈何英文不太好,比较难啃。国内也有很多书,周志华老师的“西瓜书”我也有了解过,看了前几章,个人感觉他肯能对初学者更友好一点,讲述的非常清楚,有很多描述性的内容。对比下来,更喜欢《统计学习方法》,毕竟能坚持看完才最重要。
笔记内容: 笔记内容尽量省去了公式推导的部分,一方面latex编辑太费时间了,另一方面,我觉得公式一定要自己推到一边才有用(最好是手写)。尽量保留所有标题,但内容会有删减,通过标黑和列表的形式突出重点内容,要特意说一下,标灰的部分大家最好读一下(这部分是我觉得比较繁琐,但又不想删掉的部分)。
代码实现: 最后是本章内容的实践,如果想要对应的.ipynb文件,可以留言
第4章 朴素贝叶斯法
朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法[1]。
对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
4.1 朴素贝叶斯法的学习与分类
4.1.1 基本方法
设
- 输入空间: x ⊆ R n x⊆R^n x⊆Rn为n维向量的集合,
- 输出空间:为类标记集合 Y = ( c 1 , c 2 , … , c K ) Y=({c_1,c_2,…,c_K}) Y=(c1,c2,…,cK)。
- 输入为特征向量 x ∈ X x\in X x∈X,
- 输出为类标记(class label) y ∈ Y y \in Y y∈Y 。
X是定义在输入空间 X X X上的随机向量,Y是定义在输出空间 Y Y Y上的随机变量。 P ( X , Y ) P(X,Y) P(X,Y)是X和Y的联合概率分布。训练数据集
T = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . . , ( x N , y N ) ) T=((x_1,y_1),(x_2,y_2)....,(x_N,y_N)) T=((x1,y1),(x2,y2)....,(xN,yN))
由 P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生。
朴素贝叶斯法通过训练数据集学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)。
先验概率分布和条件概率分布
具体地,学习以下先验概率分布及条件概率分布。
- 先验概率分布: P ( Y = c k ) , k = 1 , 2 … K P(Y=c_k),k=1,2…K P(Y=ck),k=1,2…K
- 条件概率分布: P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . . X ( n ) = x ( n ) ∣ Y = c k ) , k = 1 , 2 , . . . K P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},....X^{(n)}=x^{(n)}|Y=c_k),k=1,2,...K P(X=x∣Y=ck)=P(X(1)=x(1),....X(n)=x(n)∣Y=ck),k=1,2,...K
条件概率分布 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=x∣Y=ck)有指数级数量的参数,其估计实际是不可行的。
朴素贝叶斯法对条件概率分布作了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。
朴素贝叶斯法的基本假设:条件独立性假设
:
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . . X ( n ) = x ( n ) ∣ Y