概览西瓜书+南瓜书第1、2章
这里两章主要是梳理一下概念,为接下来的学习做一个铺垫吧。为了使入门较为简单,这里我暂时跳过以下内容
第一章:【1.4 归纳偏好】
第二章:【2.3.3-ROC与AUC】及其之后的内容
这些内容在之后需要的时候再来补充。
目录
第一章 绪论
1.1数据的基本术语
数据集是描述一组物体特征的集合,以数分、高代、C++三门学习成绩为例
{(数分=95,高代=95,C++=95),(数分=45,高代=80,C++=50)…}
示例是集合中的一个元素如“(数分=95,高代=95,C++=95)”
属性/特征是反映示例的某个方面特点的事项,比如上述示例中的“数分”
属性值是属性/特征的具体取值,比如上述属性“数分“的属性值为95
样本空间是由所有属性(数分,高代,C++)张成的空间,上例的样本空间为
{(数分=i,高代=j,C++=k)}i,j,k=1~100
标记:我们给每个示例都以某种方式对应于一个标记=f(数分,高代,C++),比如我们按挂科(得分小于60)数将(数分=95,高代=95,C++=95)标记为0,将(数分=45,高代=80,C++=50)标记为2
样例:这样我们就形成了样例,如((数分=95,高代=95,C++=95),0),((数分=45,高代=80,C++=50),2)
1.2分类、回归、聚类
学习任务 | 特点 | 所属类别 |
---|---|---|
分类 | 预测值(标记)离散 | 监督学习 |
回归 | 预测值(标记)连续 | 监督学习 |
聚类 | 通常无标记,对应潜在概念的划分 | 无监督学习 |
1.3泛化能力
泛化能力:模型适用于新样本的能力
1.4归纳学习
归纳学习是指从大量个别事实中推出普遍性原则,从中进行学习的过程。
狭义的归纳学习是指概念学习概念学习就是学习把具有共同属性的事物集合在一起并冠以一个名称
但是由于获得语义明确并且泛化性好的概念并不容易,所以我们大多使用的是”黑箱模型“
1.5假设空间和版本空间
假设空间:在所有的函数f(数分,高代,C++)构成的空间中,我们可以自行选择其子集作为所考虑问题的假设空间,假设空间中的函数未必一定与已知的数据集一致,是我们认为可能与数据集一致的函数集合。
版本空间: 与已知数据集一致的所有函数(来自假设空间)的集合
第二章 模型评估与选择
2.1错误率和精度
分类错误率为分类错误的样本占总样本的比例
精度=1-错误率
2.2误差
误差:学习器的预测输出和样本的实际输出的差异
训练误差和泛化误差:
学习器(模型)在训练集上的误差为训练误差或者经验误差
学习器(模型)在新上的误差为泛化误差
2.3过拟合
我们当然希望我们的模型的泛化误差尽量小,但是我们没法在训练模型的过程中得到泛化误差,所以我们只能用训练误差近似,但是如果我们追求最小化训练误差的化,就可能使我们的模型过拟合,这样会导致模型的泛化能力较差。因为我们可能过多关注了他们的“个性”,而埋没了他们的“共性”。
为此我们的解决办法是通过对数据集进行适当的划分,从中产生训练集和测试集
2.4划分训练集和测试集的方法
2.4.1留出法
将数据集随机分为两个互斥的训练集和测试集,但这样的随机有个原则,那就是在训练集合测试机中样本的比例要相似。我们以多次随机划分,取训练误差的平均值作为泛化误差的近似值。
缺陷是训练集和测试集的大小和影响着与原数据集的接近性和评估结果的保真性这一对矛盾。
2.4.2交叉验证法
将数据集分为多个大小相似的互斥子集,依次将其中一个集合作为测试集其余的作为训练集,当然这样的划分也要遵循相本比例相似这样的原则。并且要多次随机划分取平均值。比如我们决定将样本分为k个子集,我们随机划分p次,这样称为“p次k折交叉验证”,进行了pk次测试/训练。
交叉验证法有个特例leave one out,留一法:依次取训练集的一个元素作为验证集,这样保证了测试集和数据集的差距,但是他的缺点也十分明显,在数据集较大的情况下,计算开销太大了。对于含有m个元素的数据集,我们要进行m次测试/训练,而且还是不考虑调参的情况下,所以这样方法多用于数据集较小的情况。
留出法和交叉验证法都会产生因为样本规模不同而导致的误差,留一法虽然由样本规模不同而导致的误差较小,但计算复杂度太高。自助法是一个比较好的解决方案
2.4.3自助法
对于含有m个数据样本的数据,有放回地随机取m次,那么其中任意一个数据完全不会被取到的概率为
(
1
−
1
/
m
)
m
(1-1/m)^m
(1−1/m)m,当m足够大时该值趋向于
1
/
e
≈
0.368
1/e\approx0.368
1/e≈0.368,因为只要原数据样本的性质足够好,那么我们随机取的这m个样本的性质收敛于原数据样本的性质,所以我们可以用取得的m个样本的性质近似代替原数据样本的性质。
自助法将原样本集合记为
D
D
D,将随机有放回抽出的m个数据集合记为
D
′
D^{\prime}
D′,以
D
′
D^{\prime}
D′作为训练集,以
D
′
D^{\prime}
D′的补集
D
/
D
′
D/D^{\prime}
D/D′作为测试集。
优缺点: 自助法在数据集较小、难以有效划分训练集和测试集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用一些。
2.5调参和验证集
把训练数据另外分为训练集和验证集,基于验证集上的数据用来调参和选择模型。
2.6最终模型
在模型选择完成之后,学习算法和参数已经选定,此时再用数据集D重新训练模型,这个模型使用了全部m个数据,这才是我们的最终模型。
2.7性能度量
2.7.1回归任务的性能度量
2.7.1.1均方误差
回归任务最常用的性能度量是“均方误差”
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=1∑m(f(xi)−yi)2
其中
D
D
D为样例集
x
i
x_i
xi为示例,
f
(
x
i
)
f(xi)
f(xi)为学习器的预测结果,
y
i
y_i
yi为示例对应的真实标记。
更一般的,对于分布数据
D
D
D和概率密度函数
p
(
⋅
)
p( \cdot )
p(⋅),均方误差可以描述为
E
(
f
;
D
)
=
∫
x
∼
D
(
f
(
x
)
−
y
)
2
p
(
x
)
d
x
E(f;D)= \int _{x\sim D}(f(x)-y)^{2}p(x) dx
E(f;D)=∫x∼D(f(x)−y)2p(x)dx
2.7.2分类任务的性能度量
2.7.2.1错误率和精度
先给出
Π
(
⋅
)
\Pi ( \cdot \ )
Π(⋅ )函数,若
(
⋅
)
\left ( \cdot \right)
(⋅)中条件成立,则函数取值为1,反之则取0。
对于样例集
D
D
D
其错误率的定义为:
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
Π
(
f
(
x
i
)
≠
y
i
)
E(f;D)=\frac{1}{m}\sum_{i=1}^{m}\Pi (f(xi)\neq yi)
E(f;D)=m1i=1∑mΠ(f(xi)=yi)
精度则对应为:
a
c
c
(
f
;
D
)
=
1
m
∑
i
=
1
m
Π
(
f
(
x
i
)
=
y
i
)
=
1
−
E
(
f
;
D
)
acc(f;D)=\frac{1}{m}\sum_{i=1}^{m}\Pi (f(xi)=yi)=1-E(f;D)
acc(f;D)=m1i=1∑mΠ(f(xi)=yi)=1−E(f;D)
对于数据分布
D
D
D及概率密度函数
p
(
.
)
p\left ( . \right )
p(.),可推广为:
E
(
f
;
D
)
=
∫
x
∼
D
Π
(
f
(
x
)
≠
y
)
p
(
x
)
d
x
E\left ( f;D \right )=\int_{x\sim D}^{}\Pi (f(x)\neq y)p(x)dx
E(f;D)=∫x∼DΠ(f(x)=y)p(x)dx
精度对应为:
a
c
c
(
f
;
D
)
=
∫
x
∼
D
Π
(
f
(
x
)
=
y
)
p
(
x
)
d
x
=
1
−
E
(
f
;
D
)
acc(f;D)=\int_{x\sim D}^{}\Pi(f(x)=y)p(x)dx=1-E(f;D)
acc(f;D)=∫x∼DΠ(f(x)=y)p(x)dx=1−E(f;D)
2.7.2.2查准率、查全率和F1
在实际问题中,相比于精度和错误率,有时我们需要的我们预测符合某种的属性集合中真实具有该属性的比例(查准率)和我们挑选出的集合中该符合该属性的元素数量占被预测集合中符合该属性的元素数量的比例(查全率)。
以二分类问题为例,对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为TP、FP、TN、FN,TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵”如下标所示
对应查全率
R
=
T
P
T
P
+
F
N
R=\frac{TP}{TP+FN}
R=TP+FNTP,查准率
P
=
T
P
T
P
+
F
P
P=\frac{TP}{TP+FP}
P=TP+FPTP .
我们可以根据学习起的预测结果按学习器认为“最可能”是正例的样本—>最不可能是正例的样本进行排序,按顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率,这样就可以得到查全率-查准率曲线,简称“P-R曲线”。
我们可以用平衡点BEP(R=P)处R或P的取值大小来进行性能度量。
但BEP过于简化了所以用
F
1
F1
F1度量
F
1
=
2
×
P
×
R
P
+
R
=
2
×
T
P
m
+
T
P
−
T
N
F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{m+TP-TN}
F1=P+R2×P×R=m+TP−TN2×TP
F
1
F1
F1的度量的一般形式为
F
β
=
(
1
+
β
)
2
×
P
×
R
(
β
2
×
P
)
+
R
F_{\beta }=\frac{(1+\beta) ^{2}\times P\times R}{(\beta ^{2}\times P)+R}
Fβ=(β2×P)+R(1+β)2×P×R
在一个数据集上多次训练或者在多个数据集上进行训练可以得到多个混淆矩阵。
①先于各个矩阵上分别计算出查准率查全率和F1,再计算均值,就得到“宏查准率”、“宏查全率”和“宏F1”。
②将混淆矩阵的对应元素进行平均,再计算查准率查全率和F1,就得到“微查准率”、“微查全率”和“微F1”
以上内容源于周志华《机器学习》(西瓜书),笔者以自己的理解写了这篇笔记,如有错误欢迎指正