机器学习西瓜书&南瓜书 绪论&模型评估与选择

本文介绍了机器学习的基本概念,包括数据集、属性和假设空间,并探讨了归纳偏好与奥卡姆剃刀原则。接着,讲解了模型评估中的错误率、精度、交叉验证和自助法等方法,以及如何处理过拟合和欠拟合。最后,讨论了模型选择中的参数调节和性能度量,如查准率、查全率和F1分数。
摘要由CSDN通过智能技术生成

机器学习西瓜书&南瓜书 绪论&模型评估与选择

绪论

基本概念

计算机科学是研究关于“算法”的学问,机器学习是研究关于“学习算法”的学问,在计算机上从数据中产生“模型”的算法。

数据集:对应数据的集合。

示例(instance):数据集中的每条记录都成为实例或样本(sample),如果把示例中的每个属性都是单独的左边,可以把一个示例称为一个特征向量(feature vector)

属性(attribute):事件或对象在某方便的表现或性质,也称特征(feature)

属性值(attribute value):属性上的取值

属性空间(attribute space):属性张成的空间,也称样本空间、输入空间

学习(learning):从数据中学得模型的过程,也称训练(training)

训练数据(training data),训练样本(training sample),训练集(training set)

假设(hypothesis):学得模型对应了关于数据的某种潜在的规律。

真相或真实(ground-truth):潜在规律本身。

模型(model):也叫学习器(learner)

分类(classification):预测的值是离散值

回归(regression):预测的值是连续值

在这里插入图片描述

假设空间

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

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

假设空间:所有假设组成的空间

归纳偏好inductive bias:任何一个有效的机器学习算法必有其归纳偏好,因为可能出现假设空间等效的假设

奥卡姆剃刀:若有多个假设与观察一致,则选最简单的那个

没有免费的午餐定理No Free Lunch Theorem:要讨论算法的相对优劣,必须要针对具体的学习问题。0

模型评估与选择

概念

错误率error rate:错误分类样本 / 总样本数

精度accuracy:1 - 错误率

误差error:包括训练误差training error / 经验误差 empirical error和泛化误差 generalization error

过拟合overfitting:在训练样本中表现良好,导致泛化能力下降,只能缓解,不能避免

欠拟合underfitting:与过拟合相对

评估方法

使用测试集来测试学习器对新样本的判别能力,然后以测试集上的”测试误差“作为泛化误差的近似。通常假设测试样本也是从样本真实分布中独立同分布采样而得。但需注意,测试机应尽可能与训练集互斥。

通常情况下,只有一个包含m个样例的数据集D,通过对D进行适当的处理,从中产生训练集S和测试集T。

1.留出法

直接将数据集D划分为两个互斥的集合,即 D = S ∪ T , S ∩ T = ∅ D = S \cup T, S \cap T = \varnothing D=ST,ST=

需要注意两个问题:

  • 训练/测试集划分尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,通常使用分层采样
  • 一般要采用若干次随即划分,重复进行实验评估后取平均值作为留出法的评估结果。

他们的比例通常是2 / 3 - 4 / 5 用于训练,剩余的用于测试。

2.交叉验证法

先将数据集D划分为k个大小相似的互斥子集,即 D = D 1 ∪ D 2 ∪ . . . ∪ D k , D i ∩ D j = ∅ ( i ≠ j ) D = D_1 \cup D_2 \cup ... \cup D_k, D_i \cap D_j = \varnothing (i \ne j) D=D1D2...Dk,DiDj=(i=j)

每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到,然后每次用k-1个自己的并集作为训练集,余下的子集作为测试集,这样就可获得k组训练/测试集,从而进行k次训练和测试,最终返回的k个测试结果的均值。

显然,交叉验证法评估结果的稳定性和保真性很大程序取决于k的取值,通常把交叉验证法称为”k折交叉验证“,k常用的取值是10、5、20等。

与留出法相似,将数据集D划分危k个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别,k折交叉验证通常要随即使用不同的划分重复p次,最终的评估结果是p次k折交叉验证结果的均值。

假设数据集D包含m个样本,若令k = m,则得到交叉验证法的一个特例:留一法(Leave-One-Out),通常与实际评估的模型很相似,因此认为评估结果比较准确。

3.自助法

可以减少训练样本规模不同造成的影响,同时还能比较高效地进行实验估计,以自助采样法(bootstrap sampling)为基础。

给定m个样本的数据集D,对它进行采样产生数据集D’:每次随即从D中挑选一个样本,将其拷贝到D’,然后再将样本放回初始数据集D中,重复m次后,得到了包含m个样本的数据集D’

可以做个简单的估计,样本在m次采样中始终不被采到的概率是 ( 1 − 1 m ) m (1 - \frac{1}{m})^m (1m1)m,取极限得到:
lim ⁡ n → ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{n \to \infty}(1 - \frac{1}{m})^m = \frac{1}{e} \approx 0.368 nlim(1m1)m=e10.368
于是可以将D’用作训练集,D\D’用作测试集,这样,实际评估的模型与期望评估的模型都是用m个训练样本,而仍有数据量约1/3的没在训练集出现的样本用于测试,这样的测试结果称为”包外估计“(out-of-bag estimate)。

该方法在数据集较小、难以有效划分训练/测试集时很有用;此外,自助法能从初始数据集产生多个不同的训练集,对集成学习等方法有很大的好处。但会引入估计偏差,因此在初始数据量足够时,留出法和交叉验证法更常用一些。

4.调参与最终模型

大多数学习算法都有参数需要设定,参数配置不同,学得模型的性能往往有显著差别。因此,在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的”参数调节“或简称”调参“(parameter tuning)。

通常把学得模型在实际使用中遇到的数据成为测试数据,在模型评估与选择中用于评估测试的数据称为验证集validation set。

性能度量

1.预测任务中的性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评估标准,这就是性能度量(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
更一般的,对于数据分布D和概率密度函数p(),均方误差可描述为:
E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x E(f; D) = \int_{x\sim D}(f(x)-y)^2p(x)dx E(f;D)=xD(f(x)y)2p(x)dx
2.分类任务中的性能度量

错误率:
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)\ne 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)
更一般的,针对数据分布D和概率密度函数p,错误率与精度可分别描述为:
E ( f ; D ) = ∫ x ∼ D I ( f ( x ) ≠ y ) p ( x ) d x a c c ( f ; D ) = ∫ x ∼ D I ( f ( x ) = y ) p ( x ) d x = 1 − E ( f ; D ) E(f; D) = \int_{x\sim D}\mathbb{I}(f(x)\ne y)p(x)dx \\ acc(f; D) = \int_{x\sim D}\mathbb{I}(f(x)= y)p(x)dx \\ = 1 - E(f; D) E(f;D)=xDI(f(x)=y)p(x)dxacc(f;D)=xDI(f(x)=y)p(x)dx=1E(f;D)
3.查准率、查全率与F1

对于二分类问题,可将样例根据真是类别与学习器预测类别的组合划分为真正例true positive、假正例false positive、真反例true negative和假反例false negative,以下用TP、FP、TN、FN表示。
查 准 率 P = T P T P + F P 查 全 率 R = T P T P + F N 查准率 P = \frac{TP}{TP + FP} \\ 查全率 R = \frac{TP}{TP + FN} P=TP+FPTPR=TP+FNTP
以查全率为横轴、查准率为纵轴,得到了P-R曲线,若某种机器学习算法的P-R曲线被另一种包住,则被包住的机器学习算法性能要差一些。
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 β F_\beta Fβ,能表达出对查准率/查全率的不同偏好,其中 β > 0 \beta > 0 β>0度量了查全率对查准率的相对重要性,如果 β = 1 \beta = 1 β=1退化为标准的F1, β > 1 \beta > 1 β>1表示查全率更大影响, β < 1 \beta < 1 β<1表示查准率更大影响。

当有多个二分类混淆矩阵,如进行多次训练/测试,每次得到一个混淆矩阵,希望能够在n个二分类混淆矩阵上综合考察查准率和查全率,有两种方法。

  • 宏查准率、宏查全率、宏F1

m a c r o − P = 1 n ∑ i = 1 n P i m a c r o − R = 1 n ∑ i = 1 n R i m a c r o − F 1 = 2 ∗ m a c r o − P ∗ m a c r o − R m a c r o − P + m a c r o − R macro-P = \frac{1}{n}\sum_{i=1}^nP_i \\ macro-R = \frac{1}{n}\sum_{i=1}^nR_i \\ macro-F1 = \frac{2*macro-P*macro-R}{macro-P+macro-R} macroP=n1i=1nPimacroR=n1i=1nRimacroF1=macroP+macroR2macroPmacroR

  • 微查准率、微查全率、微F1

得到TP、FP、TN、FN的平均值,然后基于平均值计算结果
m i c r o − P = T P ˉ T P ˉ + F P ˉ m i c r o − R = T P ˉ T P ˉ + F N ˉ m i c r o − F 1 = 2 ∗ m i c r o − P ∗ m i c r o − R m i c r o − P + m i c r o − R micro-P = \frac{\bar{TP}}{\bar{TP} + \bar{FP}} \\ micro-R = \frac{\bar{TP}}{\bar{TP} + \bar{FN}} \\ micro-F1 = \frac{2*micro-P*micro-R}{micro-P+micro-R} microP=TPˉ+FPˉTPˉmicroR=TPˉ+FNˉTPˉmicroF1=microP+microR2microPmicroR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值