全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
15398 10
2014-07-05
# 那些年我们用过的二分类算法——小白级科普

# 目的
# 简单来说就是教给非科班出身只想尽快应用的你怎么解决Y=0/1这类模型的训练和评测

# 数据
# http://archive.ics.uci.edu/ml/da ... +Company+Benchmark+(COIL+2000)
# 烂大街的数据集,大概是保险公司的客户信息,反正Y要么是0要么是1,X有85个之多
# 这个数据已经把用于训练模型的和用于评价模型性能的数据分开了

# 算法
# 泊松回归、Logistic回归、SVM和随机森林
# Packages Used:   e1071,randomForest

### data import
train <- read.table(
  "http://archive.ics.uci.edu/ml/machine-learning-databases/tic-mld/ticdata2000.txt", header=F)

test <-cbind(
  read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/tic-mld/ticeval2000.txt", header=F),
  read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/tic-mld/tictgts2000.txt", header=F ))
names(test)[86] <- "V86"
head(train)

## models

pois <- glm(V86 ~ ., family= poisson(), data=train)  ##泊松回归
logi <- glm(V86 ~ ., family= binomial(link="logit"), data=train) ##logisitic回归
# 这两个货有什么区别,我不是太清楚,不过似乎Logistic用的多一些

#支持向量机
library(e1071)
svm1 <- svm(V86 ~ ., data=train )

#随机森林
library(randomForest)
rforest <- randomForest(V86 ~ ., data=train)

## evaluation
# 评价模型,主要是混淆矩阵和衍生的查全率、查准率,这里以Y=1为评价目标
rslt <- function( model) { # model test
  z <- ( predict( model, test, type="response") > 0.5 )
  zz<- table(z, test$V86 , dnn =c("pred","act")) # 混淆矩阵
  out <- list( c.m = zz,  
               accuracy = 1-( sum(zz) - sum(diag(zz)))/sum(zz) , # 查准率
               cover = sum(zz[1,2]/sum(zz[,2])) # Y=0查全率
  )
  return(out)
}

rslt( pois)
rslt( logi)
rslt( svm1 )
rslt( rforest)

# 结论:论精度SVM最好,论速度logistic性价比最高。
# 不想玩深的话,把数据处理好,直接套就可以用了。
# 想玩深一点的话有以下议题:
# 1.step的logistic,稳健的Logistic,样本非平衡性处理后的Logistic
# 2.SVM的核函数各种调整,参数的各种调整
# 3.随机森林的各种调整
# 4.决策树、贝叶斯分类器以及其他



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-7-6 00:41:10
软件的啊,,,,,,,
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-6 07:39:44
a1924851085 发表于 2014-7-6 00:41
软件的啊,,,,,,,
当然是的,欢迎跳进R语言大坑
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-10 21:11:27
请教一下楼主,样本非平衡性处理后的Logistic,该怎么处理?R中有相应包吗?谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-11 10:02:07
512002855 发表于 2014-7-10 21:11
请教一下楼主,样本非平衡性处理后的Logistic,该怎么处理?R中有相应包吗?谢谢!
哎呀我去~~~~~戳到我的痛处了,现在就面临非平衡性的问题,解决不太好呢!
看了几篇paper,基本上要么从抽样想办法,要么从模型参数想办法,,
抽样的话有什么SMOTE算法之类的,
模型的话logistic似乎有robust的,但是我还没试成功,其他的好像叫cost sensitive的方法吧?

求牛人们指点一下吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-11 11:14:58
complicated 发表于 2014-7-11 10:02
哎呀我去~~~~~戳到我的痛处了,现在就面临非平衡性的问题,解决不太好呢!
看了几篇paper,基本上要么从 ...
在一篇硕士论文《基于非平衡数据分类的贷款违约预测研究》第35页,看到一些介绍,
"在R中,SMOTE算法是DMWR软件包的一部分"。

不过没有尝试过。 smote.jpg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群