目录
前言
随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文主要记录了有关机器学习问题的研究思路以及对于模型的评估方法,思路均来源于周志华老师《机器学习》前两章的内容。
一、机器学习是什么?
1.1概念
机器学习是一门研究如何通过计算的手段,利用经验来改善系统自身的性能的学科。在计算机上从数据中产生“模型”的算法,即学习算法。
1.2基本术语
1.2.1学习阶段
以西瓜为例,存在数据集:
(示例)样本1:(色泽=青绿;根茎=蜷缩;敲声=浊响)
(示例)样本2:(色泽=浅白;根茎=硬挺;敲声=清脆)...... 样本m: ......
均按照:属性(特征)=属性值的形式分别构成属性空间和样本空间。
令表示m个样例的数据集;
表示各个示例由d个属性描述;则xi即可转化为d维样本空间中的一个向量,xi∈。对应为在第个属性上的取值。
1.2.2预测阶段
通过将数据转化为模型,对于数据存在的潜在规律提出假设,整个学习过程意在找出或逼近真相。
预测过程中对样本的结果信息进行标记:示例+标记=样例,以表示第i个样例,Y是的标记,组成输出(标记)空间。
1.2.3测试过程
在学得模型之后,对于测试例,可得其预测标记,而学得模型对新样本的适用程度表示为“泛化能力”。
1.3假设空间
在具体事物中寻求一般规律即为归纳过程,在广义上可理解为从样例中学习规律,在狭义上可从数据中获取概念,即为概念学习。以布尔概念为例,用0/1来表示学习结果。
在西瓜模型中,以1代表好瓜,0代表坏瓜,则可针对 “好瓜=(色泽=?)(根茎=?)(敲声=?)由此建立西瓜模型的假设空间如下:
1.4归纳偏好
对于可能存在的统一样本对应的不同输出(等效假设),需要通过设置归纳偏好来确定最终的标记结果。如得出:“ 色泽=乌黑;根蒂=蜷缩;敲声=* ”,同时符合“ 色泽=乌黑;根蒂=*;敲声=* ”与“色泽=*;根蒂=蜷缩;敲声=*”,而对应结果一个为坏瓜一个为好瓜,我们将通过比对“乌黑”和“蜷缩”两个特征的影响比重来确定瓜的质量。
根据NFL定理,绝对均匀分布的样本无论设置何种偏好都存在一半的错误率,故必须针对具体问题设置匹配算法。
二、模型评估
2.1经验误差与过拟合
若对于个样本中个样本分类错误,则对应错误率为;精度为。更一般的,将“学习器实际预测输出-样本真实输出=误差”,分为在训练集上产生的误差:训练误差(经验误差)和在新样本上产生的误差:泛化误差。
而我们想要的是泛化能力强的模型(泛化误差小),但学习过程中可能存在以下问题:
2.2评估方法
可以通过实验测试来对学习器的泛化误差进行评估从而做出选择。通常通过使用“测试集”来测试样本的判别能力,再以测试过程中的测试误差来近似为泛化误差,即将包含个样例的数据集划分为互斥的两个集合,分别为训练集与测试集。
以下将介绍三种常用的划分方法:
2.2.1留出法
,,直接划分为两个互斥集合,在上训练出模型后,用来进行评估测试误差。如中含有1000个样本,划分其为中含700个,中含300个,若在用测试时有90个样本分类错误,则错误率=(90/300)×100%=30%,精度即为70%。
划分时需要注意以下原则:
①对训练/测试集的划分应尽可能保持数据分布一致性:
以分类任务为例,应保持样本类别比例相似,此方式可称为“分层采样”,若类别比例过大会产生误差估计的偏差。
②采用若干次随机划分、重复进行实验取平均值作为留出法评估结果:
可有效提高稳定性与可靠度。
③将约2/3~4/5的样本用于训练,其余用于测试:
若多,则训练出的模型接近于训练出的模型,但小,评估的结果不够稳定准确;若多,则与差别更大,降低了评估结果的保真性。
2.2.2交叉验证法
将划分为个大小相似的互斥子集,且每个子集保持一定的数据分布一致性。, ,采用 “k折交叉验证”,k常取值为10,还可为5,20......
以下图示例“10折交叉验证”的划分过程:
此种验证方法有以下特点:
①将数据集化为个子集随机使用不同的划分重复P次评估结果为P次验证结果均值;
②假设中包含m个样本,若令,对应转化为"留一法",由于m个样本划分为m个子集仅有一种方法,此时实际评估模型与期望评估的很相似,对应结果也比较准确。
③其缺点是:训练集较大时,训练m个模型的计算量过大。
2.2.3自助法
兼顾了“减少训练样本规模不同造成的影响”以及“降低计算复杂度从而能够更加高效。
其采样方法如下图示意:
此验证方法有以下特点:
①中会有一部分数据重复,另外一部分不出现:
在m次采用中始终不出现的概率:
②于是我们将作为训练集,作为测试集,则可保证实际评估与期望评估的模型均使用m个训练样本,有约为数据总量1/3的、没在训练集中出现的样本用于测试,此种方法称为“包外估计”。
③适用于数据集小、难以有效划分开训练集、数据集的样本;但由于产生的数据集改变了初始的分布,会引入估计误差。
2.2.4调参与最终模型
对算法参数进行设定即为参数调节,可通过选择其范围以及变化步长来减少计算量。在m个样本的数据集中选择一部分数据来训练模型,确定学习算法以及参数配置后,应重新用来训练,使得m个样本均参与,才可得最终模型。
2.3性能度量
用于衡量模型的泛化能力,通常泛化能力取决于算法、数据、任务要求等因素。在预测任务中,给定样例,其中为示例的真实标记。评估学习器的性能,实际上是将学习器预测的结果与真实标记进行比较。
①在回归任务中,常用度量为"均方误差":;
②更一般的,对于数据分布和概率密度函数,均方误差可描述为:。(可类比计算平面密度不相同的物体质量的计算方法)
此时样本可以看做非离散样本而是连续样本。
2.3.1错误率及精度
对于样例集,其错误率为:,其中函数中,若中条件成立,则函数取值为1,反之则取0。
精度对应为:;
对于数据分布及概率密度函数,可推广为:;
精度对应为:
2.3.2查准率、查全率与F1
以西瓜模型为例,查准率意味:“选中的西瓜有多少为好瓜”;查全率则指“所有的好瓜中有多少被选中了”。
对于二分类问题,结合其真实类别与学习器预测类别,划分出以下“分类混淆矩阵”:
对应查全率;查准率 。
一般来说,查全率与查准率存在一个此消彼长的关系,故我们需要一个统一的指标来综合这两个性能对模型进行评价:
根据预测结果对样例进行排序:按照“最可能为正例”“最不可能为正例”,逐个将样本作为正例来预测,记录查准率、查全率得到曲线:
两个曲线存在以下两种关系:
①若一个学习器的曲线完全被另一个的包住,则后者性能用于前者,如上图中优于C;
②对于 曲线相交的情况,难分好坏,如与曲线,一种方法是是通过比较曲线下的面积来找出相对“双高”的一支,但问题在于面积不好估算。
故引入“平衡点”的概念,即(P=R时的取值),由此可得出优于曲线。
但过于简化了,常用为度量:
,其中代表样例总数;
对于特殊场景,鉴于对查准率、查全率的重视程度不同,度量的一般形式——;
,其中分为:=1,对应为标准;>1,对应查全率有更大的影响;<1时,对应查准率有更大的影响。
若在个二分类混淆矩阵中综合考察查准率、查全率,有以下两种数据处理的方式:
①先于各个矩阵上分别计算出查准率查全率,再计算均值,就得到“宏查准率”、“宏查全率”和“宏F1”。
②将混淆矩阵的对应元素进行平均,再计算查准率查全率和F1,就得到“微查准率”、“微查全率”和“微F1”。
总结
以上思路来源于《机器学习》这本书前两章的内容,第二章ROC与AUC指标及之后的内容作为初学者较难理解,暂时不做总结。仅代表个人的思路和理解,如有错误欢迎指正!