分类问题中的类别不平衡-总结
2016-11-13 14:31
447 查看
问题形式
该问题一般指的是训练集中正负样本数比例相差过大,其一般会造成以下的一些情况:1. 类别少的误判惩罚过低,导致有所偏袒,当样本不确定时倾向于把样本分类为多数类。
2. 样本数量分布很不平衡时,特征的分布同样会不平衡。
3. 传统的评价指标变得不可靠,例如准确率。
常见解决方法
进行重采样,过采样 或 欠采样人工合成新的数据。 1)基于经验,对属性值进行随机采样,生成新的样本。2)基于贝叶斯理论,对属性值进行随机采样,可能会缺少之前属性之间的线性相关性。3)基于系统的人工样本生成方法,SMOTE(Synthetic Minority Over-sampling Technique),类似于KNN的数据生成算法。
尝试多种分类算法,不同的数据形式,适合不同的算法,尝试多种分类算法和不同的评价指标进行比较。
尝试对模型进行惩罚,即对模型参数进行调整,例如SVM或XGBoost等。
尝试一个新的角度理解问题。1.当作异常点检测即是对那些罕见事件进行识别。2.化趋势检测类似于异常点检测,不同在于其通过检测不寻常的变化趋势来识别。
尝试着将问题分解成多个子问题进行求解。
尝试多模型融合。
将大样本聚成K个类别,每个类别分别与小样本进行训练生成分类器,再将K个结果作为判断标准进行判断,例如多数表决,或作为特征再生成新的模型等等。
详细参考
http://blog.csdn.net/heyongluoyao8/article/details/49408131R语言实现-STOME算法
调用包里自带的例子library(DMwR) ## A small example with a data set created artificially from the IRIS ## data data(iris) data <- iris[, c(1, 2, 5)] data$Species <- factor(ifelse(data$Species == "setosa","rare","common")) ## checking the class distribution of this artificial data set table(data$Species) # common rare # 100 50 ## now using SMOTE to create a more "balanced problem" newData <- SMOTE(Species ~ ., data, perc.over = 600,perc.under=100) table(newData$Species) # common rare # 300 350 ##### Plot ######## par(mfrow = c(1, 2)) plot(data[, 1], data[, 2], pch = 19 + as.integer(data[, 3]), main = "Original Data") plot(newData[, 1], newData[, 2], pch = 19 + as.integer(newData[,3]), main = "SMOTE'd Data") ## End(Not run)
## Now an example where we obtain a model with the "balanced" data classTree <- SMOTE(Species ~ ., data, perc.over = 600,perc.under=100, learner='rpartXse',se=0.5) ## check the resulting classification tree classTree ## The tree with the unbalanced data set would be rpartXse(Species ~ .,data,se=0.5)
相关文章推荐
- 分类中常见的类别不平衡问题解决方法
- 《西瓜书》笔记03:多分类学习和类别不平衡问题(3)
- 分类中的类别不平衡问题
- 在分类中如何处理训练集中不平衡问题
- 算法问题分类---整数和问题系列总结
- MySQL问题解决:-bash:mysql:command not found 分类: ubuntu 问题总结 python基础学习 software database 2014-01-22 16:00 3088人阅读 评论(1) 收藏
- Reading package lists... Error! 解决方案 分类: ubuntu database 问题总结 2014-01-23 09:45 1546人阅读 评论(0) 收藏
- 遇到的问题总结 分类: 问题总结 2013-10-28 17:21 263人阅读 评论(0) 收藏
- 不平衡分类问题处理方法
- 不平衡类问题总结
- 机器学习-回归及分类问题总结
- logistic regression 多类别的分类问题 sigmoid function 判决边界
- Teradata 中表的分类及其各类型表应该注意的问题总结
- DWZ和ASP.NET MVC等框架的冲突问题解决方案 分类: 技巧总结 2015-04-07 14:46 188人阅读 评论(0) 收藏
- Linux下LCD 10分钟自动关屏的问题总结 分类: TI-AM335X arm-linux-Ubuntu 2015-06-19 15:43 369人阅读 评论(1) 收藏
- ORCLE字符集问题 分类: 技巧总结 2014-09-11 10:58 85人阅读 评论(0) 收藏
- 100w特征,2000个类别的分类问题,好的解决方法
- 个人碰到的简单问题处理,慢慢总结 分类: ubuntu学习 2013-08-12 10:36 385人阅读 评论(0) 收藏
- Ubuntu下彻底卸载mysql、安装mysql、及MySQLdb模块 分类: ubuntu 问题总结 database 2014-01-23 13:49 2560人阅读 评论(0) 收藏
- 文本分类中遇到的小问题总结