楼主: complicated
15488 10

[实际应用] 那些年我们用过的二分类算法——小白级科普 [推广有奖]

  • 3关注
  • 18粉丝

已卖:10份资源

副教授

65%

还不是VIP/贵宾

-

威望
0
论坛币
6463 个
通用积分
3868.8149
学术水平
88 点
热心指数
86 点
信用等级
58 点
经验
21958 点
帖子
506
精华
0
在线时间
1425 小时
注册时间
2007-6-16
最后登录
2024-4-20

楼主
complicated 在职认证  发表于 2014-7-5 23:28:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
# 那些年我们用过的二分类算法——小白级科普

# 目的
# 简单来说就是教给非科班出身只想尽快应用的你怎么解决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.决策树、贝叶斯分类器以及其他



二维码

扫码加我 拉你入群

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

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

关键词:分类算法 那些年 二分类 randomForest logistic回归 二分类变量 logistic SVM randomForest 分类器

已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
求证1加1 + 20 根据规定进行奖励
Nicolle + 60 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 80  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

密码被盗??

沙发
a1924851085 发表于 2014-7-6 00:41:10
软件的啊,,,,,,,

藤椅
complicated 在职认证  发表于 2014-7-6 07:39:44
a1924851085 发表于 2014-7-6 00:41
软件的啊,,,,,,,
当然是的,欢迎跳进R语言大坑

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

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

求牛人们指点一下吧

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

不过没有尝试过。 smote.jpg

7
complicated 在职认证  发表于 2014-7-11 14:16:12
512002855 发表于 2014-7-11 11:14
在一篇硕士论文《基于非平衡数据分类的贷款违约预测研究》第35页,看到一些介绍,
"在R中,SMOTE算法是D ...
谢谢!
就我目前的数据试了一下,结果是查全率大大提高了,但是查准率大大降低了,整体上看,提升不明显~

8
猴哥剃须刀 发表于 2014-8-17 19:04:43
楼主,你那个train和test 是不是搞反了啊,怎么感觉训练时是用你定义的test数据集啊

9
liemk 发表于 2014-8-17 20:24:27
楼主太好了,多谢

10
869692634@qq.co 发表于 2015-7-6 21:10:58
complicated 发表于 2014-7-11 14:16
谢谢!
就我目前的数据试了一下,结果是查全率大大提高了,但是查准率大大降低了,整体上看,提升不明显 ...
你好,你的数据不平衡是用smote算法解决的吗?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 12:35