机器学习
(西瓜书)-------周志华 著
Day 1:
第 1 章 绪论
1.1 基本术语:
-
数据集中的每条记录是关于一个事件或对象的描述——示例(instance) 或样本 (sample).
一个示例也可以称为一个特征向量(feature vector)
-
反映事件或对象在某方面的表现或性质的事项——属性(attribute)或特征 (feature).
-
属性取值——属性值(attribute value)
-
属性张成的空间——属性空间(attribute space)或 样本空间(sample space)或输入空间
-
从数据中学得模型的过程——学习(learning)或训练(training)
-
训练过程使用的数据——训练数据(training data)
-
训练样本的结果——标记(label)
-
拥有了标记信息的样本——样例(example)
-
预测的是离散值的学习任务——分类(classification)
-
预测的是连续值的学习任务——回归(regression)
-
学得模型后,使用其进行预测的过程——测试(testing)
-
被预测的样本——测试样本(testing sample)
-
将训练集中的结果按照一定规律分成若干组,每组称为一个“簇”(cluster)——“聚类”(clustering)
-
训练数据有标记信息——监督学习(supervised learning) 【分类和回归】
-
训练数据没有标记信息——无监督学习(unsupervised learning) 【聚类】
两个重要概念:
- 模型的泛化能力(generalization):机器学习的目标是使学得的模型能很好地适用于“新样本”,而不仅仅使在训练样本上work well。学得模型适用于新样本的能力,称为“泛化”能力(generalization)。具有强泛化能力的模型能很好地适用于整个样本空间。
- 独立同分布(independent and identically distributed, IID):统计机器学习算法都基于样本数据独立同分布的假设。即,通常假设样本空间中全体样本服从一个未知“分布”,我们获得的每个样本都是独立地从这个分布上采样获得的。
- 版本空间(version space):可能有多个假设与训练集一致,存在一个与训练集一致的“假设集合”。
- 特殊到一般的泛化过程,即从具体的事实归结出一般性规律——归纳(induction)
- 一般到特殊的特化过程,即从基础原理推演出具体状况——演绎(deduction)
(待更新——归纳偏好)
第 2 章 模型评估与选择
2.1 经验误差与过拟合:
又是一波重要概念~~
- 错误率(error rate):分类错误的样本数占样本总数的比例称为“错误率”,即m个样本中有a个样本分类错误,则错误率 E=a/m
- 精度(accuracy):(1-E)x100%
- 学习器在训练集上的误差(实际预测输出与样本的真实输出之间的差异)——训练误差(training error) 或经验误差(empirical error)
- 新样本上的误差——泛化误差(generalization error)
目标:努力使经验误差最小化,BUT
如果学习器把训练样本学得”太好“,经验误差很小,很可能学习器已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质(说人话就是,学习能力过于强大,把训练样本所包含的一些不太一般的特性都学习了,以为普通样本都该具有这种特性)。这种就叫过拟合(overfitting),这种情况会导致泛化性能下降。
反面情况就是,学习能力低下,对训练样本的一般性质尚未学好,叫欠拟合(underfitting).
注意,学习能力是由学习算法和数据内涵共同决定的。
理想的模型选择(model selection)是在候选模型中,选择其中泛化误差最小的那个。但是,我们无法直接获得泛化误差,因为我们事先并不知道新样本是什么样的。
2.2 评估方法:
测试集(testing set):
为了通过实验测试来对学习器的泛化误差进行评估并进而做出选择,使用一个测试集来测试学习器对新样本的判别能力,然后以测试集的测试误差(testing error)作为泛化误差的近似。
对于测试样本,我们假设它也是从样本的真实分布中独立同分布采集得到。同时,测试样本应该满足,尽量不再训练集中出现,没有在训练过程中使用过。
那么,当我们只有一个数据集时,就需要通过适当处理,从中产生出训练集S和测试集T。
2.2.1 方法一:留出法(hold out)
直接将数据集划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
2.2.2 方法二:交叉验证法(cross validation)
先将数据集D划分为k(通常取10)个大小相似的互斥子集Di,每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。
每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样可获得k组训练/测试集,从而进行k次训练和测试,最后返回这k个测试结果的均值。
这个方法通常被称为”k折交叉验证“(k-fold cross validation)
2.2.3 方法三:自助法(bootstrapping)
给定包含m个样本的数据集D,对它进行采样产生数据集D‘:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将样本放回初始数据集D中,重复这个过程m次,得到包含m个样本的数据集D’。(也就是有放回的抽样吧)
2.2.4 调参与最终模型
调参(parameter tuning):对每种参数配置都训练出模型,把对于最好模型的参数作为结果。(理想考虑)
在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,是最终模型。
注意区分:
通常把学得模型在实际使用中遇到的数据称为测试数据;
模型评估与选择中用于评估测试的数据集常称为”验证集“( validation set)
2.3 性能度量:
- 查准率(precision):所有预测为正例的样本中真正例的比例
- 查全率(recall):召回率,所有真实标记为正例的样本(T P + F N TP+FNTP+FN)中被预测为正例的比例
- F1:对查全率和查准率的偏好。