周志华—机器学习(西瓜书)
1.1 引言
机器学习是研究“学习算法”的学问
机器学习:
-
假设用P来评估计算机程序在某任务T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。
-
经验数据—>学习算法(learning algorithm)—>模型(model)
1.2 基本术语
-
数据集 dataset:色泽 = 青绿 根蒂 = 蜷缩 敲声 = 浊响
色泽 = 乌黑 根蒂 = 稍蜷 敲声 = 沉闷
色泽 = 浅白 根蒂 = 硬挺 敲声 = 清脆
-
示例 instance/样本sample:色泽 = 青绿 根蒂 = 蜷缩 敲声 = 浊响; 一个示例也称为一个特征向量
-
属性attribute/特征feature:色泽;根蒂;敲声
-
属性值attribute value:青绿;乌黑
-
属性空间attribute space:“色泽”,“根蒂”,“敲声”三个坐标轴张成的描述西瓜的三维空间,每个西瓜都可在该空间找到自己的坐标位置;空间中的每个点对应一个坐标向量
-
一般地,令D={x1;x2;...;xm}表示包含m个示例的数据集,每个示例由d个属性描述(如西瓜数据使用了3个属性),则每个示例xi = (xi1;xi2;...;xid)是d维样本空间X中的一个向量,其中xij是xi在第j个属性上的取值(如西瓜一例x32 = 硬挺),d成为样本xi的维数。
-
学习learning/训练training:该过程通过执行某个学习算法完成
-
训练数据 training data:训练过程中使用的数据
-
训练样本training sample:训练数据中的每一个样本成为训练样本
-
假设:hypothesis
-
标记label:“好瓜”:((色泽 = 青绿 根蒂 = 蜷缩 敲声 = 浊响),好瓜),用(xi,yi)表示第i个样例
分类任务classification:预测离散值——把瓜分成好瓜/坏瓜
回归任务regression:预测连续纸——西瓜成熟度0.95,0.37
聚类任务clustering:将训练集的西瓜分成若干组,每组成为一个簇,如“深色瓜”,“浅色瓜”,但这些概念我们不知道,且学习过程中使用的训练样本通常不拥有标记信息。
-
监督学习supervised learning:分类/回归
-
无监督学习unsupervised learning:聚类
机器学习的目标:使学得的模型很好地适用于新样本,学习模型适用于新样本的能力称为泛化能力generalization
一般来说,训练样本越多,越可能获得强泛化能力的模型。
1.3 假设空间
归纳学习>概念学习>布尔概念学习:是好瓜还是不是
第二章 模型评估与选择
2.1 经验误差与过拟合
m为样本数,a为样本分类错误数
-
错误率error rate:E = a/m
-
精度accuracy :1-a/m
-
误差error :学习器的实际预测输出与样本的真实输出之间的差异
-
训练误差training error/经验误差empirical error:学习器在训练集上的误差
-
泛化误差generalization error:学习器在新样本上的误差——我们无法直接获得泛化误差,实际能做的是使经验误差最小化
-
过拟合:学习器把训练样本学的太好了——过拟合无法避免,只能缓解
-
欠拟合:学习能力低下——在决策树学习中扩展分支,在神经网络学习中增加训练轮数
2.2 评估方法
-
测试集testing set:测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似
注:测试集应与训练集尽可能互斥,且测试样本尽量不在训练集中出现
已知一个包含m个样例的数据集 D = {(x1,y1),(x2,y2),...,(xm,ym) },训练集为S,测试集为T
2.2.1 留出法
-
将数据集D划分为两个互斥的集合,一个为训练集S,一个为测试集T
-
单次使用留出法不可靠,一般采用若干次随机划分,重复进行试验后取平均值作为留出法的评估结果
-
常见做法为把2/3~4/5的样本用于训练,其余用于测试
2.2.2 交叉验证法
-
把数据集D分为k个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性
-
每次用k-1个子集的并集作为训练集,余下的子集作为测试集
-
可进行k次训练和测试,最终返回k个测试结果的均值
-
k最常取10,成为10折交叉验证,其他常用5,20;
-
把数据集D划分为k个子集存在许多划分方式,为减小因样本划分不同而引入的差别,k折交叉验证通常要使用随机不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,如“10次10折交叉验证”
-
特例:留一法
2.2.3 自助法
-
相比于留出法和交叉验证法,可以减少训练样本规模不同造成的影响
2.2.4 调参与最终模型
-
调参 parameter tuning
-
给定包含m个样本的数据集D ,在模型评估与选择过程中由于需要留出 一部分数据进行评估测试,事实上我们只使用了一部分数据训练模型.因此,在模型选择完成后,学习算法和参数配置己选定,此时应该用数据集D 重新训练模型.这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用 户的模型.
2.3 性能度量
-
在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判成果
-
模型的好坏是相对的,模型好坏不仅取决于算法和数据,还取决于任务需求
样例集 D= {(X1 , Y1) , (X2 ,Y2), . . . , (Xm, Ym)} 其中yi是示例 Xi的真实标记,学习器预测结果为f(x)
-
回归任务最常用的性能度量是均方误差
2.3.1 错误率与精度
-
错误率:分类错误的样本数占样本总数的比例
-
精度:分类正确的样本数占样本总数的比例
-
对样例集D分类错误率:
-
精度:
2.3.2 查准率,查全率与F1
错误率和精度虽常用,但并不能满足所有任务需求;如对西瓜进行好坏判别,错误率衡量了有多少比例的西瓜被判别错误,但若我们关心的是“挑出的西瓜中有多少比例是好瓜或者“好瓜有多少比例被挑了出来”,错误率不够用了。
对二分类问题,可将样例根据真实类别与学习器预测类别的组合划分为真正例,假正例,真反例,假反例
-
TP+FP+FN+TN = 样例总数
-
查准率P和查全率R:
-
查准率和查全率是一对矛盾的度量,查准率高时查全率低,反之亦然。
eg.若希望将好瓜尽可能多选出来,如果所有西瓜都选上,那么所有的好瓜也都选上了,查准率就会较低;
若希望选出的瓜中好瓜比例高,则可只挑选最有把握的瓜,但这样难免会漏掉不少好瓜,使查全率较低
-
通常只有在一些简单任务中,才能使查全率和查准率都很高。
P-R图:
-
若一个学习器的曲线被另一个完全包裹住,则可断言后者性能优于前者。如A优于C
-
如果曲线发生交叉,则难以断言两者孰优孰劣,只能在具体的查准率/查全率条件下进行比较。
-
平衡点BEP:查准率 = 查全率时的取值,如C点的BEP是0.64,基于BEP的比较,可认为学习器A优于B
-
F1度量:
-
在一些应用中,对查准率和查全率重视度不同;如商品推荐系统中为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。
-
F1 度量的一般形式 --Fß' 能让我们表达出对查准率/查全率的不同偏好,它定义为
-
ß = 1 时退化为标准的 F1; ß>1 时查全率有更大影响 ;ß <1 时查准率有更大影响.