第一章 绪论
1. 基本知识
- 这些数据集将被用来训练或者测试模型,训练模型的过程被称为学习,测试模型的过程被称为测试。
- 模型学习到的数据与结果之间的潜在规律被称为假设,所有可能的规律的集合被称为假设空间,而客观世界中,数据与结果的真实规律被称为真相(ground-truth)
- 学习任务可以被分为两类有监督学习,其中有分类,回归。无监督学习,其中有聚类。
- 当模型预测的数值为离散值时,这种学习任务被称为分类;当模型预测的数值为连续值时,这种学习任务被称为回归;
- 将无标签的样本各自依据相似度,分别聚成一个个小群(称为簇),这就是聚类。聚类可以使得我们人类发现一些不知道的知识。
- 学得模型适用于新样本的能力被称为泛化能力。
第二章 模型评估与选择
2.1 误差与过拟合
-
经验误差和泛化误差:“经验” = ”训练集数据”, “泛化” = “面对新样本”
-
过拟合:模型将训练样本学习得太深入了,导致在训练集上表现非常好,但是泛化性能却很差。
例如,识别一个图像是否是猫,训练样本中只出现了黑猫白猫银猫,我们只需要模型学习出判断猫的形状。而模型学习得过于深入,其还进一步认为猫只有黑色白色银色。当模型遇到一个新样本橘猫,就出错了。
- 欠拟合:模型压根还没有学明白该学的知识。
- 过拟合和NP问题:机器学习的问题往往是NP难度以上。我们训练出的模型也就是针对前面的问题而提出的一个解。若我们找到了一个算法来完全去除过拟合,进而直接训练出了一个最佳模型,也就是说我们在多项式时间内解决了NP问题,P=NP。而解决NP问题是一个普通算法做不到的,故无法完全去除过拟合问题。
2.2 划分数据集进而评估泛化误差
没有新样本来告诉我们模型的泛化误差,所以我们需要从原始数据集中划分出一些元素作为测试集来评估。
将原始数据记为totalSample,我们需要对其进行划分,记为 t o t a l S a m p l e = t r a i n + t e s t totalSample = train+ test totalSample=train+test。
设totalSample是从样本空间中随机采样得到的,模型从其数据分布中学习到规律。
划分需要遵守的原则:
-
测试集,训练集二者 与 totalSample同分布。
-
测试集 和 训练集 互斥。显然的,若是考题见过,那就不是衡量泛化能力了。
有下面三种方法:
1. hold-out法
直接以某比例a : b,顺序地划分出训练集和测试集。例如前80%作为训练集。
为了使得上面提到的三个集合尽可能地同分布。将采取两种操作:保留类别比例的分层采样; 多次划分,取泛化误差的平均值。
窘境: totalSample,train, test是难以同分布的。我们也压根不确定怎么样才是同分布。
2. Cross Validation
下面清晰地展示了一次 k折交叉验证的过程。也就是划分为k个集合,每次用一个子集作为测试集。
为了消除一次交叉验证中划分方式带来的误差(即测试集和训练集不同分布带来的误差), 我们将【随机划分数据集,然后进行一个k折交叉】,如此重复p次,将这p次平均以消除 划分带来的误差。此行为称为p次k折交叉验证。
3. 自助法
totalSample含有m个样本,我们从totalSample中 有放回地采样m次,得到与原始数据等大的train训练集。
统计即知,m次采样中始终未被采样到的概率是(1+1/m)^m, 数据集规模m很大时,概率为36.8%。也就是原始数据中有36.8%没有出现在训练集中,我们可以取这些数据作为测试集。
简单说:原始数据集 D D D, 随机采样出训练集 D ′ D' D′,然后未采样的作为测试集 D D D\ D ′ D' D′.
缺点:随机采样出的 D ′ D' D′,其分布或许会与 D D D 相差很大,比留出法和交叉验证法二法更大地改变了数据的分布。
故数据充足的时候,还是用前两种方法好。
最后本节还提了调参,超参数的选取,由于其实数的稠密性,我们只能选取超参数范围和变化步长来作有限次数的试验,然后选取表现最佳的超参数。
2.3 泛化能力具体量化
误差:回归任务中的均方误差,分类任务中的误分类错误率。我们先只关注分类任务。
1. 查准率precision,召回率
华强去买瓜,他用人工智能对瓜的好坏进行了预测,然后将人工智能预估的好瓜全部都买了下来。
买了下来 = 预估是好瓜。
用首字母 ( T / F ) (T/F) (T/F)表示 瓜本质是否符合预期,第二字母 ( P / N ) (P/N) (P/N)表示 瓜是否被买了下来(也就是瓜是否被人工智能预期为好瓜),
于是样本可以被分为 T P TP TP(买下的好瓜), F P FP FP(买下的烂瓜), T N TN TN(没买的烂瓜), F N FN FN(没买的好瓜)
下面介绍三个概念,【准确率Acc,查准率P,召回率R】:
A
c
c
u
r
a
c
y
=
猜对的瓜
全部瓜数
=
T
P
+
T
N
Total
Accuracy = \frac{\text{猜对的瓜}}{\text{全部瓜数}} = \frac{TP + TN}{\text{Total}}
Accuracy=全部瓜数猜对的瓜=TotalTP+TN
P
r
e
c
i
s
i
o
n
=
买下的好瓜
总共买的瓜
=
T
P
T
P
+
F
P
Precision = \frac{\text{买下的好瓜}}{\text{总共买的瓜}} = \frac{TP}{TP+FP}
Precision=总共买的瓜买下的好瓜=TP+FPTP
R
e
c
a
l
l
=
买下的好瓜
好瓜
=
T
P
T
P
+
F
N
Recall = \frac{\text{买下的好瓜}}{\text{好瓜}} = \frac{TP}{TP+FN}
Recall=好瓜买下的好瓜=TP+FNTP
PR自然越高越好,但二者不可兼得。
只买最像好瓜的瓜,那么查准率等于1,但召回率很低。什么瓜都买了,那么召回率等于1,但查准率很低。【奇怪的是,极端的找回率查准率应该都不会变为0呀,为啥书上的是0?】
2. F 1 F_1 F1 和 F β F_\beta Fβ
面临模型选择时,我们选择P和R都更高的模型。 当一个模型的PR不是碾压另一个模型时,我们需要综合考量PR,
F 1 F_1 F1 和 F β F_\beta Fβ 就是 P和R的调和平均和加权调和平均。
3. ROC 和 面积AUC
ROC横轴是FPR,也就是坏瓜找回率;横轴是TPR,也就是好瓜找回率(也就是常见默认的召回率);
从左往后,就是逐渐下调阈值要求,刚开始的起点(0, 0), 也就是一个瓜都没有达到人工智能预估好瓜的标准。
下调一点阈值,此时预估了一个好瓜了,买下这个瓜。然后查验这瓜真是好瓜,此时好瓜找回率上升一格,坏瓜召回率不动。
下调一点阈值,此时又预估了一个好瓜了,买下这个瓜。然后查验这瓜真是好瓜,此时好瓜找回率上升一格,坏瓜召回率不动。
下调一点阈值,此时又预估了一个好瓜了,买下这个瓜。然后查验这瓜是坏瓜,此时好瓜找回率不动,坏瓜召回率右移一格。
(老版电子书,排序中第三瓜就是坏瓜,新版纸质书,排序中第四瓜才是坏瓜)
显然若是可以好瓜召回率一直上升,坏瓜召回率一直不动,这就说明我们人工智能排序质量非常高,更可能是好瓜的,的确放在前面。
ROC的是否右移就展示了排序质量的坏好。
两个模型的比较:若是一个模型的ROC完全包住了另一个,则前者显然更优;否则就比较面积AUC吧。
最后:第一次写博客,感觉挺累的,但写完了还是挺轻松开心的,希望能越写越好吧。第一章借鉴了不少我的好兄弟的总结,感谢好兄弟!
展示了排序质量的坏好。
两个模型的比较:若是一个模型的ROC完全包住了另一个,则前者显然更优;否则就比较面积AUC吧。
最后:第一次写博客,感觉挺累的,但写完了还是挺轻松开心的,希望能越写越好吧。第一章借鉴了不少我的好兄弟的总结,感谢好兄弟!