机器学习/数据挖掘知识整理

本文详细梳理了机器学习和数据挖掘中的核心概念,包括常用排序算法、正负样本不平衡处理方法、过拟合与欠拟合的解决策略、向量相似度计算方法以及模型评价指标。重点讨论了数据增广、模型参数与超参数的区别,以及如何通过早停、正则化等方法防止过拟合。此外,还介绍了如何利用权重设置、集成思想应对样本不平衡问题,并探讨了余弦相似度、杰卡德相似度等相似度计算方法。最后,深入剖析了模型评价中的准确率、查准率、查全率、F1分数、ROC曲线与AUC值的含义和应用。
摘要由CSDN通过智能技术生成

目录

一、常用排序算法

二、正负样本不平衡处理方法总结

三、过拟合和欠拟合

1、过拟合

2、欠拟合

四、向量的相似度计算常用方法

五、模型参数和超参数

六、模型评价

1、准确率Accuracy、查准率(精确率)precision、查全率(召回率)recall、F1:

2、ROC与AUC

3、KS(洛伦兹曲线)评分


一、常用排序算法

 

二、正负样本不平衡处理方法总结

原始数据中经常存在正负样本不均衡,比如正负样本的数据比例为100:1.

常用的解决办法有:

1、数据上处理

2、权重设置

3、集成的思想

4、转化成异常检测问题

5、利用深度学习:自编码器.

6、确定适合样本不平衡问题的评价指标

1、数据上处理

1.1、数据源:

  搜集更多的数据来使数据达到平衡,但是一般出现样本不平衡问题,就是不太可能以一种简单的方法获取到更多的样本(在金融领域,可以思考坏用户的定义是否过于严格)

1.2、数据增广:

       目前数据增广主要应用于图像领域,主要包括:水平/垂直翻转,旋转,缩放,裁剪,剪切,平移,对比度,色彩抖动,噪声等

1.3、欠采样(下采样):

  随机欠采样:随机去除多数类一些的样本

  缺点:会造成信息缺少 or 最后模型的欠拟合。解决方法:第一种方法叫做EasyEnsemble,利用模型融合的方法(Ensemble):多次下采样(放回采样,这样产生的训练集才相互独立)产生多个不同的训练集,进而训练多个不同的分类器,通过组合多个分类器的结果得到最终的结果。第二种方法叫做BalanceCascade,利用增量训练的思想(Boosting):先通过一次下采样产生训练集,训练一个分类器,对于那些分类正确的大众样本不放回,然后对这个更小的大众样本下采样产生训练集,训练第二个分类器,以此类推,最终组合所有分类器的结果得到最终结果。第三种方法是利用KNN试图挑选那些最具代表性的大众样本,叫做NearMiss,这类方法计算量很大。

1.4、过采样(上采样):

  1.4.1、 随机过采样:随机增加少数类的一些样本

  缺点:因为随机过采样是简单的对初始样本进行复制采样,这就使得学习器学得的规则过于具体化,不利于学习器的泛化性能,造成过拟合。解决方法:每次生成新数据点时加入轻微的随机扰动,经验表明这种做法非常有效

  1.4.2、样本合成( SMOTE):在随机过采样上进行了改进

        通过组合以有的样本的各个feature从而产生新的样本。一种简单的方法是从各个feature中随机算出一个已有值,然后拼接成一个新样本,这种方法增加了样本数目较少的那一类样本的数目,作用与上采样方法类似,不同点在于上采样是纯粹的复制样本,而合成样本是随机选取拼接得到新的样本。具有代表性的方法 是SMOTE,利用了K近邻的思想。

SMOTE算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的k个最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。

算法流程:

     (1)对于少数类中每一个样本a,以欧式距离为标准计算它到少数类样本集中所有样本的距离,得到k个近邻样本;

     (2)根据样本不平衡比例设置一个采样比例,以确定采样倍率N,对于每一个少数类样本a,从其k近邻中随机选择若干个样本,假设选择的近邻样本为b;

     (3)对于每一个随机选出的近邻b,分别与原样本a按照公式构建新的样本:c=a+rand(0,1)*|a-b|

SMOTE算法缺陷:

1、由于选择k近邻,存在一定盲目性;

2、无法克服数据分布问题,可能产生边缘化分布数据。比如负类样本在边缘,则其k近邻也在边缘,依次类推产生的数据会越来越边缘,增加分类难度。

  • EasyEnsemble:

    EasyEnsemble是一类欠采样方法,将多数类样本随机划分成n个子集,每个子集的数量等于少数类样本的数量。接着将每个子集与少数类样本结合起来分别训练一个模型,最后将n个模型集成。

PS:对于小数据集来说,当总体数据量不够时,为了简化模型,可以借鉴过采样的方法。具体到图像任务,还可以直接在图像空间进行变换,通过施加一定幅度的旋转、平移、裁剪、清晰度、对比度等,扩充数据集。此外,迁移学习也是在小数据集上进行建模的好方法。

对于模型的评估方法,整体准确率不适用于不平衡数据集,需要引入新的度量方式,比如G-mean,它会看正类上的准确率,再看负类上的准确率,然后两者相乘取平方根。另外一种常见的度量方法时F-score。

2、权重设置:

        改变样本权重指的是增大样本数较少类别的样本的权重,当类别较少的样本被误分时,其损失值要乘以相应的权重,从而让分类器更加关注这一类数据较少的样本。

2.1、设置类别权重:class_weight

2.2、设置样本权重:sample_weight

3、集成的思想:

3.1、采用boosting的集成算法:XGB,LGB等(对不平衡数据处理效果较好的模型)

3.2、模型融合:投票法

       利用gbdt/lgb/xgb分别对正负样本按比例(1:2 1:5 1:10)进行训练,然后根据AUC分数的比例得到了三者的比例,最后进行投票得到最终模型

4、一分类(转化成异常检测问题):

在样本极度不平衡的情况下,换一个完全不同的角度来看待问题,可以把它看成异常检测问题

利用用异常检测算法(IF、LOF、OneClassSVM)建立一个单类分类器,检测异常点(少数类)。

5、利用深度学习:自编码器

利用AutoEncoder进行特征的抽取,再将抽取的特征送入分类器(LR)

6、确定适合样本不平衡问题的评价指标:

ROC,AUC,F1_score

链接

三、过拟合和欠拟合

1、过拟合

    过拟合是模型在训练集上的表现很好,在测试集上的变现却很差。出现这种现象的主要原因是训练数据集中存在噪音、训练数据太少、特征选择的过多导致模型复杂度高、模型拟合了数据中噪声和训练样例中没有代表性的特征。

(1)、Early stopping

    Early stopping便是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。对模型进行训练的过程即是对模型的参数进行学习更新的过程,这个参数学习的过程往往会用到一些迭代方法,如梯度下降(Gradient descent)学习算法。这样可以有效阻止过拟合的发生,因为过拟合本质上就是对自身特点过度地学习。

(2)、正则化

    指的是在目标函数后面添加一个正则化项,一般有L1正则化与L2正则化。L1正则是基于L1范数,即在目标函数后面加上参数的L1范数和项,即参数绝对值和与参数的积项。

L2正则是基于L2范数,即在目标函数后面加上参数的L2范数和项,即参数的平方和与参数的积项。

  • L2正则化:

为解决过拟合,尽量减小高次项特征的影响。使得w的每个元素都很小,接近于0.越小的元素说明越简单,越简单的模型则越不容易过拟合。

L2正则化的公式非常简单,直接在原来的损失函数基础上加上权重参数的平方和

正则化的目的是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值