如何在R中为决策树模型创建增益图?
我在R中创建了一个决策树模型。目标变量是工资,我们试图根据其他输入变量预测一个人的工资是高于还是低于50k如何在R中为决策树模型创建增益图?,r,machine-learning,classification,rstudio,decision-tree,R,Machine Learning,Classification,Rstudio,Decision Tree,我在R中创建了一个决策树模型。目标变量是工资,我们试图根据其他输入变量预测一个人的工资是高于还是低于50k df<-salary.data train = sample(1:nrow(df), nrow(df)/2) train = sample(1:nrow(df), size=0.2*nrow(df)) test = - train training_data = df[train, ] testing_data = df[test, ] fit <- rpart(trai
df<-salary.data
train = sample(1:nrow(df), nrow(df)/2)
train = sample(1:nrow(df), size=0.2*nrow(df))
test = - train
training_data = df[train, ]
testing_data = df[test, ]
fit <- rpart(training_data$INCOME ~ ., method="class", data=training_data)##generate tree
testing_data$predictionsOutput = predict(fit, newdata=testing_data, type="class")##make prediction
df如果您更改
predict(fit, newdata=testing_data, type="class")
到
增益图希望按模型概率排列顺序。使用c()将预测转换为向量
library('rpart'))
图书馆(“ROCR”)
setwd('C:\\Users\\John\\Google Drive\\working\\R\\questions')
DF根据文档,目前,ROCR只支持二进制分类。。。如果有两个以上不同的标签符号,执行将停止并显示错误消息。
在这种情况下,它是一种二进制分类,目标为>50k或OK。但是prediction
的第二个参数必须只有两个值。testing\u data$INCOME
是否只有两个值?是的,testing\u data$INCOME只有两个潜在值,要么>50k,要么您可以提供工资。数据
?在你的问题中发布dput(salary.data)
的输出,或者,如果太大,上传到某个地方并发布链接。谢谢John!那个转换函数很有用:)你们可能想看看插入符号包。这里有一个例子。。。。
AGE EMPLOYER DEGREE MSTATUS JOBTYPE SEX C.GAIN C.LOSS HOURS
1 39 State-gov Bachelors Never-married Adm-clerical Male 2174 0 40
2 50 Self-emp-not-inc Bachelors Married-civ-spouse Exec-managerial Male 0 0 13
3 38 Private HS-grad Divorced Handlers-cleaners Male 0 0 40
COUNTRY INCOME
1 United-States <=50K
2 United-States <=50K
3 United-States <=50K
predict(fit, newdata=testing_data, type="class")
predict(fit, newdata=testing_data, type="prob")
library('rpart')
library('ROCR')
setwd('C:\\Users\\John\\Google Drive\\working\\R\\questions')
df<-read.csv(file='salary-class.csv',header=TRUE)
train = sample(1:nrow(df), nrow(df)/2)
train = sample(1:nrow(df), size=0.2*nrow(df))
test = - train
training_data = df[train, ]
testing_data = df[test, ]
fit <- rpart(training_data$INCOME ~ ., method="class", data=training_data)##generate tree
testing_data$predictionsOutput = predict(fit,
newdata=testing_data, type="class")##make prediction
# Doesn't work
# pred <- prediction(testing_data$predictionsOutput, testing_data$INCOME)
v <- c(pred = testing_data$predictionsOutput)
pred <- prediction(v, testing_data$INCOME)
gain <- performance(pred,"tpr","fpr")
plot(gain, col="orange", lwd=2)