1.1.基本术语
机器学习是研究如何通过计算的手段,通过经验来改善系统自身的性能。在计算机系统中,“经验”往往以“数据”的形式存在。
因此,机器学习研究的主要内容是在计算机上从数据产生“模型”的算法,即“学习算法”。将经验数据提供给算法,从而产生出“模型”,再次遇到新的数据时,“模型”能够给我们提供相应的判断结果。
- 数据集:要进行训练的数据的集合
- 示例/样本:数据集中的一条记录,描述了一个事件或者对象
- 属性/特征:事件或对象,在某方面的表现或性质,如西瓜的属性有 [颜色, 形状, 敲声, …]
- 属性值:属性对应的值
- 属性空间/样本空间/输入空间:将属性作为坐标轴,张开一个n维空间,每一个点都对应着一个坐标向量
- 特征向量:每个示例样本在样本空间里,也被称为特征向量
- 维数:属性的个数
- 学习/训练:从数据中学的模型的过程。这个过程通过执行学习算法来完成
- 训练数据/训练集:训练过程中使用的数据
- 训练样本:训练数据中的每个样本
- 假设:模型对应着的关于数据的某种潜在规律
- 真实/真相:潜在规律本身
- 学习器:模型的另一种叫法
- 预测:建立“预测”模型,需要训练样本的“结果”信息
- 标记:训练样本的“结果”信息,如((颜色:青绿,形状:圆形,敲声:浊响),好瓜)
- 样例:拥有标记的样本
- 分类:预测离散值,如“好瓜”,“坏瓜”
- 二分类:只涉及两个类别的分类,通常一个为正类,一个为反类
- 多分类:涉及多个分类
- 回归:预测连续值,如西瓜成熟度“0.95”“0.84”
- 聚类:将西瓜分为若干组,每一组称为“簇”
- 簇:对应着潜在的概念划分,有助于了解数据内在规律
- 监督学习:训练数据有标记,如分类和回归
- 无监督学习:训练数据没有标记,如聚类
- 泛化:学得的模型适用于新样本的能力
机器学习的目标是为了使学得的模型适用于新样本,而不是在训练样本上做的好
1.2.假设空间
归纳和演绎是科学推理的两大手段
- 归纳:是从特殊到一般的泛化过程,从具体事实归结出一般规律
- 演绎:从一般到特殊的特化过程,从基础原理推演出具体状况
- 归纳学习:即从样例中学习,是归纳的过程
- 广义:从样例中学习
- 狭义:从训练数据中学得概念
- 假设空间:学习过程可以看做是一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到所有与训练集匹配的假设,假设的表示一旦确定,假设空间及其规模大小也将确定。如西瓜的假设空间由“(色泽=?)∧(形状=?)∧(敲声=?)”的可能取值所形成的假设组成
- 版本空间:可能有多个假设与训练集一致。这个与训练集一致的假设集合(假设空间的一部分),即是版本空间
- 归纳偏好:机器学习算法在学习的过程中对某种类型假设的偏好
1.3模型评估和选择
- 错误率:分类错误样本数占样本总数的比例,即m个样本中有a个样本分类错误,错误率E=a/m
- 精度:1-a/m
- 误差:即实际预测输出与样本的真实输出之间的差异
- 训练误差/经验误差:模型在训练集上的误差
- 泛化误差:模型在新样本上的误差
- 过拟合:模型将训练样本学的太好,把训练样本自有的特点作为一般性质,导致泛化性能下降,它是机器学习的关键障碍,只能尽量缓解
- 欠拟合:模型对训练样本的一般性质没有学好
- 评估方法:
- 留出法:将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T,用S训练出模型,用T来评估测试误差,作为泛化误差的统计
- 交叉验证法:将数据集D划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的作为测试集,这样可以获得k组训练集/测试集,从而可以做k次训练和测试,最终返回k次测试的均值
- 留一法:若数据集D中包含m个样本,令k=m,每个子集只包含一个样本。留一法的评估结果往往比较准确,缺点是数据集较大时,计算的开销可能难以忍受
- 自助法:给定包含m个样本的数据集D,对其进行采样,得到数据集D′,每次随机从D取出一个样本,将其拷贝放入D′,再将该样本放回D,使其在下次仍有可能被采集到。样本在m次后未被采集的概率是(1-1/m)^m,约等于0.368。即初始数据集D中有36.8%的数据未出现在D′中,将D′ 作为训练集,D与D′的差集作为测试集。
- 总结:自助法在数据集较小,难以有效划分训练集/测试集时很有用。但是自助法改变了初始数据集的分布,引入了估计偏差,因此数据量足够时,留出法和交叉验证法更常用。
- 调参:大多数学习算法都有些参数需要设定,参数的配置会影响到模型的性能。参数一般都是实数范围内取值,常见的做法是对每个参数取一个范围和变化步长。如在[0,0.2]范围,以0.5为步长
- 测试集:研究对比不同算法泛化性能时使用的测试数据
- 验证集:训练数据一般分为训练集和验证集,模型评估与选择过程中使用的数据集
- 性能度量:对模型的泛化能力进行评估
- 比较检验:统计假设检验为模型的性能提供了重要依据
- 假设检验:假设是对模型泛化错误率分布的某种判断或猜想
- 二项检验:对单个模型算法的泛化性能的假设进行检验
- t检验:对单个模型算法的泛化性能的假设进行检验
- 交叉验证t检验:在一个数据集上比较两个算法的性能
- McNemar检验:在一个数据集上比较两个算法的性能
- Friedman检验与Nemenyi检验:在一个数据集上比较多个算法的性能,FriedMan是基于算法排序
- 偏差-方差分解:是解释学习算法泛化性能的一种重要工具