- 来自周志华的《机器学习》
第1章 绪论
引言
机器学习是研究如何通过计算的手段,利用经验来改善系统自身的性能。
“经验”以“数据”形式存在,因此,机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型” (model) 的算法,即“学习算法” (learning algorithm)。有了学习算法,把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时,模型会给我们提供相应的判断。
- Mitchell给出了形式化的定义:假设用 P 来评估计算机程序在某任务类 T 上的性能。若一个程序通过利用经验 E 在 T 中任务上获得了性能改善,则我们就说关于 T 和 P 该程序对 E 进行了学习.
基本术语
令
,表示包含
个数据(或样本(sample),示例(instance))的数据集(data set)
其中每个数据
有
个属性(attribute,或特征(feature)),其取值为属性值(attribute value),属性张成的空间叫做属性空间(attribute space),或样本空间(sample space)
每个样本
是
维样本空间
中的一个向量其中
是
在第
个属性上的取值 ,
称为样本
的维数(dimensionality)
从数据中学得模型的过程称为学习 (learning) 或训练 (training) ,训练过程中使用的数据称为训练数据 (training data)
每个样本称为一个训练样本(training sample),训练样本组成的集合称为训练集(training set)
学得模型对应了关于数据的某种潜在的规律,称为假设 (hypothesis) ;这种潜在规律自身,则称为真相或真实(ground-truth) ,学习过程就是为了找出或逼近真相。
要建立这样的关于预测(prediction) 的模型,需要获得训练样本的结果信息,称为标记(label) ;拥有了标记信息的示例,则称为样例(example);
表示第
个样例,
是
的标记,所有标记的集合,称为标记空间(label space)
如果预测的是离散值,这类信息任务称为分类(classification),如果预测连续值,称为回归(regression)。对只涉及两个类别的分类任务,称为二分类(binary classification),一为正类(positive class),一为反类(negative class)。
预测任务通过对训练集
进行学习,建立一个从输入空间
到输出空间
的映射:
学得模型后使用其进行预测的过程称为测试(testing),被预测的样本称为测试样本(testing sample),对测试例
得到其预测标记
还可以对样本做聚类(clustering),即将训练集中的样本分为若干组,每组称为一个簇(cluster),这些簇可能对应潜在的概念划分,有助于我们了解数据内在规律。但这样的概念事先并不知道。
根据是否拥有标记,学习任务可分为监督学习(supervised learning)和无监督学习(unsupervised learning),前者包含分类和回归,后者包含聚类。
模型对新样本的适用能力称为泛化能力(generalization)。假设样本空间的全体样本服从一个未知的分布
(distribution),我们获得额每个样本都是独立地从这个发布上采样获得,即独立同分布(independent and identically distributer, i.i.d.)
假设空间
归纳(induction)与演绎(deinduction)用于科学推理。前者是从特殊到一般地泛化过程,后者是从一般到特殊地特化过程。从样例中学习,称为归纳学习(inductive learning)。学习过程可以看作是一个在所有假设(hypothesis)组成地空间中进行搜索,目标是找到与训练集匹配(fit)地假设。
现实问题中面临很大的假设空间,但学习过程是基于有限样本,因此会有多个假设与训练集一致,即存在一个与训练集一致的假设集合,称为版本空间(version space)
归纳偏好
通过学习得到的模型对应了假设空间的一个假设。当存在多个假设时,算法本身的“偏好”会起到关键作用,称为归纳偏好(inductive bias)。常用的基本原则时奥卡姆剃刀(Occam’s razor):当有多个假设与观察一致,选择最简单的那个。
对于一类问题,如果他们的机会相同、同等重要,关于他们的学习算法
和
的期望性能总是相同的。即没有免费的午餐定理(No Free Lunch Theorem, NFL)。但实际情形并非如此,因此要针对具体的问题来讨论算法的优劣。
第2章 模型评估与选择
经验误差、过拟合
分类错误的样本数占样本总数的比例称为错误率(error rate),如在
个样本中有
个样本分类错误,则错误率为
;精度(accuracy)为
。一般的,将学习的实际预测输出与样本的真实输出之间的差异称为误差(error),在训练集上的误差称为训练误差(traning error)或经验误差(empirical error),在新样本上的误差称为泛化误差(generalization error)
当学习器训练地太好,以至于将个体地性质当作一般地性质,称为过拟合(overfitting);相对地,有欠拟合(underfitting),表示训练样本的一般性质尚未学好。欠拟合比较任意克服,而过拟合则比较麻烦。在现实任务中,一般都有多种学习算法可选,这就涉及到模型选择(model selection)。如何进行模型评估与选择?
评估方法
通常用一个测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似。因此需要对初始数据集进行有效划分,划分出互斥的训练集和测试集。下面是几种划分方法:
1 留出法(hold-out)
直接将数据集
划分为两个互斥的集合,分别是训练集
和测试集
,即
,
,在
上训练出模型后,用
来评估其测试误差,作为对泛化误差的估计。注意这两个数据集需要保持数据分布的一致性,采样方式通常由分层采样(stratified sampling),将大约
~
的样本用于训练。
2 交叉验证法(cross validation)
将数据集
划分为
个大小相似的互斥子集,每次用
个子集的并集作为训练集,余下的子集作为测试集,这样可获得
组数据集,最终返回
个测试结果的均值,亦称为
折交叉验证(k-fold cross validation),
常取为10。与留出法类似,存在多种划分方式,通常要随机使用不同的划分重复
次。如果
等于数据集中的样本数,则为特例留一法(Leave-One-Out, LOO),但计算开销太大。
3 自助法(bootstrapping)
以自助采样法(bootstrap sampling)为基础,对有
个样本的数据集
进行采样获得
,每次从
中随机挑选一个样本放入
中,重复
次。估计:
即初始数据集
中有36.8%的样本未出现在采样集
中,将
作为训练集,
\
作为测试集,这样的测试结果称为包外估计(out-of-bag estimate)
4 调参与最终模型(parameter tuning)
大多数,算法都有参数(parameter)需要设定,即调参。在模型选择、算法和参数已定后,用原始数据集
重新训练模型,使用所有的
个样本,这就是最终模型。