首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R语言决策树:NBA球员如何拿到大合同

作者:胡言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语言入门及数据挖掘

回复人工智能三个月入门人工智能

回复数据分析师数据分析师成长之路

回复机器学习机器学习的商业应用

回复数据科学数据科学实战

回复常用算法常用数据挖掘算法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181227B0HS6A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券