# UCI機械学習リポジトリのデータ(など)で遊ぶ(3):クレジットカードの加入審査データ - 銀座で働くデータサイエンティストのブログ http://tjo.hatenablog.com/entry/2015/06/12/190000
setwd("~/tjo.hatenablog.samples-master/r_samples/public_lib/jp/exp_uci_datasets/card_approval")
load("./card_dataset.RData")
library(e1071)
library(randomForest)
train.glm<-glm(label~.,train,family=binomial)
table(test$label,round(predict(train.glm,newdata=test[,-16],type='response'),0))
# ロジスティック回帰で正答率82%
train.tune1<-tune.svm(label~.,data=train,kernel='radial')
train.tune2<-tune.svm(label~.,data=train,kernel='linear')
train.tune1$best.model
train.tune2$best.model
train.svm1<-svm(label~.,train,kernel='radial',cost=train.tune1$best.model$cost,gamma=train.tune1$best.model$gamma)
train.svm2<-svm(label~.,train,kernel='linear',cost=train.tune2$best.model$cost,gamma=train.tune2$best.model$gamma)
table(test$label,predict(train.svm1,newdata=test[,-16]))
# ガウシアンカーネルSVMで89%
table(test$label,predict(train.svm2,newdata=test[,-16]))
# 線形カーネルSVMで84%
tuneRF(train[,-16],train[,16],doBest=T)
train.rf<-randomForest(label~.,train,mtry=6)
table(test$label,predict(train.rf,newdata=test[,-16]))
# ランダムフォレストで86%
library(xgboost)
library(Matrix)
train.mx<-sparse.model.matrix(label~.,train)
test.mx<-sparse.model.matrix(label~.,test)
dtrain<-xgb.DMatrix(train.mx,label=as.integer(train$label)-1)
dtest<-xgb.DMatrix(test.mx,label=as.integer(test$label)-1)
train.gdbt<-xgb.train(params=list(objective="binary:logistic",eval_metric="logloss",eta=0.7),dtrain,nrounds=150,watchlist=list(train=dtrain,test=dtest))
table(test$label,round(predict(train.gdbt,newdata=dtest),0))
# Xgboostで86%