上一篇博客说了R语言中利用朴素贝叶斯算法来预测垃圾短信,这次咱接着再聊一个算法,C5.0。我个人感觉C5.0要好用一点的。主要是C5.0对数据的属性没有硬性要求,不像贝叶斯中,数据的属性非no及yes,这在众多的工作场景中是无法得到保证的。就比如分析关于银行贷款的个人信用问题。其中就有不少属性可以去很多值的(就像存款,是一个多段值)。
代码如下:
credit<-read.csv("credit.csv",stringsAsFactors = FALSE)
str(credit)
prop.table(table(credit$default))
credit$default<-factor(credit$default)
set.seed(666)
credit<-credit[order(runif(1000)),]
credit_train<-credit[1:900,]
credit_test<-credit[901:1000,]
install.packages("C50")
library(C50)
credit_model<-C5.0(x = credit_train[-17],y = credit_train$default)
credit_model
credit_pred<-predict(object = credit_model,newdata = credit_test)
library(gmodels)
CrossTable(credit_test$default,credit_pred,dnn = c("Actual","Predict"))
分析:
1.为什么要
credit<-credit[order(run