数据分析:数据量级不平衡的数据进行处理

对于不平衡数据(事件)的balance处理

 

对小概率事件进行预测(判断)的时候,一定要对数据做balance处理,不然会使得模型天然的倾向于大概率的结果。

 

处理方式:

1.上采样少数类别:上采样是从少数类别中随机扶着观测样本以增强其信号的过程,最常见的集中试探法是使用简单的放回抽样的方式重采样,从sklearn中导入重采样模块  这种处理方式会导致准确率急转而下,但是性能指标更有意义

 

2.下采样多数类别:下采样包括从多数类别中随机的一处观测样本,防止他的信息主导学习算法,其中最常见的试探法是不放回抽样式重采样

 

将每个类别的观测样本分离到不同的DataFrame中,接着讲采用不放回抽样来重采样多数类别,让样本的数量与少数类别数量想当,最后合并下采样后的多数类别与原始的少数类别合并

 

 

3.改变你的性能指标:

对于分类的通用指标,推荐使用ROC曲线下面积(AUROC)

表示从类别中区别观测样本的可能性,换句话说,如果你能从每个类别中随机选择一个观察样本,它将被正确分类的概率是多大

从sklearn中导入这个指标:from sklearn.metrics import roc_auc_score

为了计算AUROC,你将需要预测类别的概率,而非仅预测类别。

使用如下代码来获取这些结果 predict_proba()

AUROC>=0.5

 

4.惩罚算法(代价敏感学习)

使用SVM算法:支持向量机,因为存在对少数类别分类错误的代价

 

 

5.基于树的算法:

决策树通常在不平衡数据集上表现良好,因为他们的层级结构允许他们从两个类别去学习,随机森林

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部