周志华 《机器学习》笔记一 模型评估

第二章 模型评估与选择
2.1 经验误差与过拟合
错误率(Error rate): 分类错误占总样本数 E = a/m
精读(accuracy) : 1 – 错误率 = 1 – a/m
训练误差(training error).经验误差(empirical):机器学习在训练集上的误差称为训练误差 或者 经验误差
泛化误差(generalization): 机器学习在新样本(test)上的误差称为泛化误差

机器学习的目标就是让泛化误差最小化

机器学习主要是为了从训练样本红尽可能的学习出适用于所有潜在样本的“普遍规律”这样才能在遇到新样本的时候做出正确的判断,然而当学习器吧训练样本学得“太好”了的时候,很有可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化能力下降
这种现象叫做 “过拟合”(overfitting),于过拟合相对的是“欠拟合”(underfitting) 这是指对训练样本的一般性质尚未学习好
过拟合:最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的一般特性都学到了
欠拟合:由于学习能力较低造成的,比较容易客服,例如在决策树学习中扩展分值,在神经网路学习中增加训练论述等

2.1 评估方法
泛华能力评估
通过实验来对泛华能力进行评估 需要一个“测试集” (testing set)来测试学习器对新样本的判断能力,然后以测试集上的“测试误差”(test error) 作为泛华误差的近似, 测试集尽量和训练集互斥

2.2.1 留出法:
“留出法”(hold-out)直接将数据集D划分为两个互斥的集合期中一个作为训练集S,另外一个作为测试集T , D=S U T, S T 的合计为空
假定D 包含1000 个样本, S=700 个样本, T = 300个样本, 用S训练后,如果T上有90个样本分类错误
那么其错误率为: 90/300 = 30%,
精读为: 1 -30% = 70%

2.2.2 交叉验证法:
交叉验证法(cross validation) 先将数据集D 划分为k个大小相似的互斥子集,每次使用k-1 个子集的并集作为训练集,余下的作为测试集,这样就可以得到k租训练/测试集,从而可以进行k次训练和测试,最终返回的是这个k个测试结果的均值,通常交叉验证法称为“k 折交叉验证法”(k-fold cross validation)k 最常使用的取值是10,此时称为 10折交叉验证

2.2.3 自助法
因为留出法和 交叉验证法会保留一部分作为测试集,对于训练集较小的D,会引起训练规模的不同影响估计偏差
“自助法”)(bootstrapping) 是一个比较好的解决方案,它直接以自助采样法(bootstrap sampling)为基础[Efron and Tibshirani, 1993] 给定包含m个样本的数据集D, 我们对它进行采样产生数据集D’: 每次随机从D中 挑选一个样本,经过m 次的随机抽样后产生数据集D’;
样本m 次采样中始终不被采到的概率是 (1 – 1/m)ˆm 取极限得到 m趋于0  = 1/e = 0.368,   即通过自助采样D中约36.8% 的样本未出现在采样数据集D’ 中于是我们 可以用D’用户训练集, D\D’ 作为测试集

2.2.4 调参与最终模型
对每个参数选定一个范围和变化步长,例如在[0,0.2]的范围中,以0.05 为步长,最终需要5个候选参数

2.3 性能度量
衡量模型泛华能力的评价标准 就是性能度量(performance measure)
不同的性能度量会导致不同的评价结果,什么样的模型是好的,不仅取决于算法 和数据, 还决定于任务需求
回归任务最常用的性能度量是“均方误差”(mean squared error)

2.3.2 查全率,查准率 与 F1
TP + FP + TN + FN = 样例总数
真实情况            预测结果

正例              反例

正例       TP(真正例)      FN(假反例)

返例       FP(假正例)      TN(真反例)

查准率P  与  查全率R 分别定义为

P = TP/(TP+FP)

R = TP/(TP+FN)

用于综合评判P-R曲线出现了 F1 度量

平衡点(Break-Even Point 简称BEP) 它是在(查准率 = 查全率)

F1 = (2 x P x R)/(P + R) = (2 x TP)/(样例总数 + TP – TN)

F1 是基于查准于查全率的调和平均(harmonic mean)

 

2.3.3 ROC 与 AUC

ROC 全称是:“受试者工作特征”(Receiver Operating Characteristic)曲线, ROC曲线的纵轴是“真正例率”(True Positive Rate,简称 TPR),横轴为“假正确率”(False Positive Rate,简称FPR)

TPR =TP/(TP + FN)

FPR = FP/(TN + FP)

 

2.3.4 代价敏感错误率 与 代价曲线

 

2.4 比较检验

2.4.1 假设检验

2.4.2 交叉验证 t 检验

2.4.2 McNemar 检验

2.4.4 Friedman 与 Nemenyi 后续检验

 

2.5 偏差 与 方差

 

 

做题:

2.1 数据集包含1000个样本

衡量分类器的好坏

对于分类器,或者说分类算法,评价指标主要有accuracy, [precision,recall,宏平均和微平均,F-score,pr曲线],ROC-AUC曲线,gini系数。

对于回归分析,主要有mse和r2/拟合优度。

分类模型的评估

机器学习系统设计系统评估标准

  1. Error Metrics for Skewed Classes有偏类的错误度量精确度召回率
    1. PrecisionRecall精确度召回率
  2. Trading Off Precision and Recall权衡精度和召回率F1值
    1. A way to choose this threshold automatically How do we decide which of these algorithms is best
  3. Data For Machine Learning数据影响机器学习算法的表现

[Machine Learning – XI. Machine Learning System Design机器学习系统设计(Week 6)系统评估标准 ]

召回率、准确率、F值

对于二分类问题,可将样例根据其真实类别和分类器预测类别划分为:

真正例(True Positive,TP):真实类别为正例,预测类别为正例。
假正例(False Positive,FP):真实类别为负例,预测类别为正例。
假负例(False Negative,FN):真实类别为正例,预测类别为负例。
真负例(True Negative,TN):真实类别为负例,预测类别为负例。

然后可以构建混淆矩阵(Confusion Matrix)如下表所示。

真实类别 预测类别
正例 负例
正例 TP FN
负例 FP TN

准确率,又称查准率(Precision,P):

(1)    

 

召回率,又称查全率(Recall,R):

   (2)

 

F1值:

  (3)

 

F1的一般形式

  (4)

G-Mean指标,也能评价不平衡数据的模型表现。

宏平均(macro-average)和微平均(micro-average)

如果只有一个二分类混淆矩阵,那么用以上的指标就可以进行评价,没有什么争议,但是当我们在n个二分类混淆矩阵上要综合考察评价指标的时候就会用到宏平均和微平均。宏平均(macro-average)和微平均(micro-average)是衡量文本分类器的指标。根据Coping with the News: the machine learning way: When dealing with multiple classes there are two possible ways of averaging these measures(i.e. recall, precision, F1-measure) , namely, macro-average and micro-average. The macro-average weights equally all the classes, regardless of how many documents belong to it. The micro-average weights equally all the documents, thus favouring the performance on common classes. Different classifiers will perform different in common and rare categories. Learning algorithms are trained more often on more populated classes thus risking local over-fitting.

宏平均(Macro-averaging),是先对每一个类统计指标值,然后在对所有类求算术平均值。宏平均指标相对微平均指标而言受小类别的影响更大。

         (5)

       (6)

       (7)

    (8)

微平均(Micro-averaging),是对数据集中的每一个实例不分类别进行统计建立全局混淆矩阵,然后计算相应指标。

      (9)

      (10)

   (11)

从上面的公式我们可以看到微平均并没有什么疑问,但是在计算宏平均F值时我给出了两个公式分别为公式(7)和(8)。都可以用。

[谈谈评价指标中的宏平均和微平均]

"macro" simply calculates the mean of the binary metrics,giving equal weight to each class. In problems where infrequent classesare nonetheless important, macro-averaging may be a means of highlightingtheir performance. On the other hand, the assumption that all classes areequally important is often untrue, such that macro-averaging willover-emphasize the typically low performance on an infrequent class.
"weighted" accounts for class imbalance by computing the average ofbinary metrics in which each class’s score is weighted by its presence in thetrue data sample.
"micro" gives each sample-class pair an equal contribution to the overallmetric (except as a result of sample-weight). Rather than summing themetric per class, this sums the dividends and divisors that make up theper-class metrics to calculate an overall quotient.Micro-averaging may be preferred in multilabel settings, includingmulticlass classification where a majority class is to be ignored.
"samples" applies only to multilabel problems. It does not calculate aper-class measure, instead calculating the metric over the true and predictedclasses for each sample in the evaluation data, and returning their(sample_weight-weighted) average.

[Scikit-learn:模型评估Model evaluation]

皮皮blog

ROC-AUC曲线和PRC曲线

[分类模型评估之ROC-AUC曲线和PRC曲线]

吉尼系数Gini coefficient

在用SAS或者其他一些统计分析软件,用来评测分类器分类效果时,常常会看到一个叫做gini coefficient的东西,那么这个gini coefficient又是什么呢?gini系数通常被用来判断收入分配公平程度,具体请参阅wikipedia-基尼系数


图6.洛伦茨曲线与基尼系数

Gini coefficient 是指绝对公平线(line of equality)和洛伦茨曲线(Lorenz Curve)围成的面积与绝对公平线以下面积的比例,即gini coefficient = A面积 / (A面积+B面积) 。

用在评判分类模型的预测效力时,是指ROC曲线曲线和中线围成的面积与中线之上面积的比例。


图7.Gini coefficient与AUC

因此Gini coefficient与AUC可以互相转换:

    gini = A / (A + B) = (AUC - C) / (A + B) = (AUC -0.5) / 0.5 = 2*AUC - 1

皮皮blog

回归模型的评估

平均均方误差mse

MSE = \frac{1}{n}\sum(\bar{y}-y_i)^2 = Var(Y)

R^2 (coefficient of determination)

regression score function.评估模型拟合的好坏。训练集估计和学到的模型产生的新数据集评估的偏离度。

在用线性模型拟合完数据之后,我们需要评估模型拟合的好坏情况。当然,这种评估取决于我们想要用这个模型来做什么。一种评估模型的办法是计算模型的预测能力。

在一个预测模型中,我们要预测的值称为因变量(dependent variable),而用于预测的值称为解释变量或自变量(explanatory variable或independent variable)。

通过计算模型的确定系数(coefficient of determination),也即通常所说的R^2,来评价模型的预测能力:

R^2 = 1 – \frac{Var(\varepsilon)}{Var(Y)}

即1 – 预测模型的mse/数据本身的mse (数据本身的mse就是直接将数据label均值作为预测的mse)

解释R2意义例子

假设你试图去猜测一群人的体重是多少,你知道这群人的平均体重是\bar{y}。如果除此之外你对这些人一点儿都不了解,那么你最佳的策略是选择猜测他们所有人的体重都是\bar{y}。这时,估计的均方误差就是这个群体的方差var(Y):

MSE = \frac{1}{n}\sum(\bar{y}-y_i)^2 = Var(Y)

接下来,假如我告诉你这群人的身高信息,那么你就可以猜测体重大约为\hat{\alpha}+\hat{\beta}x_i,在这种情况下,估计的均方误差就为Var(ε):

MSE = \frac{1}{N}\sum (\hat{\alpha}+\hat{\beta}x_i-y_i)^2 = Var(\varepsilon)

所以,Var(ε)/Var(Y)表示的是有解释变量情况下的均方误差与没有解释变量情况下的均方误差的比值,也即不能被模型解释的均方误差占总的均方误差的比例。这样R2表示的就是能被模型解释的变异性的比例。

假如一个模型的R^2=0.64,那么我们就可以说这个模型解释了64%的变异性,或者可以更精确地说,这个模型使你预测的均方误差降低了64%。

在线性最小二乘模型中,我们可以证明确定系数和两个变量的皮尔逊相关系数存在一个非常简单的关系,即:。

[拟合优度 ]

拟合优度Goodness of fit

拟合优度(Goodness of Fit)是指回归直线对观测值的拟合程度。度量拟合优度的统计量是可决系数(亦称确定系数)R^2。R^2最大值为1。R^2的值越接近1,说明回归直线对观测值的拟合程度越好;反之,R^2的值越小,说明回归直线对观测值的拟合程度越差。

皮皮blog

其它

学习目标

{评价学习模型的不同方法}

不同的模型通过表达了不同的折中方案。近似模型根据一种性能度量可能表现很好,但根据其它度量又可能很差。为了引导学习算法的发展,必须定义学习任务的目标,并且定义能够评价不同结果 相应的度量方法。

密度估计

评价指标及方法

期望的对数似然

由于生成分布p*是固定的,评价指标——相对熵可以转换成最大期望的对数似然。直观上就是,M~对从真实分布中采样的点赋予的概率越大,越能反映它是该分布。

数据的似然

专栏:16.A 用于设计和评价机器学习过程的基本实验性条款

评价泛化性能

抵抗测试holdout-testing

Dtrain: 目标函数;Dtest: 损失函数。

k-折交叉验证

讨论及及算法

 

选择学习过程

使用抵抗测试或交叉验证来选择学习过程。更好的是使用训练集,用来学习模型;验证集,用来评价学习过程的不同变体并从中做出选择;分离的测试集,用来在其上评价最终的性能(会使分割数据的问题更加恶化)。也可以发展一种嵌套的交叉验证方案。

 

 

1 什么是模型?


1.1  概念简述

李航《统计学习方法》一书:统计学习方法是由模型、策略和算法构成的,即统计学习方法的三要素构成,简化:方法=模型+策略+算法

维基百科对数学模型描述:数学模型是对所描述的对象用数学语言所作出的描述和处理。

百度百科对策略描述:策略是学习是一项复杂的智能活动,学习过程与推理过程是紧密相连的,按照学习中使用推理的多少,机器学习所采用的策略大体上可分为4种——机械学习、通过传授学习、类比学习和通过事例学习。学习中所用的推理越多,系统的能力越强。

单纯定义看,不免让人一头雾水,究竟何为模型?还是没有明确的概念,下文将以数学描述+形式化阐述这个问题。首先解决了什么是模型,咱们才能进行模型好坏指标的评价,进而选择适合的学习模型。

模型:所有学习的条件概率分布或者决策函数。

模型的假设空间:包含所有有可能的条件概率分布或者决策函数。

1.2 实例解析

假设决策函数是输入变量的线性函数,模型的假设空间就是这些线性函数构成的函数集合,假设空间中的模型一般为无穷多个。【现实应用:假设解决序列词性标注的的函数模型M,模型的假设空间的由不同参数构成的M模型。(不是很严谨,辅助理解。)】

形式化表示:假设空间F表示,假设空间可以为决策函数的集合:

x,y在输入空间X和输出空间Y上的变量,这时F通常由一个参数向量决定的函数族:

参数向量θ取值于n维欧氏空间 ,称为参数空间。

假设空间也可以定义为条件概率集合:

其中x和y是定义在输入空间X和Y上的随机变量,这时F通常是一个参数向量的决定的条件概率分布族:

参数向量θ取值于n维欧氏空间,称为参数空间。

注意:由决策函数表示的模型为非概率模型(如上述F函数),由条件概率表示的模型为概率模型(如上述y=f(x)函数)。

2 如何进行模型评估和模型选择?

2.1  训练误差和测试误差

好的模型的特征:对已知数据和未知数据都有很好的预测能力。

学习方法评估标准:基于损失函数的模型的训练误差和测试误差为指标

 

其中N’是训练样本容量。

 

2.3 实例解析

根据误差率和准确率可知,测试误差反映了学习方法对未知情况的测试数据集的预测能力,测试误差小的方法具有很好的预测能力,更有效的预测。通常将学习方法对未知数据的预测能力称为泛化能力。

由此我们可以应用到现实想NLP模型中,诸如分类模型,当测试误差更小的时候,分类更加准确。聚类模型中,当测试误差较小时候,聚类效果更好等等。那么,在追去测试误差较小时候,就要在训练上下功夫。一味苛求训练效果好,训练误差小,以至于所选择的模型复杂度非常高,这样的低训练误差,能换回好的预测?其实这就容易出现过拟合,如何避免过拟合选择更好的模型?下节继续。

3   过拟合与模型选择

3.1 何时进行模型选择?

当假设空间含有不同的复杂度(如,不同的参数个数)的模型时,就要面临模型选择问题,以期我们所表达的模型与真实的模型(参数个数)相同或相近。

过拟合:一味追求提高对训练数据的预测能力,所选择模型的复杂度往往比真实模型高,此现象就是过拟合。

过拟合指学习时选择的模型包含的参数过多,以至于出现模型对已经数据预测的好,但是对未知数据预测能力较差。模型选择准则是避免过拟合并且去提高模型预测的能力。

完成下面10个数据点的拟合。

3.3 实例分析

如上图给出M=0,1,3,9的多项式函数的拟合情况,当M=0时,多项式为一个常数,数据拟合很差,当M=1时,多项式曲线为一条直线,拟合依旧差;当M=9时,多项式通过每一个点,训练误差0,从训练数据拟合角度分析,效果最好,但是训练数据本身很多噪音,对未来数据预测能力差,达不到预期的效果。这就是过拟合,虽然训练数据好但是未知数据差。当M=3时,多项式曲线对训练数据拟合效果比较好,对未知数据拟合也很好,其模型也简单,可以选择。总结:模型选择时,不仅仅考虑对已知数据的预测能力,还有考虑对未知数据的预测能力。

训练误差和测试误差与模型复杂度的关系如下图:

 

可知,当模型复杂度增大时候,训练误差会逐渐减少趋近于0,而测试误差会先减小到最小值后又增大。当选择模型复杂度过大时,过拟合问题就会出现。

3.4 补充

NLP序列句子识别标注实例更好理解本节。(以下实例便于理解假设的,不是特别严谨)

训练数据集T={(南 B),(海 I),(是 I), (中 I),(国 I),(领 I), (土 I),(。 O) }未知数据P={(不 B), (容 I),(争I),( 议 I),(。 O)}采用BIO标注,B代表句子开始,I代表中间连续词,O代表句子。结束。假设采用模型M识别, M次多项式的模型

实验可知:左侧为训练模型的数据,右侧为测试模型的数据。当M=0时,训练误差和测试误差都很大;当M=1时,训练误差和测试误差较大;当M=3时,训练误差比M=9的训练误差大,总体训练误差还好,但是,预测误差却小于M=9时的预测误差。综合比较,选择M=3的模型效果会更好。综上,旨在让大家更好理解概念理论知识。

Leave a Reply

Your email address will not be published. Required fields are marked *