专栏名称: 爱数据LoveData
中国统计网(www.itongji.cn),国内最大的数据分析门户网站。提供数据分析行业资讯,统计百科知识、数据分析、商业智能(BI)、数据挖掘技术,Excel、SPSS、SAS、R等数据分析软件等在线学习平台。
目录
相关文章推荐
51好读  ›  专栏  ›  爱数据LoveData

令人讨厌的非平衡数据

爱数据LoveData  · 公众号  · BI  · 2017-01-31 17:06

正文

请到「今天看啥」查看全文




上面我们介绍了关于SMOTE算法实现数据平衡的理论思想,在R语言中该如何实现这样的理论呢? DMwR包中的SMOTE()函数 就可以实现这样的功能,具体函数的语法和参数含义如下:


SMOTE(form, data, perc.over = 200, k = 5, perc.under = 200,

learner = NULL, ...)


form :为一个公式形式,类似于y~x1+x2+x3


data :为不平衡的数据框


perc.over :定义过采样的抽样次数,即对于少数类样本点,需要为每个点重新构造多少个点。默认值为200,即重新为每个少数类样本点构造200/100=2个点。


k :指定K邻近算法中的参数K值,即选取K个最邻近的点,默认值为5


perc.under :定义欠采样的抽样次数,即从多数类样本中选择perc.under倍于新生成的样本数量,默认为200,即从多数类样本中选择200/100=2倍于新生成样本的数量


下面就使用实例数据来验证一下非平衡数据处理前后的模型结果 ,数据来源于C50包中的客户流失数据:


```{r}

library(C50)

data(churn)

train = churnTrain

test = churnTest


#查看一下训练集和测试集数据的平衡状态

table(train$churn)

prop.table(table(train$churn))


table(test$churn)

prop.table(table(test$churn))

```







请到「今天看啥」查看全文