本文共 2646 字,大约阅读时间需要 8 分钟。
机器学习技巧
文章目录
数学术语
- 点积、内积
- 可列可加性、有限可加性
基本知识
- 监督学习、非监督学习、半监督学习、强化学习:分类与回归是监督学习的代表;聚类是非监督学习的代表;
- 生成模型、判别模型
- 分类、回归:预测的是离散值还是连续值;
- 模型:泛化能力
- 模型、策略、算没法
- 欠拟合、过拟合
- 假设空间、样本空间:离散 OR
异常情况
- 特征缺失;
- 预测数据的特征值从未出现过的情况;
经验误差与过拟合
- 错误率(error rate):
- 精度(accuracy):
- 误差:训练误差、经验误差、泛化误差
- 过拟合(overfitting)、欠拟合(underfitting)、NP问题
评估方法
- 训练样本集、测试样本集(testing set)、测试集->测试误差->泛化误差,测试样本数据是真实分布中独立同分布采样、尽量与训练集互斥;
针对多轮的训练/测试集,我的理解是线性的多轮的模型迭代,这样模型可以将所有的数据的特性学到。
留出法
留出法(hold-out)将样本数据集划分为两个互斥的集合,其中一个集合用作训练,另外一个集合用作测试。集合D,训练集S,测试集T,$D = S \cup T, S \cap T = \emptyset $。
需要注意的是,训练集与测试集的数据划分要尽量的保持数据分布的一致性,避免因为数据划分而引入的额外的偏差对最终的模型产生影响
分层采样,正例与负例的比例
大约三分之二到五分之四的样本数据用作训练,其余的样本数据用作测试;
交叉验证法(cross validation)
将数据集D划分为K个大小相似的互斥子集,每个子集都是通过分层采样得到,保持数据分布的一致性。
K - 1个子集作为训练集,余下的一个子集作为测试集合。进行K次迭代。
K折交叉验证(k-fold cross validation),k最常见的取值是10,此时成为10折交叉验证,其他常见的k值包括5、20等;
比如:10次10折交叉验证;
自助法
自助法(bootstrapping)是一个比较好的解决方案,他直接以自助采样法(bootstrap sampling)为基础。m个样本中,放会采样多次。
调参与最终模型
比如,步长的选择[0,0.2]范围内以0.05作为步长,则实际要评估的候选参数有5个,最终从这5个候选值中产生选定值。这种方式肯定不是最佳的,是在性能的角度进行的考量。
性能度量(performance measure)
基本概念
-
错误率与精度:互斥的关系、离散性公式、连续型公式;
-
查准率与查全率:一个老农在卖西瓜,不断的吆喝,“来来买西瓜了!”。此时来了一个土豪,土豪千金一掷说:“来,把这个车里面所有的甜的西瓜给我跳出来,我全要了”。老农一看,高高兴兴的去挑选甜西瓜了,不大一会,就跳出了大半车的西瓜。在挑选的过程中,主观的认为挑选出的西瓜都是甜瓜,但是客观情况下挑出来的西瓜有的是甜的,有的不甜。主观的认为,剩下的小板车西瓜都是不甜的,但是客观情况下剩下的西瓜有的是甜的,有的是不甜的。
- TP真正例(true positive):挑出来的西瓜中,主观的认为是甜的,客观实际也是甜的西瓜;
- FP假正例(false positive):挑出来的西瓜中,主观的认为是天天,但是客观实际是不甜的西瓜;
- TN真反例(true nagative):未选出的西瓜中,不甜的西瓜;
- FN假反例(false nagative):未选出的西瓜中,甜的西瓜;
P、N主观猜测;哈,哲学;T、F是对P、N的主观猜测的结果显示;
查准率P
$ P = \frac {TP} {TP + FP}$
查全率R
R = T P T P + F N R = \frac {TP}{TP + FN} R=TP+FNTP
查准率与查全率是一对矛盾的考量。一般来说,查准率高的时候,查全率比较低。比如如果想甜瓜尽快多的选出来,那么可以把所有的西瓜都拿出来,但是这样查准率就会低。如果希望选出的瓜都是好瓜,那么就会尽量挑选有把握的瓜,这样肯定会漏掉不少的甜瓜。
P-R曲线
我们对学习器的预测结果进行排序,排在前面的是学习器认为的“最有可能的”的正例,排在后面的是学习器认为的“最不可能的”正例。
曲线绘制方法:
- 横坐标是查全率、纵坐标是查准率;
- 按照从“最有可能”到“最不可能”的顺序进行排序,逐个把样本作为正例进行预测,则每次可以计算查全率、查准率(计算方法:每次的分母都是剩下的样本总和)。
评估方法:
- 如果一个学习器的P-R曲线被另外一个学习器的P-R曲线完全包住,则可判定后者的性能强于前者;
- 如果一个学习器的P-R曲线与另外一个学习器的P-R曲线有交叉,则无法判定两者的性能优略;
其他度量:
-
平衡点(Break-Event Point,简称BET),它是查全率=查准率时候的值;
-
F1值|F1度量:
F 1 = 2 ∗ P ∗ R P + R = 2 ∗ T P 样 本 总 数 + T P − T N F1 = \frac {2 * P * R} {P + R} = \frac {2 * TP} {样本总数 + TP - TN} F1=P+R2∗P∗R=样本总数+TP−TN2∗TP
-
混淆矩阵:
ROC与AUC
很多学习器为每个样本产生一个实值或者概率值的预测值,然后将这个预测值与某个阈值进行比较,大于这个阈值的被划分为正例,否则划分为负例。所以这个概率值的预测与阈值的选择非常重要,直接决定分类器的好坏,决定了分类器的泛化能力。
在实际工作中,根据这个实值或概率值可以对样本的预测结果进行排序,“最可能的正例”排在最前面,“最不可能的正例”排在最后面。这样分类就类似于在这个排序中以某个“截断点”进行截断,断点前面的被判定为正例,断点后面的被判定为负例。
- 计算方法
- 真正例率:
- 假正例率:
-
曲线绘制方法
- 横坐标是假正例率,纵坐标是真正例率;
- 首先,根据排序器对样本进行排序,使样本基本有序;
- 接着,将分类阈值设置为最大,则真正例率与假正例率都是0,在坐标点(0,0)处标记一个点;
- 接着,将分类阈值依次设置为每个样本的预测值,依次将每个样本划分为正例;
- 接着,设阈值之前的点(x,y),如果是真正例则点为 ( x , y + 1 m + ) (x, y + \frac {1} {m^+}) (x,y+m+1),若为假正例则;
- 最后,用线段将相邻点链接;
-
评估方法
1. -
其他度量
转载地址:https://blog.csdn.net/qq_22054285/article/details/88030046 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!