机器学习(一)
第1章 绪论
1、基本概念和术语
机器学习是致力于通过计算的手段,利用数据来改善系统自身的性能的学科。
属性:反映事件或对象在某方面的表现或性质的事项。例如每条记录中的“色泽”、“根蒂”、“敲声”就是西瓜的属性
属性空间:属性张成的空间。例如我们把"色泽" “根蒂” "敲声"作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间就是属性空间
特征向量:每个西瓜都可在这个空间中找到自己的坐标位置。由于空间中的每个点对应一个坐标向量,因此我们也把这个坐标向量称为一个特征向量。
三者的关系总结:将每个属性作为一个坐标轴,多个属性就多个坐标轴,从而形成一个描述物体的属性空间。此空间中的每个样本对应一个点,每个点都有一个坐标向量,把这个坐标向量称为特征向量。
如果希望学得一个能帮助我们判断没剖开的是不是"好瓜"的模型,仅有前面的示例数据显然是不够的要建立这样的关于"预测" 的模型,我们还需获得训练样本的"结果"信息,例如"((色泽=青绿;根蒂=蜷缩;敲声=浊响),好瓜)" 。
标记:关于示例结果的信息,比如上面例子中的 “好瓜” 就属于标记。
样例:拥有了标记信息的示例,则称为样例。一般地,用{xi,yi}表示第 i 个样例,其中xi是特征向量,yi是这个样本的标记。
机器学习的目标是希望通过对训练集 {(x1,y1),(x2,y2)…} 进行学习,建立一个从输入空间 X 到输出空间 Y 的映射 。
根据预测结果的类型,可以将机器学习任务分为二类。
**分类:**预测结果的类型是离散值,例如"好瓜",“坏瓜”;
**回归:**预测结果的类型是连续值,例如西瓜的成熟度0.37、0.95。
根据训练数据是否拥有标记信息,学习任务也可大致划分为两大类。
**监督学习(supervised learning):**训练数据有标记信息,其中分类与回归属于监督学习。
**无监督学习(unsupervised learning):**训练数据没有标记信息,代表有聚类。
归纳偏好(inductive bias):机器学习算法在学习过程中对某种类型假设的偏好。任何一个有效的机器学习算法必须有其归纳偏好,否则它将被假设空间中刊社在训练集上等效的假设所迷惑,而无法产生确定的学习结果。
第2章 模型评估与选择
2.1 经验误差与过拟合
错误率(error rate):分类错误的样本占样本总数的比例
精度(accuracy):1 - 错误率
误差(error):学习器的实际预测输出与样本的真实输出之间的差异
训练误差(training error) | 经验误差(empirical error):学习器在训练集上的误差
泛化误差(generalization error):在新样本上的误差
2.2 评估方法
我们无法直接获得泛化误差从而对学习器进行评估,而训练误差又由于有过拟合现象的存在不适合作为标准。为了对模型进行评估,我们需要用一个测试集来测试学习器对新样本的判别能力,用测试集上的测试误差来作为泛化误差的近似。
测试样本是从样本中独立同分布采样而得,我们希望取得的测试集要尽可能的和训练集互斥,即测试集尽量不在训练集中出现,未在训练过程使用过。
这一部分内容主要就是介绍了几种可以用来将测试集与训练集进行分离的方法。
2.2.1 留出法
“留出法”直接将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集 S ,另一个作为测试集 T ,即 D = S ∪ T , S ∩ T = ∅ 。在 S 上训练出模型后,用 T来评估其测试误差,作为对泛化误差的估计。
注意一:训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。使用“分层采样”(stratified sampling)(保留类别比例的采样方式)。
注意二:单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
通常将大约 2 / 3 ∼ 4 / 5 的样本用于训练,剩余样本用于测试。
2.2.2 交叉验证法
交叉验证法(cross validation)的具体步骤:
通过分层采样的方法将数据集 D 划分为 k 个大小相似的互斥子集(注意分层采样之后的每个子集数据分布具有一致性)
每次用 k − 1个子集的并集作为训练集,余下的那个子集作为测试集。显然,这样就可以获得 k 组不同的训练集+测试集组合,从而进行 k次训练和测试,最终返回的是这 k 个测试结果的均值。
同留出法,将数据集 D划分为 k 组有多种不同的方式。为减少由于数据集划分的不同而引入的差别, k 折交叉验证通常要随机使用不同的划分重复 p 次,最终的结果是这 p 次 k 折交叉验证结果的平均值(常见的为10次10折交叉验证)。
交叉验证法评估结果的稳定性和保真性在很大程度上取决于 k 的取值,通常把交叉验证法称为“ k 折交叉验证”(k-fold cross validation)。最常用的取值为10(还有5、20等),此时称为10折交叉验证。
2.2.3 自助法
在数据集较小、难以有效划分训练/测试集时很有用。对集成学习等方法有很大好处。
2.3 性能度量
前面节讲的是估计泛化误差的方法,而这一节讲的是衡量模型泛化能力的标准,这两个部分是对学习器泛化性能进行评估所必需的。在对比不同模型的性能时,使用不同的性能度量往往会导致不同的评判结果,这意味着模型的评价是相对性能度量而言的。而性能度量则是根据任务需求来选择的。
2.3.1 错误率与精度
错误率和精度是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务。错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。对样例集 D,分类错误率定义为
精度则定义为
2.3.2 查准率,查全率
对于二分类问题,将样例根据其真实类别与学习器预测类别的组合,划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,分别用 T P 、 F P 、 T N 、 F N 表示其对应的样例数,则 T P + F P + T N + F N = 样例总数 。分类结果的“混淆矩阵”(confusion matrix)如表 2.1 所示。
查准率 P 与查全率 R 分别定义为
查准率和查全率是一堆矛盾的度量,一般来说,查准率越高,查全率往往偏低;查全率高时,查准率往往偏低。
根据学习器的预测结果(一般为一个实值或概率)对测试样本进行排序,将最可能是“正例”的样本排在前面,最不可能是“正例”的排在后面,按此顺序逐个把样本作为“正例”进行预测,每次计算出当前的P值和R值,以查准率为纵轴,查全率为横轴作图。我们就可以得到查准率和查全率曲线,简称为“P-R曲线”。如下图所示:
2.4 比较检验
本部分主要介绍两种最基本的假设检验,然后介绍几种常用的机器学习性能比较方法。
现实任务中我们并不知道学习器的泛化错误率,只能获知其测试错误率。两者存在一些不同,但我们可根据测试错误率估推出泛化错误率的分布。
假设检验
交叉验证t 检验
McNemar 检验
Friedman 检验与 Nemenyi 后续检验
总结
参考博客
https://www.jianshu.com/p/ff0c25dd98bf
https://blog.csdn.net/weixin_45056423/article/details/92398144?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242
https://blog.csdn.net/dagongsmallguy/article/details/84714227?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242