作者:胡言R语言中文社区专栏作者
知乎ID:https://www.zhihu.com/people/hu-yan-81-25
前言
本次实践学习并练习使用R语言rpart包构建决策树,寻找决定高薪合同的技术统计元素。
期间用到了过采样方法解决目标样本量太少的问题,并应用了AUC、KS、混肴矩阵、精确度等模型评价指标,算是决策树的一次比较完备的实例实践。
废话少说,上代码:
载入包
使用Rmarkdown写code时我喜欢把整个工程用到的包都在最开始的地方载入,可以设置(include=FALSE)不展示这部分代码,好处是通篇比较干净整洁。
以下为“牧羊的男孩”提供的数据字段解释,非常感谢!
目标变量:
0 1
291 51
[1] "X" "Rk" "POSITION" "AGE" "MP" "FG"
[7] "FGA" "FG." "X3P" "X3PA" "X3P." "X2P"
[13] "X2PA" "X2P." "eFG." "FT" "FTA" "FT."
[19] "ORB" "DRB" "TRB" "AST" "STL" "BLK"
[25] "TOV" "PF" "POINTS" "GP" "MPG" "ORPM"
[31] "DRPM" "RPM" "WINS_RPM" "PIE" "PACE" "W"
计算IV值
过采样办法
原始样本正负比例:
0 1
291 51
过采样后正负比例:
0 1
183 159
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale
[1] 205 37
[1] 137 37
Classification tree:
rpart(formula = fit, data = train, minsplit = 10, cp = 0.03)
Variables actually used in tree construction:
[1] FT GP PF TRB WINS_RPM
Root node error: 93/205 = 0.45366
n= 205
CP nsplit rel error xerror xstd
1 0.548387 0 1.00000 1.00000 0.076646
2 0.118280 1 0.45161 0.50538 0.064717
3 0.043011 2 0.33333 0.40860 0.059826
4 0.032258 3 0.29032 0.34409 0.055878
5 0.030000 5 0.22581 0.33333 0.055156
train集: 0 1
99 8
13 85
test集 0 1
60 13
11 53
pre_dat 0 1
237 10
54 41
评价决策树
KS值为:
[1] 0.3277339
[1] 0
numeric(0)
[1] 1
[1] 0
[1] 2
[1] 0
[1] 3
[1] 0.6066303
[1] 4
[1] 0.6183546
[1] 5
[1] 0.6183546
[1] 6
[1] 0.6183546
[1] 7
[1] 0.6183546
[1] 8
[1] 0.6183546
[1] 9
[1] 0.6183546
[1] 10
[1] 0.6183546
Confusion Matrix and Statistics
0 1
0 237 10
1 54 41
Accuracy : 0.8129
95% CI : (0.7674, 0.8528)
No Information Rate : 0.8509
P-Value [Acc > NIR] : 0.9772
Kappa : 0.4561
Mcnemar's Test P-Value : 7.658e-08
Sensitivity : 0.8144
Specificity : 0.8039
Pos Pred Value : 0.9595
Neg Pred Value : 0.4316
Prevalence : 0.8509
Detection Rate : 0.6930
Detection Prevalence : 0.7222
Balanced Accuracy : 0.8092
'Positive' Class : 0
[1] 171 38
[1] 171 38
pre_train_2 0 1
1 114 2
2 31 24
pre_test_2 0 1
1 123 8
2 23 17
回复爬虫爬虫三大案例实战
回复Python1小时破冰入门
回复数据挖掘R语言入门及数据挖掘
回复人工智能三个月入门人工智能
回复数据分析师数据分析师成长之路
回复机器学习机器学习的商业应用
回复数据科学数据科学实战
回复常用算法常用数据挖掘算法
领取专属 10元无门槛券
私享最新 技术干货