机器学习-周志华 学习笔记 1

第一章

学得模型适用于新样本的能力,称为“泛化“(generalization)能力。

学习的过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标时找到与训练集“匹配“(fit)的假设,即能够将训练集中的样本判断正确的假设。

版本空间(version space):可能有多个假设与训练集一致,即存在着一个与训练集一致的“假设集合“。我们称之为版本空间。

机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”(inductivebias)

归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”。

“奥卡姆剃刀(Occam’s razor)”是一种常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”。如无必要,勿增实体

归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设。算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。

所有“问题”出现的机会相同或者所有问题同等重要的情况下满足“没有免费的午餐”定理(NoFree Lunch Theorem ,简称NFL定理)。即任意两种算法的期望性能相同。

脱离具体问题,空泛地谈论什么学习算法更好毫无意义。

第二章 模型评估与选择

2.1经验误差与过拟合

       学习器在训练集上的误差称为“训练误差”(training error),在新样本上得误差称为“泛化误差”(generalization error)。

       并不希望分类精度达到100%,因为当学习器吧训练样本学得“太好”了的时候,很可能已经把训练样本自身得一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。这种现象称为“过拟合”,与之相对的是“欠拟合”,指对训练样本的一般性质尚未学好。过拟和是由于学习能力过于强大

       当对同一个学习算法使用不同的参数配置时也会产生不同的模型。具体使用哪一种学习算法,使用哪一种参数配置时机器学习中的“模型选择“(model selection)问题。理想的解决方案是对模型的泛化误差进行评估,然后选择泛化误差最小的那个。然而无法直接获得泛化误差。

2.2评估方法

     可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。使用测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差“(testing error)作为泛化误差的近似。测试样本要尽量不在训练集中出现。

       从数据集合D中进行适当处理,从中产生出训练集S和测试集T。

2.2.1留出法

       留出法直接将数据集合D划分为两个互斥的集合,其中一个为S,另一个为T。测试集和训练集的划分要尽量保持数据分布的一致性。Eg:在分类任务中至少要保证样本的类别比例相似。(即各种不同种类的数据数量比例需要相似)

       从采样角度来看待数据集的划分过程,保留类别比例的采样方式通常称为“分层采样“(stratified sampling)。

       单次留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般采用若干次随即划分、重复进行实验评估后取平均值作为留出法的评估结果。

       为了减弱S和T数目上分配不同对评估结果保真性的影响,常用大约2/3~4/5的样本用于训练,剩余样本用于测试。

2.2.2交叉验证法(cross validation)

       交叉验证法先将数据集D划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,然后每次用k-1个子集的并集作为训练集,余下那个子集作为测试集;这样获得k组训练/测试集,从而可以进行k次训练和测试,最终返回k个测试结果的均值。交叉验证法评估结果的稳定性和保真性在很大程度上取决于这k个测试结果的均值。通常把交叉验证法成为“k折交叉验证”(k-fold cross validation)。K最常用取值为10

为了减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终评估的结果时这p次k折交叉验证结果的均值,常见的有“10次10折交叉验证”。

当数据集D中包含m个样本,若令k=m,则得到交叉验证法的特例:留一法(Leave-One-Out),该法不受随机样本划分的影响。其评估结果往往被认为较准确,但是当数据集比较大的时候,训练m个模型的计算开销可能无法忍受。

2.2.3自助法(bootstrapping)

       自助法直接以自助采样法(bootstrap sampling)为基础,假设给定的数据集D包含m个样本。该数据集有放回地抽样m次,产生m个样本的训练集D’。这样原数据样本中的某些样本很可能在该样本集中出现多次。没有进入该训练集的样本最终形成检验集(测试集)。 显然每个样本被选中的概率是1/m,因此未被选中的概率就是(1-1/m),这样一个样本在训练集中没出现的概率就是m次都未被选中的概率,即(1-1/m)^m。当m趋于无穷大时,这一概率就将趋近于e^-1=0.368,所以留在训练集中的样本大概就占原来数据集的63.2%。通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D‘中,可将D’用作训练集D\D’用作测试集,这样的测试结果,亦称为“包外估计”(out-of-bagestimate)。自助法在数据集较小,难以有效划分训练/测试集时很有用。

       2.2.4调参与最终模型

       大多数学习算法都有参数(parameter)需要设定,参数配置不同,学得模型的性能往往有显著区别。在进行模型评估和选择时,还需要对算法参数进行设定,简称“调参”。

       一般考虑:对每种参数配置都训练出模型,然后把对应最好模型的参数作为结果。注意:学习算法的很多参数都是在实数范围内取值,因此对每种参数配置都训练出模型时不可行的。现实中通常:对每个参数选定一个范围和变化的步长。

       通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分模型评估与选择中用于测试的数据常称为“验证集“(validation set)。


猜你喜欢

转载自blog.csdn.net/etchtime/article/details/80601625
今日推荐