机器学习基础知识
发布日期:2021-10-10 05:31:29 浏览次数:37 分类:技术文章

本文共 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曲线

我们对学习器的预测结果进行排序,排在前面的是学习器认为的“最有可能的”的正例,排在后面的是学习器认为的“最不可能的”正例。

曲线绘制方法:

  1. 横坐标是查全率、纵坐标是查准率;
  2. 按照从“最有可能”到“最不可能”的顺序进行排序,逐个把样本作为正例进行预测,则每次可以计算查全率、查准率(计算方法:每次的分母都是剩下的样本总和)。

评估方法:

  1. 如果一个学习器的P-R曲线被另外一个学习器的P-R曲线完全包住,则可判定后者的性能强于前者;
  2. 如果一个学习器的P-R曲线与另外一个学习器的P-R曲线有交叉,则无法判定两者的性能优略;

其他度量:

  1. 平衡点(Break-Event Point,简称BET),它是查全率=查准率时候的值;

  2. 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+R2PR=+TPTN2TP

  3. 混淆矩阵:

ROC与AUC

很多学习器为每个样本产生一个实值或者概率值的预测值,然后将这个预测值与某个阈值进行比较,大于这个阈值的被划分为正例,否则划分为负例。所以这个概率值的预测与阈值的选择非常重要,直接决定分类器的好坏,决定了分类器的泛化能力。

在实际工作中,根据这个实值或概率值可以对样本的预测结果进行排序,“最可能的正例”排在最前面,“最不可能的正例”排在最后面。这样分类就类似于在这个排序中以某个“截断点”进行截断,断点前面的被判定为正例,断点后面的被判定为负例。

  • 计算方法
  1. 真正例率:
  2. 假正例率:
  • 曲线绘制方法

    1. 横坐标是假正例率,纵坐标是真正例率;
    2. 首先,根据排序器对样本进行排序,使样本基本有序;
    3. 接着,将分类阈值设置为最大,则真正例率与假正例率都是0,在坐标点(0,0)处标记一个点;
    4. 接着,将分类阈值依次设置为每个样本的预测值,依次将每个样本划分为正例;
    5. 接着,设阈值之前的点(x,y),如果是真正例则点为 ( x , y + 1 m + ) (x, y + \frac {1} {m^+}) (x,y+m+1),若为假正例则;
    6. 最后,用线段将相邻点链接;
  • 评估方法

    1.

  • 其他度量

转载地址:https://blog.csdn.net/qq_22054285/article/details/88030046 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:为啥要用位运算代替取模
下一篇:mysql乱码问题解决

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月22日 23时36分28秒