第一章、绪论

什么是机器学习

用P来评估程序在任务T的性能,如果该程序通过经验E使得T的性能P改善,则称过于T和P,该程序对E进行了学习

监督学习和无监督学习的区别

  1. 监督学习训练集有标签,通过训练让机器自己找到特征和标签之间的联系,之后面对没有标签的数据时可以自己判断出标签
  2. 无监督学习训练集只有特征没有标签,由于训练数据中只有特征没有标签,所以就需要机器自己对数据进行聚类分析。
  • 监督学习的例子有:分类,回归,决策树

  • 无监督学习的例子有:聚类

分类和回归

  1. 回归与分类的本质联系都是要建立映射关系,都属于监督学习(同)
  2. 分类算法可以预测离散值,比如图像识别任务,判断一张图片是“猫”“狗”还是“其他动物”,这些类别标签是离散的。
  3. 回归算法可以预测连续值,比如根据房屋的面积、房间数量、所在位置等因素预测房屋的价格,价格是一个连续的数值。

在训练的时候输入的标签中,分类的标签就是离散的,回归的标签是连续的,才可以保证之后的预测

假设空间和版本空间

假设空间:样本属性可能产生的所有假设的集合

版本空间:与训练集一致的假设的集合

一些数据有标记,一些数据没标记,设计一种方法尽可能充分利用这些数据

  1. 先用没标记的数据进行无监督学习,将其预测值作为伪标签
  2. 再将伪标签的数据和有标记的数据一起进行监督学习即可

第二章、模型评估与选择

过拟合和欠拟合

  1. 过拟合:机器学习能力太强,模型将训练样本自身的特点当作所有样本的一般性质
  2. 欠拟合:机器学习能力不足,模型尚未学习好训练样本的一般性质

缓解策略

过拟合的缓解策略:

  1. 降低模型复杂度
  2. 早停

欠拟合的缓解策略:

  1. 增加模型复杂度
  2. 延长训练时间,增加训练轮数

留出法、k折交叉验证法、自助法

留出法:

将数据集分为两个互斥集合,训练集(70%)和测试集(30%)

然后进行模型训练,一般要重复实验,通过结合策略选出最佳结果

k折交叉验证法:

进行k次训练和测试,将数据集分为k个互斥子集,每次选取1个作为测试集,其余k-1个作为训练集,最后对k次测试结果进行汇总处理后得到最终结果

自助法:

对数据集进行重复多次自助抽样来生成多个数据子集,用这些数据子集训练多个模型,最后评估这些模型的性能,得出更稳定的性能估计

训练集、测试集和验证集

来源都是从数据集中取出来的

区别在于用法不同:

  • 训练集在于训练模型,使模型学习数据的特征和标签,从而能够对未知数据做出准确的预测
  • 验证集可以在训练过程中调整参数
  • 测试集用于评估模型的最终性能

训练误差,测试误差,泛化误差

训练误差:模型在训练集上产生的误差,反应模型自身的拟合能力

测试误差:模型在测试集上产生的误差,反应模型对新数据的预测能力

泛化误差:泛化误差是指模型在未知数据上的平均误差,反应模型的泛化能力。它是模型泛化能力的量化指标。泛化误差通常通过理论分析或期望值来定义,表示模型在所有可能的测试数据上的平均误差。在实践中,我们无法直接计算泛化误差,因为它涉及到对所有可能数据的期望。

训练误差小,测试误差不一定小,因为模型可能发生过拟合。

OVO

OVO(One-vs-One)策略是一种在多分类问题中使用的策略

举例说明:

假设有一个数据集包含3个类别(A、B、C)这意味着需要构建3(k(k-1)/2)个分类器,分别是:

  1. 分类器1:比较类别A和类别B
  2. 分类器2:比较类别A和类别C
  3. 分类器3:比较类别B和类别C

每个分类器都专注于区分两个类别,最终的分类结果可以通过投票或其他策略来决定。

类型不平衡的解决办法

类型不平衡指在分类任务中,不同类别样本数量分布不均(多数类和少数类)

例如电诈(绝大部分不是电诈),这样可能把所有全归为非电诈

解决方案:

  • 改变错误成本,为不同类比错误分配不同成本,例如少数类分配更大权重,使模型在训练时更加关注少数类的错误
  • 选择合使的评估指标(例如查全率和查准率)

第四章、决策树

决策树算法

  • ID3算法(信息增益)

  • C4.5算法(信息增益率)

  • CART (基尼系数)

信息增益怎么算?(案例)

年龄是否购买
20
25
30
35
40

信息增益公式

信息增益=原始数据的熵-条件熵

会算熵就会算信息增益率

熵的计算公式

$H(x)=−\sum_{i=1}^{n}p_ilog_2p_i$ ( $p_i$指的是不同结果的概率)

  1. 原始熵:$H(D)=−(\frac{3}{5}log_2\frac{3}{5}+\frac{2}{5}log_2\frac{2}{5})≈0.971$

  2. 30作为分割点的条件熵:

    • D1:年龄 < 30,包含2个“是”和0个“否” $H(D_1)=−(\frac{2}{2}log_2\frac{2}{2}+\frac{0}{2}log_2\frac{0}{2})=0$

    • D2:年龄 ≥ 30,包含1个“是”和2个“否” $H(D_2)=−(\frac{1}{3}log_2\frac{1}{3}+\frac{2}{3}log_2\frac{2}{3})=0.918$

    • 条件熵 $H(D∣f)=\frac{2}{5}H(D_1)+\frac{3}{5}H(D_2)≈0.551$

结果

$I(D,f)=H(D)−H(D∣f)=0.971−0.551=0.420$

把所有分割点的信息增益给算出来,选取最大的那个作为划分依据即可

决策树连续值怎么处理

将连续属性从小到大排序,取相邻属性的平均值作为分割点,之后按ID3算法来处理即可

预剪枝和后减枝的优缺点

预剪枝

优点:

  1. 降低过拟合风险
  2. 减少训练和测试的开销

缺点:

  1. 带来了欠拟合风险

后减枝

优点:

  1. 降低欠拟合风险

缺点:

  1. 训练开销大
  2. 带来了过拟合风险

回归树和决策树的特点和区别

特点:都是基于树的结果进行数据划分,叶子节点表示预测结果,非叶子节点表示判断条件

区别:

  • 决策树是用于将数据划分为不同类别
  • 回归树是用于预测连续的数值
  • 决策树的分类标准有(ID3,C4.5,CART)
  • 回归树的分类标准有均方差

第五章、神经网络

早停

指在验证集的性能不再有明显提升时停止训练,防止过拟合

第六章、支持向量机

支持向量机的原理

在样本空间中寻找一个超平面,将正负样例分开,并且使正负样例到该超平面的距离最大

核函数原理

在许多问题中,数据往往是线性不可分的,核函数通过将数据映射到高维空间,使得数据线性可分,并且避免显示计算高维空间中的坐标,大大提高计算效率。

向量机改进

如果超平面无法在训练集样本中进行划分,还可以用向量机基本型嘛?如果不可以,改进方法有什么?改进的基本原理是什么?

  1. 不可以
  2. 使用核函数映射到一个更高维的特征空间,使其线性可分
    • 如果一个训练集是有限维,那末一定存在一个更高维空间使其线性可分
  3. 使用软间隔,允许一些样本划分错误
    • ​ 最小化误差的同时最大化间隔

第七章、贝叶斯分类器

关键假设前提:各属性间互不干扰

主要解决了在有限的训练集上估计p(x,c)的联合概率分布计算p(x|c)的障碍(数据稀疏性,属性组合爆炸等)

数据稀疏性指样本数量太少,根本没有(x,c)这个组合出现

生成式算法:贝叶斯算法之所以是生成式算法,是因为它基于贝叶斯定理,通过已知的先验概率和条件概率来计算后验概率,从而模拟数据的生成过程。

第八章、集成学习

bagging和boosting

bagging通过自助法,生成多个数据集,训练多个集学习器,然后通过投票法或回归法来预测结果。

boosting通过逐步训练多个基学习器,每个基学习器都试图纠正前一个基学习器的错误。

bagging主要是通过降低模型方差,提高模型的稳定性

boosting主要是通过降低模型的偏差,提高模型的拟合能力

随机森林的原理

随机森林的在bagging的基础上,先自助采样得到多个数据集,以然后通过这些数据集以决策树作为基学习器,最后通过结合策略(分类用投票法,回归用平均法)集成最终的学习器

随机森林的随机性体现在哪里

  • 自助法的采样随机性
  • 样本属性选择的随机性

集成学习的性能

集成学习的性能一定会提升嘛,影响集成学习的关键因素是什么?举一种提高集成学习性能的方法?

  1. 不一定
  2. 关键因素:
    1. 个体学习器的准确性,个体学习器的准确率越高,集成学习的性能越好
    2. 个体学习器的多样性,个体学习器的多样性越好,集成学习的性能越好
  3. 提升性能的方法:
    1. 增加多样性:如利用bagging自助采样

计算

k均值(K-means)算法

初始选择1(1,1)和3(1,2)作为初始点

计算其他点到出生点的距离

序号属性一(x)属性二(y)
111
221
312
422
543
653
744
854

第一轮:

序列距离1距离3分类
1011
21$\sqrt{2}$1
3103
4$\sqrt{2}$13
5$\sqrt{13}$$\sqrt{10}$3
6$2\sqrt{5}$$\sqrt{17}$3
7$3\sqrt{2}$$\sqrt{13}$3
85$2\sqrt{5}$3
  • {1,2},簇为(1.5,1)

  • {3,4,5,6,7,8},簇为(3.5,3)

第二轮:

序列距离簇1距离簇2分类
10.5$\sqrt{10.25}$簇1
………………
  • {1,2,3,4}
  • {5,6,7,8}

第3轮:

  • {1,2,3,4}
  • {5,6,7,8}

和第二轮一样,说明收敛,不用往下了,这就是最后结果

贝叶斯

(朴素贝叶斯)试由下表的训练数据学习一个朴素贝叶斯分类器并确定 x =(2, S, T)的类判别结果y。表中X^(1)^, X^(2)^, X^(3)^为特征,Y 为类标记。

样本编号$X^{(1)}$$X^{(2)}$$X^{(3)}$$Y$
11ST-1
21MT-1
31MF1
42SF1
52SF-1
61LT-1
72MF-1
82MT1
93LT1
103SF1

令X = X^(1)^X^(2)^X^(3)^

因为贝叶斯的前提是所有情况相互独立,互不干扰,所以分子可拆,分母就不行了,但分母是一样的,根本就不用算

则P(Y|X) = $\frac{P(X|Y)P(Y)}{P(X)}$=$\frac{P(X^{(1)}|Y)P(X^{(2)}|Y)P(X^{(3)}|Y)P(Y)}{P(X)}$

  • Y=1, x =(2, S, T)时
    • $P(X^{(1)}|Y)$=$\frac{2}{5}$
    • $P(X^{(2)}|Y)$=$\frac{2}{5}$
    • $P(X^{(3)}|Y)$=$\frac{2}{5}$
    • $P(Y)$=$\frac{1}{2}$
    • 分子为$\frac{4}{125}$
  • Y=-1时
    • $P(X^{(1)}|Y)$=$\frac{2}{5}$
    • $P(X^{(2)}|Y)$=$\frac{2}{5}$
    • $P(X^{(3)}|Y)$=$\frac{3}{5}$
    • $P(Y)$=$\frac{1}{2}$
    • 分子为$\frac{6}{125}$

所以朴素贝叶斯预测器应该预测为-1

查全率和查准率

  • 查全率指在所有小偷中,抓住了几个

  • 查准率指抓住的人中,有几个是小偷

计算两个保安抓小偷的查准率和查全率,并讨论在要求尽可能抓到所有小偷的情况下,谁的表现更好?

A保安实际上是小偷实际上是好人合计
抓住的小偷516
放走的好人157994
合计2080100
B保安实际上是小偷实际上是好人合计
抓住的小偷102030
放走的好人106070
合计2080100

A保安:

  • 查准率=5/6
  • 查全率=5/20=1/4

B保安:

  • 查准率=10/30=1/3
  • 查全率=10/20=1/2

"尽可能抓到小偷的情况下"指查全率

比较是偷走幸福的小偷