机器学习西瓜书-第1、2章【持续更新】

之前较系统化的接触过监督学习,但主要是在实践层面,本次学习的目的就是在理论层面加深理解同时完成对无监督学习、聚类的学习。前面2章感觉对于纯小白有不小难度,在后面篇章学完之后再来回看或者边看边学确实更加适合。本次TASK01完成了搭建起理论框架的目的,具体的公式推导和细节补充会在后续学习中不断完善和更新。


第 1 章 绪论

1.1 基本术语

数据集(data set);示例(instance) / 样本(sample);属性(attribute) / 特征(feature);属性值(attribute value);属性空间(attribute space) / 样本空间(sample space) / 输入空间;特征向量(feature vector);泛化能力(generalization)

D = x 1 , x 2 , … … , x m D={x_1,x_2,……,x_m} D=x1,x2,……,xm表示包含 m m m个示例的数据集,每个示例由 d d d个属性描述, d d d称为样本 x i x_i xi的“维数”。

学得模型对应了关于数据的某种潜在规律,因此亦称为“假设”(hypothesis);这种潜在的规律本身,则称为“真相”或“真实”(ground-truth)。有时也将模型称之为“学习器”(learner)。

( x i , y i ) (x_i, y_i) (xi,yi)表示第 i i i个阳历,其中 y i ∈ Y y_i \in Y yiY Y Y Y是所有标记的集合,亦称为“标记空间”(label space)或“输出空间”

分类:

  • 监督学习(supervised learning)
    • 分类 - classification
      • 二分类问题 - binary classification(正类和反类)
      • 多分类问题 - multi-class classification
    • 回归 - regression
  • 无监督学习
    • 聚类 - clustering

通常假设样本空间中全体样本服从一个未知“分布”(distribution)$\distrubition $,我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identically distributed)。

1.3 假设空间

归纳(induction):特殊到一般的泛化(generalization)

演绎(deduction):一般到特殊的特化(specialization)

“从样本中学习”显然是一个归纳过程,因此亦称为“归纳学习”(inductive learning)

​ 广义的归纳学习:从样例中学习

​ 狭义的归纳学习:从训练数据中学得概念(concept),因此亦称为“概念学习”或“概念形成”

存在一个与训练集一致的“假设集合”,称之为“版本空间”(version space)

1.4 归纳偏好

机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”(inductive bias)

E o t e ( L a ∣ X , f ) = ∑ h ∑ x ∈ X − X   P ( x )   I   ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) Eote(\mathfrak L_a|X,f)=\sum_h \sum_{x \in \mathfrak X-X} \ P(x) \ \mathbb I \ (h(x) \not= f(x))P(h|X, \mathfrak L_a) Eote(LaX,f)=hxXX P(x) I (h(x)=f(x))P(hX,La)
其中 I ( ⋅ ) \mathbb I (·) I()表示只是函数,如果 ⋅ · 为真则取1,否则取0.

对所有可能的 f f f按均匀分布对误差求和,
∑ f E o t e ( L a ∣ X , f ) = ∑ f ∑ h ∑ x ∈ X − X   P ( x )   I   ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) = … … \sum_f Eote(\mathfrak L_a|X,f)=\sum_f\sum_h\sum_{x \in \mathfrak X-X} \ P(x) \ \mathbb I \ (h(x) \not= f(x))P(h|X, \mathfrak L_a) \\ =…… fEote(LaX,f)=fhxXX P(x) I (h(x)=f(x))P(hX,La)=……
得出结论:在所有问题出现的概率相同或者所有问题同等重要的情况下,总误差与学习算法无关——No Free Lunch Theorem(NFL定理)

PS:Wolpoert,1996; Wolpert and Macready 1995

为什么存在多个 f f f

以下是关于为什么要考虑所有可能的f并按均匀分布对误差求值的原因:

  1. 模型不确定性:由于真实的f未知,我们只能通过训练数据来估计它。在实际操作中,我们可能会训练出多个不同的模型,每个模型对真实f的估计都有所不同。因此,我们考虑所有可能的f实际上是在考虑模型的不确定性。
  2. 理论分析:在统计学习理论中,为了分析学习算法的泛化能力,我们常常需要考虑函数空间中所有可能的函数。通过对这些函数进行积分,我们可以得到一些关于算法性能的边界,比如泛化误差界。
  3. 贝叶斯观点:在贝叶斯统计中,我们假设真实的f是随机的,并且有一个先验分布。在这种情况下,我们对所有可能的f按照先验概率(均匀分布是一种特殊情况)进行积分,来得到预测的后验分布。这样可以得到一个考虑了所有可能性的预测,而不是单一的最可能的预测。
  4. 风险最小化:在机器学习中,我们通常试图最小化期望风险,期望风险是所有样本上的平均误差的期望值。由于真实分布是未知的,我们通过对所有可能的f求积分来计算这个期望值。
  5. 均匀分布的假设:在一些情况下,假设对所有可能的f进行均匀分布的求值是一种简化的假设。实际上,我们可能对某些f赋予更高的概率(即非均匀分布),这取决于我们对问题领域的先验知识。

1.5 发展历程

1.6 应用现状

数据挖掘:

  • 数据库领域为数据挖掘提供数据管理技术
  • 机器学习和统计学为数据挖掘提供数据分析技术,统计学主要通过机器学习对数据挖掘发挥影响

补充

合取式(Conjunctive Normal Form,CNF)和析取范式(Disjunctive Normal Form,DNF)是逻辑表达式的两种范式,它们在逻辑电路设计、自动推理、知识表示等领域有着广泛的应用。

合取式(CNF)

合取式是逻辑表达式的标准形式,其中表达式由一系列的合取(AND)操作组成,每个合取操作又由一系列的析取(OR)操作组成。换句话说,一个CNF表达式是由多个子句(clause)通过AND连接而成的,每个子句是由多个文字(literal)通过OR连接而成的。
合取式的形式如下:
( l 1 , 1 ∨ l 1 , 2 ∨ … ∨ l 1 , n 1 ) ∧ ( l 2 , 1 ∨ l 2 , 2 ∨ … ∨ l 2 , n 2 ) ∧ … ∧ ( l m , 1 ∨ l m , 2 ∨ … ∨ l m , n m ) (l_{1,1} \lor l_{1,2} \lor \ldots \lor l_{1,n_1}) \land (l_{2,1} \lor l_{2,2} \lor \ldots \lor l_{2,n_2}) \land \ldots \land (l_{m,1} \lor l_{m,2} \lor \ldots \lor l_{m,n_m}) (l1,1l1,2l1,n1)(l2,1l2,2l2,n2)(lm,1lm,2lm,nm)

例子:

$ (x \lor \neg y) \land (z \lor \neg x) \land (\neg z)$

析取范式(DNF)

析取范式是逻辑表达式的另一种标准形式,其中表达式由一系列的析取(OR)操作组成,每个析取操作又由一系列的合取(AND)操作组成。换句话说,一个DNF表达式是由多个项(term)通过OR连接而成的,每个项是由多个文字通过AND连接而成的。
析取范式的形式如下:
( l 1 , 1 ∧ l 1 , 2 ∧ … ∧ l 1 , n 1 ) ∨ ( l 2 , 1 ∧ l 2 , 2 ∧ … ∧ l 2 , n 2 ) ∨ … ∨ ( l m , 1 ∧ l m , 2 ∧ … ∧ l m , n m ) (l_{1,1} \land l_{1,2} \land \ldots \land l_{1,n_1}) \lor (l_{2,1} \land l_{2,2} \land \ldots \land l_{2,n_2}) \lor \ldots \lor (l_{m,1} \land l_{m,2} \land \ldots \land l_{m,n_m}) (l1,1l1,2l1,n1)(l2,1l2,2l2,n2)(lm,1lm,2lm,nm)

例子:

$ (x \land y) \lor (\neg x \land z) \lor (\neg y \land \neg z) $

应用
  • 合取式(CNF):常用于知识表示、自动推理和布尔可满足性问题(SAT问题)。CNF是解决SAT问题的一种标准形式,因为SAT问题可以表述为:给定一个CNF表达式,是否存在一组变量的赋值使得表达式为真。
  • 析取范式(DNF):常用于描述一个命题的所有可能使之为真的情况。DNF可以直接告诉我们哪些变量组合可以使整个表达式为真。

第 2 章 模型评估与选择

2.1 经验误差与过拟合

错误率(error rate):分类错误的样本数占样本总数的比例称为错误率

泛化误差(generalization error):在新样本上的误差

2.2 评估方法

2.2.1 留出法

“留出法”(hold-out)直接将数据集 D D D划分为两个互斥的集合,大约将2/3~4/5用于训练,剩余样本用于测试。

2.2.2 交叉验证法

“交叉验证法”(cross validation)先将数据集 D D D划分为 k k k个大小相似的互斥子集,每次用 k − 1 k-1 k1个子集的并集作为训练集,余下的作为测试集,从而进行 k k k次训练和测试——“ k k k折交叉验证”(k-fold cross validation)。

k折交叉验证通常要用随机使用不同的划分重复 p p p次,最终的评估结果是这p次k折交叉验证结果的均值。

“留一法”(Leave-One-Out):数据集中包含m个样本,k=m

2.2.3 自助法

“自助法”(bootstrapping):以自助采样法为基础。每次随机从D中挑选一个样本,拷贝到D’,重复m次得到训练集。

根据 lim ⁡ m − > ∞ ( 1 − 1 m ) m ≈ 1 e \lim_{m-> \infty}(1-\frac{1}{m})^m ≈ \frac{1}{e} limm>(1m1)me1,大约有36.8%从未出现在采样数据集D’中,这些用于测试,得到的测试结果称为“包外估计”(out-of-bag estimate)。

当初始数据量足够时,留出法和交叉验证法更常用。

2.2.4 调参与最终模型

parameter tuning

2.3 性能度量

“性能度量”(performance measure)

回归任务最常用的性能度量是“均方误差”(mean squared error) E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2 E(f;D)=m1i=1m(f(xi)yi)2

2.3.1 错误率与精度

分类错误率: E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ≠ y i ) E(f;D)=\frac{1}{m}\sum_{i=1}^{m} \mathbb I (f(x_i) \not= y_i) E(f;D)=m1i=1mI(f(xi)=yi)

精度: a c c ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) = 1 − E ( f ; D ) acc(f;D)=\frac{1}{m}\sum_{i=1}^{m} \mathbb I (f(x_i) = y_i)=1-E(f;D) acc(f;D)=m1i=1mI(f(xi)=yi)=1E(f;D)

2.3.2 差错率、查全率和F1

预测正例预测反例
真实正例TP-真正例FN-假反例
真实反例FP-假正例TN-真反例

查准率 P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP;查全率 P = T P T P + F N P=\frac{TP}{TP+FN} P=TP+FNTP

P-R图:以查全率为横坐标,查准率为纵坐标。如果曲线A能包住曲线B或者曲线下的面积更大,则A更优。

”平衡点“(Break-Event Point,简称BEP),是 查准率=查全率时的取值。

F1度量: F 1 = 2 ∗ P ∗ R P + R = 2 ∗ T P 样例总数 + T P − T N F1=\frac{2*P*R}{P+R}=\frac{2*TP}{样例总数+TP-TN} F1=P+R2PR=样例总数+TPTN2TP

F1度量的一般形式: F 1 = ( 1 + β 2 ) ∗ P ∗ R ( β 2 ∗ P ) + R F1=\frac{(1+\beta^2)*P*R}{(\beta^2*P)+R} F1=(β2P)+R(1+β2)PR,其中 β \beta β度量了查全率对查准率的相对重要性,>1则查全率有更大的影响。

宏查准率、宏查全率、宏F1:在各混淆矩阵上分别计算出查准率和查全率,再计算平均值。

微查准率、微查全率、微F1:对TP、FP、TN、FN分别取平均值,再计算。

2.3.3 ROC与AUC

ROC曲线(Receiver Operating Characteristic):表征不同人物下的期望泛化性能,和一般情况下泛化性能的好坏。

ROC曲线:纵轴是”真正例率“(True Postive Rate),横轴是”假正例率“(False Postive Rate)。 T P R = T P T P + F N    T P R = F P T N + F P TPR=\frac{TP}{TP+FN} \ \ TPR=\frac{FP}{TN+FP} TPR=TP+FNTP  TPR=TN+FPFP

略ROC曲线的绘制

AUC(Area Under ROC Curve):ROC曲线下的面积

2.3.4 代价敏感错误率与代价函数

赋予”非均等代价“(uneaqual cost),代价敏感的错误率为 E ( f ; D ; c o s t ) = 1 m ( ∑ x i ∈ D + I ( f ( x i ) ≠ y i ) ∗ c o s t 01 + ∑ x i ∈ D − I ( f ( x i ) ≠ y i ) ∗ c o s t 10 ) E(f;D;cost)=\frac{1}{m}(\sum_{x_i \in D^+} \mathbb I (f(x_i) \not= y_i)*cost_{01} +\sum_{x_i \in D^-} \mathbb I (f(x_i) \not= y_i)*cost_{10}) E(f;D;cost)=m1(xiD+I(f(xi)=yi)cost01+xiDI(f(xi)=yi)cost10)

代价曲线略

2.4 比较检验

2.4.1 假设检验

2.4.2 交叉验证t检验

2.4.3 McNemar检验

2.5 偏差与方差

”偏差-方差分解“(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值