第1章:基本术语
- 数据集:其中每条记录是关于一个事件或对象的描述,称为一个“事例”或“样本”。
- 属性(特征):反映事件或对象在某方面的表现或性质的事项。
- 标记:关于示例结果的信息,如“好瓜”。拥有了标记信息的示例称为“样例”。
- 学习任务的分类:
①分类(classification):预测的是离散值。
·二分类(binary classification)即只涉及两个类别,一个正类positive class,另一个负类negative class。
·多分类(multi-class classification)涉及多个类别的预测。
②回归:预测的是连续值,比如西瓜成熟度0.95、0.37。
③聚类(clustering): 将训练集中的西瓜分成若干组,每组称为一个“簇”(cluster)。注意这些标记信息在训练前是不具备的。 - 监督(supervised learning)/无监督学习(unsupervised learning):训练数据有标记信息是监督学习(分类和回归),无标记信息则是无监督学习(聚类)。
- “泛化”(generalization)能力:模型适用于新样本的能力。机器学习的目标是使学得的模型能很好地适用于“新样本”。
- 归纳、演绎:归纳是从特殊到一般的泛化过程,归纳是从一般到特殊的特化(specialization)过程。如“从样例中学习”显然是一个归纳过程,称为“归纳学习”(inductive learning)。
归纳学习分广义和狭义:
·广义:从样例中学习。
·狭义:从训练数据中学得概念(concept),因此也称为“概念学习”或“概念形成”。
- 假设空间:所有属性取不同的值形成的假设(hypothesis)样本集合。如有三种属性的西瓜,每个属性取三个值,加上“根本不存在好瓜”这种极端情况,假设空间规模大小为444+1 = 65。
- 版本空间(version space):与训练集一致的“假设集合”。
计算P4表1.1版本空间参考 这篇博客
第2章 模型评估与选择
2.1 经验误差与过拟合
· 错误率(error rate):分类错误的样本数占样本总数的比例,若在m个样本中有a个样本分类错误,则错误率E = a / m,相应的“精度”(accuracy) = 1 - E。
· 误差(errror):学习器的实际预测输出与样本的真实输出之间的差异,学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上的误差成为“泛化误差”(generalization error)。
· 过拟合(overfitting):把训练样本自身的一些特点当作了所有潜在样本都具有的一般性质,这样导致泛化性能下降。
注意过拟合无法彻底避免,常见情况是由于学习能力过于强大以至于把训练样本所包含的不太一般的特性都学到了,欠拟合反知。欠拟合比如通过在决策树学习中扩展分支,在神经网络学习中增加训练轮数等手段来克服。
2.2 评估方法
测试集(testing set):与训练集互斥,也是从样本真实分布中独立同分布采样而得,来测试学习器对新样本的判别性能。
- 留出法(hold-out):直接将数据集D划分为两个互斥的集合,一个训练集S,一个测试集T。
注意,训练/测试集的划分要尽可能保持数据(如类别)分布的一致性。常见做法是将2/3 ~ 4/5 的样本用于训练,剩余样本用于测试。
- 交叉验证法(cross validation):将数据集D划分为k个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性。然后每次用k - 1个子集的并集作为训练集,余下的作测试集,这样就可以获得k组训练/测试集,从而可进行k次训练和测试,最终返回这k个测试结果的均值。
通常称为“k折交叉验证”(k-fold cross validation),最常用k取10,也有取5、20等。
注意:初始数据量足够时,留出法和交叉验证法更常用一些。
- 自助法(bootstrapping):以自助采样法(bootstrap sampling)为基础,每次从数据集D中挑选一个样本拷贝到D’中,再将该样本放回到D中使得下次仍有可能被采到。重复m次就得到包含m个样本的数据集D’。求极限可以算出约有数据总量的1 / 3 不包含在D’中,于是可以用D’作为训练集,D \ D’作为测试集,这样的测试结果也成为“包外测试”(out-of-bag estimate)。
适用于:数据集较小、难以有效划分训练/测试集。由于它从初始数据集中产生多个不同的训练集,利于集成学习等方法。但其产生的数据集改变了初始数据集的分布,会引入估计偏差。
调参(parameter tuning)与最终模型:
参数分类:
·算法的参数(即超参数),一般数目在10以内,通常由人工设定多个参数候选值,后来产生模型;
·模型的参数,数目甚至有上百亿个,一般通过学习来产生多个候选模型。
最终模型:模型选择完成后,学习算法和参数配置已选定,应该用全部数据集D重新训练模型,这样的模型才是最终提交给用户的。
在模型评估与选择中用于评估测试的数据集称为“验证集”(validation set),基于验证集上的性能来进行模型选择和调参。所以通常把训练数据另外分为训练集和验证集,而用测试集上的判别效果来估计模型在实际使用时的泛化能力。