西瓜书) 1"/>
机器学习(西瓜书) 1
机器学习(西瓜书) 1-5章回顾
文章目录
- 机器学习(西瓜书) 1-5章回顾
- 第一章 绪论
- 基本术语
- 假设空间
- 版本空间
- NFL定理
- 其他结论
- 第二章 模型评估与选择
- 经验误差与过拟合
- 评估方法
- 性能度量
- 代价敏感错误率
- 其他部分
- 第三章 线性模型
- 基本形式
- 线性回归 **
- 对数几率回归
- 梯度下降推导
- 其他内容
- 第四章 决策树
- ID3
- 增益率 C4.5
- 基尼指数 CART
- 预剪枝和后剪枝
- 预剪枝
- 后剪枝
- 属性的处理
- 连续值处理
- 缺失值处理
- 第五章 神经网络
- 感知机
- BP神经网络
准备一下开学的考试复习
有问题欢迎私信
欢迎点个赞关注一下呗
第一章 绪论
基本术语
-
特征
-
标记
-
训练集
-
测试集
-
监督学习
- 分类
- 回归
-
无监督学习
- 聚类
-
泛化能力
假设空间
所有属性的可能性(可能取值)组合形成的假设(假设*
,*
,*
为好瓜),组成假设空间
例如:
色泽属性可取(青绿,乌黑,浅白,*
)
根蒂属性可取(蜷缩,稍蜷,硬挺,*
)
敲声属性可取(浊响,清脆,沉闷,*
)
以及好瓜假设不存在这一种情况
即西瓜问题的假设空间大小为 4 ∗ 4 ∗ 4 + 1 = 65 4*4*4+1=65 4∗4∗4+1=65
版本空间
与训练集匹配的假设空间子集称为版本空间。
计算方法
- 将与正样本不一致的或与负样本一致的假设全部删除。
案例如下
西瓜书 第一章 绪论 参考答案 假设空间与版本空间的计算
NFL定理
NFL(No free lunch 没有免费的午餐)定理
及: 没有最好的算法,只有最合适的算法
在不结合具体问题的情况下,对于一个学习算法La,若它在某个问题上比学习算法Lb好,则必然存在另一些问题,在那里Lb比La好。这个结论对任何算法都成立,哪怕La是一个非常先进的算法,而Lb只是“随机胡猜”算法。
这里可以先记住这个结论
其他结论
随便看看就知道了,后面的章节会详细的介绍
第二章 模型评估与选择
经验误差与过拟合
- 错误率: 分错样本的占比
- 误差
- 训练误差: 我们只能努力减小这个误差
- 测试误差
- 泛化误差
- 过拟合
- 欠拟合
评估方法
- 留出法
- 一种是直接划分 比如说10年的数据,我们把前七年的分为训练集, 后三年的分为测试集
- 但有的时候如果这10年的数据满足一种分布,我们直接划分的话可能会破坏数据的整体分布,所以这个时候如果还想要三七分的话我们就可以 从所有的数据中 随机取数据 直到取到的训练集占了70%,这样就保持了原有的分布
- 交叉验证法
- 常用k=10的十折交叉验证
- 把数据及分层采样划分为 k个互斥子集 每次用k-1个来训练 剩下的那个为测试集 最终返回k个测试结果的均值作为训练误差结果
- k=m的时候为留一法
- 自主法
- 一共m个样本,做m次有放回的随机采样作为训练集 D ′ D^{'} D′剩下的作为测试集
- 推导: 一共m个数据,每次随机采样的时候取数据时,每个数据被取到的概率为 1 m \frac{1}{m} m1,则不被取到的概率为 1 − 1 m 1-\frac{1}{m} 1−m1
一共采样m次,那么存在数据始终没被采样到,其概率为 ( 1 − 1 m ) m (1-\frac{1}{m})^{m} (1−m1)m
我们可以对这个概率求一下极限,很明显为 1 e \frac{1}{e} e1
大概为 1 3 \frac{1}{3} 31,因此有 1 3 \frac{1}{3} 31的数据可能没被取到,这就满足了训练集和测试 集的划分
性能度量
衡量模型泛化能力的评价标准
回归任务最常用的是均方误差
分类任务常用错误率和精度
查全率和查准率
方法: 先写出混淆矩阵
查准率 预测的结果里面有多少是对的
查全率 所有的正例里面有多少被预测出来了
F1度量 调和评均
1 F = 1 2 ∗ ( 1 P + 1 R ) \frac{1}{F} = \frac{1}{2}*(\frac{1}{P}+\frac{1}{R}) F1=21∗(P1+R1)
F β F_β Fβ度量 加权调和评均
这里分别赋予了权重1与 β 2 β^2 β2
ROC曲线
以“假正例率”为横轴,“真正例率”为纵轴
上面有20个样本,我们可以根据score选取20种不同的阈值,得到20个不同的混淆矩阵
比如下图,以0.9作为阈值,那么只有第一个数据的实际值是P,下面的数据都是N,由此可以画出混淆矩阵,得到TP,TN,FP,FN
最后算出这种情况下出现在ROC曲线中的坐标
TRP: 真正例率
FRP: 假正例率
20组的数据就可以画出如下的ROC曲线,最后根据实际的需求选择想要的最接近左上角的点
AUC相当于面积
另一种计算方式是 1 - loss
loss的公式如下
举例说明
首先m+和m-就是正例和反例的个数
根据公式来看看,假设以+1作为阈值来划分
f ( x + ) < f ( x − ) 的 情 况 有 4 种 f(x^+)<f(x^-)的情况有4种 f(x+)<f(x−)的情况有4种
- 1 < -5
- 1 < -6
- 2 < -6
- 3 < -6
那么 l r a n k = 4 6 ∗ 6 l_{rank}=\frac{4}{6*6} lrank=6∗64
A U C = 1 − l r a n k AUC = 1 - l_{rank} AUC=1−lrank
代价敏感错误率
这里简单的来说是设置了2个权重,根据实际情况来选择适合的点
比如你要去预测有没有生病,这个时候有两种预测错误的情况,分别对应着cost01和cost10
- c o s t 01 cost_{01} cost01: 你原来有病,但是医生判断错了,说你没病
- c o s t 10 cost_{10} cost10: 你原来没病,但是医生说你有病
显然,大部分人更希望发生cost01,因为第二种情况下最多多花一点钱,但对身体没有损失,第一种情况就可以让这个病一直潜伏了
其他部分
其他部分见ppt
一起学西瓜书02 模型评估与选择
第三章 线性模型
基本形式
这里的 x和 w都是向量的形式
f ( x ) = w T x + b , w = ( w 1 ; w 2 ; . . . ; w n ) f(x) = w^Tx + b,w=(w_1;w_2;...;w_n) f(x)=wTx+b,w=(w1;w2;...;wn)
线性回归 **
目标
最小二乘法
单一属性的
上图是我简单的推导了一下结论
多元线性回归
推导如下: 主要是理解矩阵的求导法则
对数几率回归
梯度下降推导
核心 w = w − α ∂ c o s t ∂ w , ( α : 学 习 率 ) w=w-\alpha\frac{\partial{cost}}{\partial{w}} ,(\alpha :学习率) w=w−α∂w∂cost,(α:学习率)
其他内容
一起学西瓜书03 线性模型
第四章 决策树
ID3
信息增益计算步骤
- 计算根节点/父节点的信息熵
- E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=−∑k=1∣y∣pklog2pk
- E n t ( D ) = ∑ k = 1 ∣ y ∣ p k l o g 2 1 p k Ent(D)=\sum_{k=1}^{|y|}p_klog_2\frac{1}{p_k} Ent(D)=∑k=1∣y∣pklog2pk1
- 比如西瓜的好坏问题 ∣ y ∣ = 2 |y|=2 ∣y∣=2,说明有2种分类
- 计算其他特征的信息增益
- G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)−∑v=1V∣D∣∣Dv∣Ent(Dv)
- 拿色泽来举例 就是用父节点的Ent减去每一个色泽属性的带权信息熵
- 选择信息增益最大的作为下一次划分的依据
下图就是以色泽为计算案例的一个信息增益过程
停止划分的依据
这篇文章给出了全部的推导过程
西瓜书学习(一)—决策树(上)
增益率 C4.5
因为信息增益对可取值数目较多的属性有所偏好
增益率准则对可取值数目较少的属性有所偏
所以先从候选划分属性中找出信息增益高于平均水平的属性,再从中选取增益率最高的
增益率的计算就是在信息增益的基础上除以个数的信息熵,如下
基尼指数 CART
反映了从 中随机抽取两个样本,其类别标记不一致的概率
每次计算完之后要跟父节点的基尼系数相比较,如果分叉之后基尼系数变小,那么就需要分叉,否则就不应该分叉
预剪枝和后剪枝
预剪枝
在划分之前先判断是否需要剪枝
这里的原则是按照个数多的类别来决定
若脐带属性不进行划分,则将其标记为叶结点,类别标记为训练样例中最多的类别,即好瓜,如下为训练集
比如下图中凹陷中有4,5,13三种,其中4,5是好瓜,那么就把凹陷看为好瓜
稍凹的情况 既有好瓜又有坏瓜 就按好瓜来算
- 在划分前 脐带的正确率是 3/7
- 在划分后 脐带的正确率是 5/7
欠拟合风险大
后剪枝
从后往前剪枝
比如先考虑纹理是否需要剪枝
剪枝后纹理成为叶节点,所以纹理属性被划分为好瓜
简单观察一下验证集,三个纹理为清晰的被划分正确,说明正确率有所提高
欠拟合风险小,泛化性能往往优于预剪枝决策树
开销时间大
属性的处理
下面这篇文章里面有手写的推导
西瓜书学习(二)—决策树(下)
连续值处理
最简单的就是二分法下面给出方法:将n个属性值从小到大排列。分别对相邻的属性值求中位值,得到n-1个中位值。
将这n-1个中位值做为划分点对样本集合D进行划分,将其二分n-1次。选出其中信息增益最大的中位值,作为最终的划分点。公式如下:
缺失值处理
- 如何在属性值缺失的情况下,划分属性
- 给定划分属性,若样本在该属性上的值缺失,如何对样本划分
步骤,先按有的样本求出总的Ent与各个属性的Ent
**再求信息增益,这里的权重分母仍为有的属性 14 **
最后让信息增益再乘完整样本的比例 14/17
我们在应用某属性分类时,如果有样本缺失该属性,则 将其分入所有的类别中,但其权重要乘上类别比例。
第五章 神经网络
感知机
- 与: 有0则0
- 或: 有1则1
- 非: 反一下
BP神经网络
使用numpy实现两层神经网络 (附Backward详细推导)
推导可以看我写的这篇文章,大概就是走一下梯度下降算法,计算一下导数
更多推荐
机器学习(西瓜书) 1
发布评论