一、绪论:
1. 算法和模型的区别:
- 算法:从数据中学得的“模型”的具体方法。
- 模型:算法产出的结果。(比如某个一元一次函数等)有时称为“学习器”,看作是学习算法在给定数据和参数空间上的实例化。
2.基本术语:
-
样本(示例):是关于一个事件或对象的描述。计算机擅长做数学运算,因此,我们将某一事物的属性和特征唯一刻画出来,用向量的各个维度描述各个特征。
例如,如果用色泽、根蒂和敲声这 3 个特征来刻画西瓜,那么一个“色泽青绿,根蒂蜷缩,敲声清脆”的西瓜用向量来表示即为 x =(青绿; 蜷缩; 清脆) 。
向量中的元素用分号“;”分割时表示此向量为列向量,用“,”分割表示为行向量。
当然,我们肯定不能笼统的把一个西瓜只用文字向量描述,肯定还要加上对应的数值。
一般,我们把对特征处理的相关工作称为:特征工程
-
样本空间:既然我们把样本用特征向量表示出来,那么我们就必须要给这些向量分配一定的空间,通常用大写的X 表示。
-
数据集:通常用集合表示,集合D表示包含m个样本的数据集
-
**标识:机器学习的本质就是在学习样本在某个方面的表现是否存在潜在的规律。**例如在学习西瓜的好坏时,“好瓜”和“坏瓜”便是样本的标记。一个完整的样本通常表示为 (x, y)。
-
机器学习的分类:
- 当标记取值为离散型时,称此类任务为分类 ,
- 例如学习西瓜是好瓜还是坏瓜、学习猫的图片是白猫还是黑猫等。当分类的类别只有两个时,称此类任务为“二分类”,通常称其中一个为“正类”,另一个为“反类”或“负类”;(通常,正类记为1,反类记为0)当分类的类别超过两个时,称此类任务为“多分类”。
- 当标记取值为连续型时,称此类任务为**“回归”**,例如学习预测西瓜的成熟度0.95、学习预测未来的房价等,我们通常把标识的取值范围设置为整个实数域R,即 Y = R。
-
学习任务的分类:
- 监督学习:分类和回归
- 无监督学习:聚类
-
泛化:机器学习的目标:根据已知对未知做出尽可能准确的判断,因此对未知事物判断的准确与否才是衡量一个模型好坏的关键,称为泛化能力
“数据决定模型的上限,而算法则是让模型无线逼近上限”
- 数据决定模型效果的上限:
- 数据量:数据量越大模型效果越好
- 特征工程:对特征数值化越合理,特征手机越全越细致,模型效果越好。比如,我们要区分亚洲人和非洲人,实际上只靠肤色这一特征就能区分,而其他的年龄等,便不需考虑。
- 算法则是让模型无限逼近上限:
- 当数据工作准备好之后,我们就可以选择合适的算法进行训练,从而得到模型,效果越好的算法自然越逼近上限,也就越接近真相。
3. 归纳偏好
不同的机器学习算法有着不同的偏好,
NFL定理:我们考虑算法的优劣必须匹配具体的问题,脱离问题谈算法,毫无意义。
二、模型评估与选择
1.经验误差与过拟合
- 错误率:分类错误的样本数占样本总数的比例 E=a/m
- 精度:1-a/m,即1-错误率
- 误差:实际预测输出和样本的真实输出之间的差异
- 训练(经验)误差:学习器在训练集上的误差
- 泛化误差:在新样本上的误差
有时我们会得到在所有训练样本上分类都正确,即错误率为0,分类精度为100%
但是almostly, 这样的学习器实际泛化误差都很大。
我们想要的,是在新样本上能表现得很好的学习器,但是,我们有时会把样本训练的太好,以至于把训练样本的一些特点当做的新样本的一般性质,称为**“过拟合”**
- 导致过拟合的原因:
- 学习能力太过强大
- 过拟合无法避免,只能尽量减小
2.模型选择的评估方法
-
通常,用实验测试对学习器的泛化误差进行评估选择,所以,需准备一个测试集,用测试集上的测试误差作为泛化误差的近似。(注:测试集应尽量与训练集互斥)
-
留出法:直接将数据集D划分为两个互斥的集合,一部分用于训练模型,另一部分作为测试集,进行泛化误差的估计。将大约2/3~4/5的样本用于训练,剩余样本用于测试。
-
交叉验证法:将数据集D划分为K个大小相似的互斥子集,由分层采样得到,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,可以获得K组训练/测试集,最终返回k个测试结果的均值。(k=10时最常用,称为k折交叉验证)
-
自助法:以自助采样为基础,每次随机从数据集中选出一个,放到数据集D‘中,值得注意的是,每次都要把抽取的数据再放回原来的数据集中,使之,能够再次被找到,当我们重复m次时,就得到了一个含有m个数据的数据集D’。
显然,由于我们前面将每次抽样的数据又放回了D中,那意味着,D‘中可能出现一个样本多次出现的情况,也会出现,一部分样本不出现的情况。
由概率论的知识,我们可以做出一个简单的估计,样本在m次采样中不被采集到D’的概率是
-
-
性能度量
-
对于同一个算法,使用不同的性能度量会导致不同的评判结果,所以每个模型的好坏都是相对的。
-
错误率、精度、查准率、查全率、F1、ROC 和 AUC
-
错误率与精度
- 错误率是分类错误的样本数据占样本总数的比例
- 精度是分类正确的样本数据占样本总数的比例
-
查准率(precision)、查全率(recall)与F1
-
查准率:选出的瓜中有多少比例西瓜是好瓜
-
查全率:所有好瓜中有多少比例被挑出来了
-
True Positive(TP):真正类。样本的真实类别是正类,并且模型识别的结果也是正类。
False Negative(FN):假负类。样本的真实类别是正类,但是模型将其识别为负类。
False Positive(FP):假正类。样本的真实类别是负类,但是模型将其识别为正类。
True Negative(TN):真负类。样本的真实类别是负类,并且模型将其识别为负类。
查准率 P:被学习器预测为正例的样例中有多大比例是真正例。(所有识别为正例(真正的可能为正例或者反例)的里面真正正确的比例)
查全率 R:所有正例当中有多大比例被学习器预测为正例。(所有本来为正例的里面(可能识别为正例或者反例)识别为正例的比例)
查全率-查准率曲线(P-R曲线)
-
-
-
怎么看P-R曲线
-
凡是一个学习器的曲线被另一个学习器的曲线完全包住,比如A就比C性能优良
-
但是当两条曲线发生交叉,我们就没法简单的判断哪个性能更好,
所以,我们设置平衡点(BEP)这个概念,当查准率=查全率时,我们画一个y=x直线,找到交点对应的值,通过比较BEP点来判断学习器的优劣。
但是使用最多的还是F1度量
-
-
混淆矩阵
-
如有150个样本数据,预测为类I,类II,类III 各为50个。分类结束后得到的混淆矩阵为:
-
每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量。
第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第一行第二列的2表示有2个实际归属为第一类的实例被错误预测为第二类。