标签:例子 情况 出错 连续 knn 数据 就是 平均值 评价
欠采样的逻辑中往往会结合集成学习来有效的使用数据,假设正例数据n,而反例数据m个。我们可以通过欠采样,随机无重复的生成(k=n/m)个反例子集,并将每个子集都与相同正例数据合并生成k个新的训练样本。我们在k个训练样本上分别训练一个分类器,最终将k个分类器的结果结合起来,比如求平均值。这就是一个简单的思路,也就是Easy Ensemble [5]。
阿萨姆大神总结的很对,只要正负比例不过于极端,目前各种集成模型不采样处理加选择合适的评价参数都能达到不错的效果,过于偏离的正负比例,再怎么采样感觉也学习不到更多的信息
提出这样建议的原因有很多。首先,简单的阈值调整从经验上看往往比过采样和欠采样有效 [6]。其次,如果你对统计学知识掌握有限,而且编程能力一般,在集成过程中更容易出错,还不如使用现有的集成学习并调整分类阈值。
采样就是通过减少多数类数量的下采样(Undersampling)或增加少数类数量的上采样(Oversampling)方式,实现各类别平衡。针对两种采样方式,依赖不同的方法,比如说 随机、模型融合等,就会生成很多解决方案,
数据合成
随机上采样会反复出现一些样本,而导致过拟合;随机下采样则会造成一定程度的特征丢失,虽然这种方式比较简单,但现在计算机的计算能力越来越高,可接受的算法复杂度也越来越高,所以我们应该主要考虑模型训练的效果。
数据合成则是利用已有样本生成更多样本,其中常用的包括:
更改权重
更改权重就是针对不同类别的数据设置不同的分错代价,即提高少数类分错的代价或降低多数类分错的代价,最终使各类别平衡。
常用的机器学习训练方法中,很多都提供了权重设置参数class_weight,可以手动设置该参数,但一般情况下只需要将其设置为balanced即可,模型会自动按照如下公式更新权重:
一分类
这种方法比较适合极不平衡数据,或数据量比较小的数据集。
主要方法为`OneClassSVM
数据量还可以,但类别之间数量相差悬殊的时候考虑用一分类或者异常检测的方法。
标签:例子 情况 出错 连续 knn 数据 就是 平均值 评价
原文地址:https://www.cnblogs.com/xiaofeisnote/p/14608331.html