一、机器学习学什么?
研究“学习算法”,让机器“学习”,并从数据中抽象出“模型”,再反过来利用模型提供“判断”。
二、基本术语
三、模型评估与选择
1、经验误差与过拟合
1、错误率:分类错误的样本数占样本总数的比例。E=a/m,m为样本个数,a为分类错误样本个数。
精度:1-a/m,即精度=1-错误率。
误差:实际预测输出与样本的真实输出之间的差异。 “训练误差”或“经验误差”:学习器在训练集上的误差。 “泛化误差”:学习器在新样本上的误差。
2、过拟合:学习能力过于强大。(把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,也就是训练误差很小,那么就会导致泛化性能下降,也就是泛化误差很大。)
欠拟合:学习能力低下,较容易克服。
3、“模型选择问题”:选用什么学习算法?使用哪一种参数配置?
理想方案:对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。
4、P类问题:在多项式时间内可解的问题。
NP类问题(Nondeterminism Polynomial):在多项式时间内“可验证”的问题。也就是说,不能判定这个问题到底有没有解,而是猜出一个解来在多项式时间内证明这个解是否正确。
2、评估方法
-
“测试集”:测试学习器对新样本的判别能力,以测试集上的“测试误差”近似“泛化误差”。
-
三种模型评估方法:留出法、交叉验证法、自助法
1、留出法:
直接将数据集D划分为两个互斥的集合:训练集S和测试集T。(常用样本2/3~4/5用于训练)S用于训练模型,T用于评估测试误差,作为泛化误差的近似。
注意:
1、数据划分过程应减少误差,一般使用保留类别比例的“分层抽样”。
2、单次留出法估计结果不可靠,一般采取若干次随机划分、重复进行试验后的平均值作为留出法的评估结果。
2、交叉验证法/k折交叉验证
m个样本的数据集D分为k个大小相似的互斥子集Di(i=1.2....k),每次用k-1个子集来训练,1个子集来测试。从而进行k次训练和测试。
-> k常取10,也有5、20。
当k=m时,可称为留一法。缺点计算成本高,也未必远比其他方法准确。
3、自助法
给定包含m个样本的数据集D,进行“独立重复实验”采样产生数据集D’。即每次随机从D中挑选一个样本放到D’中, 然后再把样本放回D中,这样该样本在下次采样时仍有可能被采到,重复执行m次,就得到了包含m个样本的D’。D‘用作训练集,D\D’用作测试集。
适用:数据集较小、难以有效划分训练/测试集
4、调参与参数模型
参数调节(调参):在进行模型评估与选择时, 除了要对使用学习算法进行选择,还需对算法参数进行设定。
-
在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用户的模型。
-
为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”。
3、性能度量
衡量模型泛化能力的评价标准,它反映任务需求,作为模型好坏的评价之一(算法、数据)。
1、错误率与精度
2、查准率、查全率与F1
混淆矩阵:
2、查准率、查全率与F1
混淆矩阵:
查准率P和查全率R:
注:一般而言,查准率高,查全率往往偏低;反之亦然。
P-R曲线:
-
曲线以下,面积越大,性能越好。
-
平衡点:查准率=查全率时的取值,性能越高越好。
F1度量(更常用):
F1度量的一般形式----Fβ,能让我们表达出对查准率/查全率的不同偏好,定义:
β=1,标准的F1;
β>1,查全率有更大影响;
β<1, 查准率有更大影响。
“宏”查全率、查准率、F1:
“微”查全率、查准率、F1: