一. 机器学习基础概念
总结过层中,我结合了头歌上的相关公开课程:详见
(一).什么是机器学习?
机器学习致力于通过计算的手段,利用经验来改善系统的性能。
“经验”——>通常“数据”形式存在——>产生“模型”的算法被称为“学习算法”
(二).基本术语
1.数据集:
记录的集合。其中每一条记录关于一个事件或者对象,称为一个“示例”,或者“样本”。
2.属性(或特征)
反映事件或对象在某方面的表现或者性质的事项,如色泽,根蒂,敲声;
3.属性值
属性上的取值成为“属性值”
4.属性空间
属性张成的空间称为“属性空间”,或样本空间,输入空间
5.特征向量
有属性作为坐标轴,由各属性组成一个点。由于空间中的每个点对应一个坐标向量,因此每一个示例也称为一个“特征向量”。
6.维数
若一个示例由d个属性描述,Xi为d维样本空间X中的一个向量,Xij是指样本Xi在第j个属性上的取值。d称为样本Xi的维数。
7.数据集
- 定义:数据的总和称为数据集。
- 分类:
(1)训练集:用来学习或者叫训练的数据集。
(2)测试集:
8.样例
拥有标记信息(描述特征或属性的信息)的示例,一般用(xi,yi)表示第i个示例,其中yi∈Y是示例xi的标记,Y是所有标记的集合,称为标记空间或输出空间。
9.学习任务
- 监督学习
(1)定义:监督学习是从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。
(2)代表:分类和回归。监督学习是训练神经网络和决策树的常见技术。这两种技术高度依赖事先确定的分类系统给出的信息,对于神经网络,分类系统利用信息判断网络的错误,然后不断调整网络参数。对于决策树,分类系统用它来判断哪些属性提供了最多的信息。
(3)常见监督算法:线性回归算法、BP神经网络算法、决策树、支持向量机、KNN等。
(4)弱监督学习: - 为什么需要弱监督学习
①现实的数据往往缺乏标签;
②数据标注过程的高成本;
③很多任务很难获得如全部真实标签这样的强监督信息; - 半监督学习(自我训练)
详细信息,推荐——>半监督学习
- 无监督学习
(1)定义:根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
(2)常见无监督算法:主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法和局部切空间排列方法等。
(3)聚类:
①聚类算法一般有五种方法,最主要的是划分方法和层次方法两种。
②划分聚类算法通过优化评价函数把数据集分割为K个部分,它需要K作为输入参数。典型的分割聚类算法有K-means算法, K-medoids算法、CLARANS算法。
③层次聚类由不同层次的分割聚类组成,层次之间的分割具有嵌套的关系。它不需要输入参数,这是它优于分割聚类算法的一个明显的优点,其缺点是终止条件必须具体指定。典型的分层聚类算法有BIRCH算法、DBSCAN算法和CURE算法等。
④利用聚类结果,可以提取数据集中隐藏信息,对未来数据进行分类和预测。应用于数据挖掘,模式识别,图像处理等。
(4)无监督学习的方法分类:
① 一类为基于概率密度函数估计的直接方法:指设法找到各类别在特征空间的分布参数,再进行分类。
②另一类是称为基于样本间相似性度量的简洁聚类方法:其原理是设法定出不同类别的核心或初始内核,然后依据样本与核心之间的相似性度量将样本聚集成不同的类别。 - 二者的区别
10.训练、验证、测试、评估
首先我们先通过一个形象的类比来了解一下什么是训练、验证、测试与评估。
训练–学生的课本;学生根据课本里的内容来掌握知识。
验证–作业,通过作业可以知道不同学生学习情况、进步的速度快慢。
测试–考试,考的题是平常都没有见过,考察学生举一反三的能力。
评估–分数,通过分数的高低了解学生对知识点的掌握情况。
-
训练:从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成.
-
验证:对同一个学习算法,当使用不同的参数配置时,也会产生不同的模型.那么,选用哪一个学习算法、使用哪一种参数配置,这就是机器学习中的“模型选择”(modelselection)问题。对学习出来的模型,微调他们的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。
-
测试:使用一个“测试集”(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似。**值得注意的是:**测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过.
-
评估:
(1)把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error),学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上的误差称为“泛化误差”(generalizationerror)。显然,我们希望得到泛化误差小的学习器。
(2)评估方法 -
留出法
①“留出法”(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T.在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计.
②注意:
a.训练/测试集的划分尽可能保持数据分布的一致性。
b.一般采用若干次随即划分、重复进行实验评估后取平均值作为留出法的评估结果。
c.训练/测试集样本比例通常为2:1或4:1 -
交叉验证法
“交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集.每个子集D都尽可能保持数据分布的一致性,即从D中通过分层采样得到.然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值.显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,为强调这一点,通常把交叉验证法称为“k折交叉验证”(k-fold crossvalidation).k最常用的取值是10,此时称为10折交叉验证;其他常用的k值有5、20等.下图为10折交叉验证的示意图。
假定数据集D中包含m个样本,若令k = m ,则得到了交叉验证法的一个特例:留一法(Leave-One-Out,简称LOO).显然,留一法不受随机样本划分方式的影响。 -
自助法
给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果.
自助法在数据集较小难以有效划分训练集和测试集时很有用。
(3)评估标准
①准确率(Accuracy)的定义是:对于给定的测试集,分类模型正确分类的样本数与总样本数之比;
②精确率(Precision)的定义是:对于给定测试集的某一个类别,分类模型预测正确的比例,或者说:分类模型预测的正样本中有多少是真正的正样本;
③召回率(Recall)的定义为:对于给定测试集的某一个类别,样本中的正类有多少被分类模型预测正确召回率的定义为:对于给定测试集的某一个类别,样本中的正类有多少被分类模型预测正确;
④F1_score,在理想情况下,我们希望模型的精确率越高越好,同时召回率也越高越高,但是,现实情况往往事与愿违,在现实情况下,精确率和召回率像是坐在跷跷板上一样,往往出现一个值升高,另一个值降低,那么,有没有一个指标来综合考虑精确率和召回率了,这个指标就是F1值。F1值的计算公式为:
(4)性能度量
①定义:衡量泛化能力的评价标准称为性能度量。性能度量反映了任务需求,对比不同模型的能力时,使用不同的性能度量会导致不用的评判结果。在进行模型选择时,需要根据算法、数据以及任务需求综合选择合适的性能度量。
而回归任务中,最常用的性能度量时“均方误差”(MSE):
②分类
a.错误率与精度
错误率:分类错误的样本数占总数的比例。
精度:分类正确的样本数占总数的比例。
对样例集 D , 分类错误率定义为:
精度则定义为:
对于数据分布 Ð 和概率密度函数 p(.) , 错误率与精度可分别描述为:
b.查准率§、查全率®与F1
在信息检索等应用中,我们通常会关系“检索出来的信息中有多少比例是用户感兴趣的”。此时查准率(precision)与查全率(recall)更适用于此类需求的性能度量。
真实情况 | 预测结果 | 预测结果 |
---|---|---|
正例 | 反例 | |
正例 | TP | FN |
反例 | FP | TN |
P=TP/(TP+FP)
R=TP/(TP+FN)
P与R成反比,在平衡点(BEP)时:P=R
F1度量:
F1=2XPXR/(P+R)=2TP/(样例总数+TP-TN)
商品推荐是,查准率更重要,而在逃犯信息检索式,查全率更重要。
c.ROC与AUC
ROC 全称是"受试者工作特征" (Receiver Operating Characteristic) 曲线。ROC 曲线的纵轴是"真正例率" (True Positive Rate,简称 TPR),横轴是"假正例率" (False PositiveRate, FPR),其中
AUC(Area Under Curve) 可通过ROC曲线下各部分的面积求和而得。因为ROC曲线一般都处于y=x这条直线的上方,所以取值范围在0.5和1之间,使用AUC作为评价指标是因为ROC曲线在很多时候并不能清晰地说明哪个分类器的效果更好,而AUC作为一个数值,其值越大代表分类器效果更好。
值得注意的是:类似于PR图
- 若一个学习器的 ROC 曲线被另 一个学习器的曲线完全"包住", 则可断言后者的性能优于前者;
- 若两个学习器的 ROC 曲线发生交叉,则难以-般性地断言两者孰优孰劣 . 此时比较 AUC 。
d.代价敏感错误率与代价曲线
以二分类任务为例,可根据任务的领域知识设定一个"代价矩阵" (cost matrix) 。costij表示将第 i 类样本预测为第 j 类样本的代价。一般来说 ,costii=0; 若将第 0 类判别为第 1 类所造成的损失更大,则cost01>cost 10;损失程度相差越大cost01与cost10值的差别越大。
代价敏感 (cost-sensitive)错误率为:
代价曲线: 在非均等代价下, 代价曲线能直接反映出学习器的期望总体代价。
代价曲线横轴是取值为 [0 ,1]的正例概率代价:
其中 p 是样例为正例的概率。纵轴是取值为 [0 , 1] 的归一化代价:
代价曲线的绘制: ROC 曲线上每一点对应了代价平面上的一条线段,设ROC 曲线上点的坐标为 (TPR, FPR) ,则可相应计算出 FNR,然后在代价平面上绘制一条从 (0,FPR) 到 (1,FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;如此将 ROC 曲线土的每个点转化为代价平面上的一条线段,取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。