机器学习初探
一、绪论
1、一些概念和基本术语:
机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能,研究的主要内容是在计算机上从数据中产生“模型“算法,即”学习算法“,对于新的情况给出判断。
”训练“、”训练数据“、”训练样本“、”训练集“、”假设“、”真相“、“标记”、“标记空间”;
“分类”(离散值)、“二分类”、“多分类”、“回归”(连续值)、“聚类”
“测试”、“测试样本”
“监督学习”(分类、回归)、“无监督学习”(聚类)、半监督学习
“泛化”能力、获得的每个样本“独立同分布”
2、假设空间
科学推理的基本手段:归纳和演绎。归纳:特殊到一般;演绎:一般到特殊。
学习过程可以看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到宇训练集“匹配”的假设,即能够将训练集判断正确的假设。
3、归纳偏好
机器学习算法在学习过程中对某种类型假设的偏好,成为归纳偏好。任何一个有效的机器学习算法必有其归纳偏好。“学习算法自身在对假设选择的价值观”。
“奥卡姆剃刀”原则:若有多个假设与观察一致,选择最简单的一个。
“没有免费的午餐定理”
4、发展历程
学习期
符号主义学习:决策树和基于逻辑的学习;
连接主义学习:基于神经网络;
统计学习:支持向量机和核方法。
二、模型评估与选择
1、经验误差与过拟合
-
错误率&误差:
-
错误率:分类错误的样本数占样本总数的比例
误差:学习器的实际预测输出与样本的真实输出之间的差异
-
过拟合&欠拟合
-
过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点当作所有样本的一般性质,导致泛化性能下降
- 应对方法(无法避免):优化目标加正则项、early stop
-
欠拟合:通常由学习能力底下造成,训练样本的一般性质尚未学好
- 应对方法:决策树——拓展分支,神经网络——增加训练轮数
评估方法
-
留出法:
直接将数据集划分为两个互斥集合
训练/测试集划分要尽可能保持数据分布的一致性
一般若干次随机划分,重复实验取平均值
训练/测试样本比例通常为2:1~4:1
-
交叉验证法:(k折交叉验证)
将数据集分层采样划分为K个大小相似的互斥子集,每个用K-1个子集的并集作为训练集,余下的子集作为测试集,最终返回K个测试结果的均值,K最常用的取值是10。
假设数据集D包含m个样本,若令k=m则得到留一法:
- 不受随机样本划分方式的影响
- 结果往往比较准确
- 当数据集比较大时,计算开销难以忍受
-
自助法:
以自主采样法为基础,对数据集D有放回采样m次得到训练集D’,D/D’用作测试集。
- 实际模型与预期模型都使用m个训练样本;
- 约有1/3的样本没在训练集中出现;
- 从初始数据集中产生多个不同的训练集,对集成学习有很大的好处;
- 自助法在数据集较小、难以有效划分训练/测试集时很有用;由于改变了数据集分布可能引入估计偏差,在数据量足够时,留出法和交叉验证法更常用。
性能度量
性能度量是衡量模型泛化能力的评价标准,反映了任务需求;使用不同的性能度量往往会导致不同的评判结果。
-
回归任务最常用的性能度量是*“均方误差”*
-
对于分类任务,错误率和精度是最常用的两种性能度量
-
信息检索、Web搜索等场景中经常需要衡量正例被预测出来的比率或者预测出来的正例中正确的比率 ,此时查全率 和查准率 比错误率和精度更适合。
(查准率和查全率是一对矛盾的度量)
查准率—查全率曲线(PR曲线)可以直观地显示出学习器在样本总体上的查全率、查准率。
- PR图平衡点:查准率=查全率
- F1度量
- Fβ(更一般的形式)
-
ROC曲线
以”假正例率“为横轴,以”真正例率“为纵轴可得到ROC曲线,全称”受试者工作特征“
- 若一个ROC曲线被另一个ROC曲线完全”包住“,则后者性能优于前者;否则如果曲线交叉,则根据ROC曲线下面积大小进行比较,即”AUC值“。
- AUC值衡量了样本预测的质量
-
代价敏感错误率
现实任务中不同类型的错误所造成的后果很可能不同,为了权衡不同类型错误所造成的不同损失,可为错误赋予”非均等代价“。
- 在非均等代价下,不再最小化错误次数,而是最小化”总体代价“。
-
代价曲线
- 在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而”代价曲线“可以。
- 代价曲线的横轴是取值为[0,1]正例概率代价,纵轴是取值为[0,1]的归一化代价。
比较检验
- 二项检验—假定测试样本从样本总体分布中独立采样而来;
- t检验—面对多次重复留出法或交叉验证法进行多次训练/测试时可用该法;
- 交叉验证t检验
- 5*2交叉验证法
- McNemar检验
- Friedman检验—在一组数据集上对多个算法进行比较
- Nemenyi后续检验—计算平均序值差别的临界阈值
- Friedman检验图
偏差与方差
”偏差-方差分解“可以用来帮助解释泛化性能。
- 期望输出与真实标记的差别称为偏差;
- 泛化误差可以分解为偏差、方差与噪声之和
- 偏差度量了学习算法期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
- 方差度量了同样大小训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
- 噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差下界,刻画了学习问题本身的难度
- 泛化性能由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。
- 一般来说,偏差与方差是有冲突的,称为”偏差-方差窘境“