机器学习笔记01

  • 来自周志华的《机器学习》

第1章 绪论

引言

  机器学习是研究如何通过计算的手段,利用经验来改善系统自身的性能。
  “经验”以“数据”形式存在,因此,机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型” (model) 的算法,即“学习算法” (learning algorithm)。有了学习算法,把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时,模型会给我们提供相应的判断。

  • Mitchell给出了形式化的定义:假设用 P 来评估计算机程序在某任务类 T 上的性能。若一个程序通过利用经验 E 在 T 中任务上获得了性能改善,则我们就说关于 T 和 P 该程序对 E 进行了学习.

基本术语

  令 D={x1,x2,...,xm} D = { x 1 , x 2 , . . . , x m } ,表示包含 m m 数据(或样本(sample),示例(instance))的数据集(data set)
  其中每个数据 x d d 属性(attribute,或特征(feature)),其取值为属性值(attribute value),属性张成的空间叫做属性空间(attribute space),或样本空间(sample space)
  每个样本 xi=(xi1,xi2,...,xid) d d 维样本空间 χ χ 中的一个向量其中 xij x i j xi x i 在第 j j 个属性上的取值 ,d 称为样本 xi x i 维数(dimensionality)
  从数据中学得模型的过程称为学习 (learning) 或训练 (training) ,训练过程中使用的数据称为训练数据 (training data)
  每个样本称为一个训练样本(training sample),训练样本组成的集合称为训练集(training set)
  学得模型对应了关于数据的某种潜在的规律,称为假设 (hypothesis) ;这种潜在规律自身,则称为真相真实(ground-truth) ,学习过程就是为了找出或逼近真相。
  要建立这样的关于预测(prediction) 的模型,需要获得训练样本的结果信息,称为标记(label) ;拥有了标记信息的示例,则称为样例(example); (xi,yi) ( x i , y i ) 表示第 i i 个样例,yi xi x i 的标记,所有标记的集合,称为标记空间(label space) Y Y
  如果预测的是离散值,这类信息任务称为分类(classification),如果预测连续值,称为回归(regression)。对只涉及两个类别的分类任务,称为二分类(binary classification),一为正类(positive class),一为反类(negative class)。
  预测任务通过对训练集 {(x1,y1),(x2,y2),...,(xm,ym)} { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } 进行学习,建立一个从输入空间 X X 到输出空间 Y Y 的映射: f:XY f : X → Y
  学得模型后使用其进行预测的过程称为测试(testing),被预测的样本称为测试样本(testing sample),对测试例 x x 得到其预测标记 y=f(x)
  还可以对样本做聚类(clustering),即将训练集中的样本分为若干组,每组称为一个(cluster),这些簇可能对应潜在的概念划分,有助于我们了解数据内在规律。但这样的概念事先并不知道。
  根据是否拥有标记,学习任务可分为监督学习(supervised learning)和无监督学习(unsupervised learning),前者包含分类和回归,后者包含聚类。
   模型对新样本的适用能力称为泛化能力(generalization)。假设样本空间的全体样本服从一个未知的分布 D D (distribution),我们获得额每个样本都是独立地从这个发布上采样获得,即独立同分布(independent and identically distributer, i.i.d.)

假设空间

  归纳(induction)与演绎(deinduction)用于科学推理。前者是从特殊到一般地泛化过程,后者是从一般到特殊地特化过程。从样例中学习,称为归纳学习(inductive learning)。学习过程可以看作是一个在所有假设(hypothesis)组成地空间中进行搜索,目标是找到与训练集匹配(fit)地假设。
  现实问题中面临很大的假设空间,但学习过程是基于有限样本,因此会有多个假设与训练集一致,即存在一个与训练集一致的假设集合,称为版本空间(version space)

归纳偏好

   通过学习得到的模型对应了假设空间的一个假设。当存在多个假设时,算法本身的“偏好”会起到关键作用,称为归纳偏好(inductive bias)。常用的基本原则时奥卡姆剃刀(Occam’s razor):当有多个假设与观察一致,选择最简单的那个。
   对于一类问题,如果他们的机会相同、同等重要,关于他们的学习算法 La L a Lb L b 的期望性能总是相同的。即没有免费的午餐定理(No Free Lunch Theorem, NFL)。但实际情形并非如此,因此要针对具体的问题来讨论算法的优劣。


第2章 模型评估与选择

经验误差、过拟合

   分类错误的样本数占样本总数的比例称为错误率(error rate),如在 m m 个样本中有 a 个样本分类错误,则错误率为 E=a/m E = a / m 精度(accuracy)为 1a/m 1 − a / m 。一般的,将学习的实际预测输出与样本的真实输出之间的差异称为误差(error),在训练集上的误差称为训练误差(traning error)或经验误差(empirical error),在新样本上的误差称为泛化误差(generalization error)
   当学习器训练地太好,以至于将个体地性质当作一般地性质,称为过拟合(overfitting);相对地,有欠拟合(underfitting),表示训练样本的一般性质尚未学好。欠拟合比较任意克服,而过拟合则比较麻烦。在现实任务中,一般都有多种学习算法可选,这就涉及到模型选择(model selection)。如何进行模型评估与选择?

评估方法

  通常用一个测试集(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似。因此需要对初始数据集进行有效划分,划分出互斥的训练集和测试集。下面是几种划分方法:
  1 留出法(hold-out)
  直接将数据集 D D 划分为两个互斥的集合,分别是训练集 S 和测试集 T T ,即D=SU SU= S ⋂ U = ∅ ,在 S S 上训练出模型后,用 T 来评估其测试误差,作为对泛化误差的估计。注意这两个数据集需要保持数据分布的一致性,采样方式通常由分层采样(stratified sampling),将大约 2/3 2 / 3 ~ 4/5 4 / 5 的样本用于训练。
  2 交叉验证法(cross validation)
  将数据集 D D 划分为 k 个大小相似的互斥子集,每次用 k1 k − 1 个子集的并集作为训练集,余下的子集作为测试集,这样可获得 k k 组数据集,最终返回 k 个测试结果的均值,亦称为 k k 折交叉验证(k-fold cross validation), k 常取为10。与留出法类似,存在多种划分方式,通常要随机使用不同的划分重复 p p 次。如果 k 等于数据集中的样本数,则为特例留一法(Leave-One-Out, LOO),但计算开销太大。
这里写图片描述
  3 自助法(bootstrapping)
  以自助采样法(bootstrap sampling)为基础,对有 m m 个样本的数据集 D 进行采样获得 D D ′ ,每次从 D D 中随机挑选一个样本放入 D 中,重复 m m 次。估计:

limm+(11m)m1e0.386

  即初始数据集 D D 中有36.8%的样本未出现在采样集 D 中,将 D D ′ 作为训练集, D D \ D 作为测试集,这样的测试结果称为包外估计(out-of-bag estimate)
  4 调参与最终模型(parameter tuning)
  大多数算法都有参数(parameter)需要设定,即调参。在模型选择、算法和参数已定后,用原始数据集 D D 重新训练模型,使用所有的 m 个样本,这就是最终模型。

性能度量

  对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量 (performance measure)。使用不同的性能度量往往会导致不同的评判结果,这意味着模型的好坏是相对的。
  对给定数据集: D=(x1,y1),(x2.y2),...,(xm,ym) D = ( x 1 , y 1 ) , ( x 2 . y 2 ) , . . . , ( x m , y m ) ,其中 yi y i xi x i 的真实标记,要评估学习器 f f 的性能,需要将预测结果f(x)与真实标记 y y 进行比较。回归任务常用的有:均方误差(mean squared error)

E(f;D)=1mi=1m(f(xi)yi)2
  分类任务常用的度量有:错误率、精度、查准率P(precision)、查全率R(recall)、平衡点(Break-Event Point, BEP,即P=R的情况)、F1度量(基于P和R的调和平均定义)、 Fβ F β (F1度量的一般形式,加权调和平均)。
  神经网络在一般是对每个测试样本预测出一个0~1回之间的实值,然后将这个值与 0.5 进行比较,大于0.5判为正例,否则为反例.这个0.5就是分类阈值(threshold)或截断点(cut point)。我们可以用ROC曲线来研究泛化性能的好坏。受试工作者特征(Receiver Operating Characteristic)曲线,根据学习器的预测结果对样本排序,按顺序把样本作为正例进行预测,每次计算出两个值作为横纵坐标,纵轴是真正例率(true Positive Rate,TRP),横轴是假正例率(False Posituve Rate,FPR)。若有一个学习器的ROC曲线被另一个学习器的曲线包住,则后者的性能优于前者;若有交叉,可以根据ROC曲线下的面积AUC(Area Under ROC Curve)来比较。
  实际情形下,为权衡不同类型的错误造成的不同损失,可为错误赋予非均等代价(unequal cost)。在此情况下,ROC曲线不能直接反映学习器的期望总体代价,而代价曲线(cost curve)可以达到该目的。

比较检验

  统计假设检验(hypothesis test)为学习器性能比较提供了重要依据。包括对单个学习器泛化性能的假设检验:二项检验(binomial test)、t检验(t-test);以及针对不同学习器的:交叉验证t检验McNemar检验Friedman检验Nemenyi后续检验

偏差与方差

  偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的重要工具。泛化误差可以分解为偏差-方差与噪声之和。偏差度量;额学习算法的期望预测与真实结果的偏离程度,即算法本身的拟合能力;方差度量的是相同大小的训练集的变动所导致的学习性能的变化,即数据扰动造成的影响;噪声则表达在当前任务上任何学习算法所能达到的期望泛化误差下界,即学习问题本身的难度。


第3章 线性模型

基本形式

  对由d个属性描述的示例: x=(x1;x2:...;xd) x = ( x 1 ; x 2 : . . . ; x d ) ,其中 xi x i x x 在第i个属性的取值,线性模型(linear model)通过组合进行预测函数: f(x)=w1x1+w2x2+...+wdxd+b f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b ,其向量形式为: f(x)=wTx+b f ( x ) = w T x + b w w b通过学习获得。许多非线性模型(nonlinear model)可在此基础上引入层级结构或高维映射获得。 w w 直观表达了各属性的“权重”。

线性回归

  对数据集D={(x1,y1),(x2.y2),...,(xm,ym)},其中 xi=(xi1;xi2;...;xid) x i = ( x i 1 ; x i 2 ; . . . ; x i d ) yR y ∈ R 线性回归(linear regression)试图学得一个线性模型来预测输出标记。
  对于离散属性,若属性间存在(order),可以通过连续化将其转换为连续值,如(0, 0.5, 1);若不存在序,对于k个属性,则转化为k维向量,如(0,0,1)。线性回归试图学得:

f(xi)=wxi+b,使f(xi)yi f ( x i ) = w x i + b , 使 得 f ( x i ) ≃ y i
确定 w w b的关键在于衡量 f(x) f ( x ) y y 之间的差别。可以试图让他们的均方误差最小化,这样做的几何意义是使他们之间的欧氏距离(Euclidean distance)最小,这种方法称为最小二乘法(least square method),即找到一条直线,使所有样本到直线上的距离之和最小。
  还有一种最小二乘参数估计(parameter estimation),使得E(w,b)=i=1m(yiwxib)2最小化,更一般的情形如 f(x)=wTx+b f ( x ) = w T x + b ,称为多元线性回归(multivariate linear regression),可能解出多个 w w 都能使均方误差最小化,选择哪一个作为输出,则取决于算法的偏好,常见做法是引入正则化(regularization)项。
  更一般的情形,对单调可微函数g(·),令
y=g1(wTx+b) y = g − 1 ( w T x + b )
称为广义线性模型(generalized linear model),其中 g() g ( · ) 称为联系函数(link function)。

对数几率回归

  对于分类任务,只需找出一个单调可微函数将分类任务的真实标记 y y 与线性回归模型的预测值联系起来。例如二分类任务,输出标记为0或1,而线性回归模型的预测值是实值,可以通过阶跃函数(step function),设置某一阈值,大于阈值则判为正例,否则是反例。但是阶跃函数不连续,需要找到一个近似的替代函数(surrogate function),常用的是对数几率函数(llogistic function)

y=11+ez
即实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此称为对数几率回归(logistic regression),虽然称为回归,实际上是一种分类方法。(通过极大似然法来估计 w w b,涉及到凸优化理论)

线性判别分析

  线性判别分析(Linear Discriminant Analysis, LDA)是一种经典的线性学习方法。其思想为:给定训练集,设法将其投影到一条直线上,使得同类的投影点尽可能接近、异类尽可能远离。
这里写图片描述
  LDA可以从贝叶斯决策理论的角度来阐释,当两类数据同先验、满足高斯发布且协方差相等时,LDA可达到最优分类。

多分类学习

  对于多分类任务,有的可以用二分类方法推广,或直接利用二分类器来解决多分类问题。基本思路的拆解法,将多分类任务拆分为若干个二分类任务求解,最经典的有:一对一(One vs. One, OvO)、一对其余(One vs. Rest, OvR)、多对多(Many vs. Many, MvM)。
这里写图片描述
MvM的正反类构造必须有特殊设计,不能随意选取。常用的是纠错输出码(Error Correcting Output Codes, ECOC)

类别不平衡问题

  如果不同类别的训练数据差别很大,会对学习过程造成困扰。类别不平衡(class-imbalance)就是指这种情况。一个基本策略是再缩放(rescaling)。现有技术大体上有三类做法:欠采样(undersampling)、过采样(oversampling)、阈值移动(threshold-moving)。前二者是在样本采样时针对正反样例的数目差异,对训练集的数量做一定的取舍,后者直接基于原始训练集进行学习,但在预测时,对阈值进行了调整。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值