机器学习(西瓜书) 1

编程入门 行业动态 更新时间:2024-10-06 20:34:42

机器学习(<a href=https://www.elefans.com/category/jswz/34/1765911.html style=西瓜书) 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∣​pk​log2​pk​
    • 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∣​pk​log2​pk​1​
    • 比如西瓜的好坏问题 ∣ 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

本文发布于:2024-02-14 03:56:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761664.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:西瓜   机器

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!