本文是笔者研读西瓜书一二章做的一个总结。由于一二章主要在介绍关于机器学习算法的一些重要的基本概念,因此本文基本都是文字形式输出了。
机器学习:关于在计算机上从数据产生模型的算法,即学习算法。有了学习算法,就可以基于提供的经验数据产生模型,在面对新的情况提供相应的判断(预测)。
第一章 一些基本术语的介绍(我自己觉得不太清楚的,比较重要的几点hhh)
学得模型也称为假设,亦可成为学习器;
根据训练数据是否有标记信息(是否有y),学习任务可大致分为“监督学习”和“无监督学习”两大类,其中分类和回归是监督学习的代表,聚类是无监督学习的代表。
使学得的模型更好地适用于新样本数据的能力,称为“泛化能力”;
任何一个有效的机器学习的算法必有其归纳偏好;否则它被假设空间中看似在训练集上“等效”的假设迷惑,无法产生确定的学习结果;
“没有免费的午餐”定理(NFL)
前提:所有“问题”出现的机会相同(所有问题同等重要),实际情况并非如此
无论多聪明的算法和无论多笨拙的算法的期望总误差相等(可以证明)
第二章 模型评估与选择的一些指标
学习器 在训练集上的误差:训练误差(经验误差)
在新样本上的误差:泛化误差
过拟合:当学习器把“训练样本”学的“太好”,把训练样本自身的一些特点当做了所有潜在样本都有具有的一般性质,导致泛化能力下降
欠拟合:对训练样本的一般性质没学好
评估方法:把样本数据划分为训练集与测试集(尽可能互斥),以测试集的测试误差近似为泛化误差,对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型(也有个调参过程)。
- 怎么分训练集与测试集?
留出法 交叉验证法 自助法(bootstrapping)
tips:前两个方法划分出来的训练集会比原来的样本数据更小,会引入一些因训练样本规模不同而导致的估计误差;而bootstrap这个方法可以避免这个问题,但这种方法改变了初始数据集的分布,会引入估计误差;因此在初始数据量足够时,前两种方法更常用一些。
- 怎么衡量模型泛化能力的评价标准?
回归模型:MSE(均方误差)、RMSE(均方根误差)
分类模型:错误率与精度
——关心问题:挑出的西瓜中有多少比例是好瓜?(在所有被预测成的好瓜中多少比例是真的好瓜?)
查准率(准确率)
——关心问题:所有好瓜中有多少比例被挑出来了?(在所有好瓜中被正确的预测为好瓜?)
查全率(召回率 recall)
P-R曲线:查全率为横坐标,查准率为纵坐标
F1: 查准率与查全率的调和平均值
ROC: 横坐标为假正例率(FPR),纵坐标为真正例率(TPR)
AUC:ROC曲线下的面积