今週の配付資料。グラフと表のみによるデータ解析(第1週)と比較的単純な学習機械によるデータ解析(第2週)に続いて、今回は次の2つの課題に取り組んでもらう。
ひとつ目の課題は、より柔軟な学習機械を適用してもらい、先週までの方法との違いを検討してもらう。こちらについては今回も、同志社大学の金(じん)先生が公開されてらっしゃる
を参考に、進めて欲しい。
サポートベクターマシン(ksvm)はkernlabパッケージに、バギング(bagging)はipredパッケージに、ブースト(ada)はadaパッケージに、ランダムフォレスト(randomForest)はrandomForestパッケージに、それぞれ含まれているので、まずは必要なパッケージをインストールする。
bank <- read.table("c:¥¥Users¥¥Student¥¥bank-full.csv", header=TRUE, sep=";") Sys.setenv("http_proxy"="http://130.153.8.19:8080/") install.packages("kernlab", dependencies=TRUE) library(kernlab) install.packages("ipred", dependencies=TRUE) library(ipred) install.packages("ada", dependencies=TRUE) library(ada) install.packages("randomForest", dependencies=TRUE) library(randomForest)
サポートベクターマシンに学習させる実行例:
bank.svm <- ksvm(y~., data=bank, kernel="rbfdot", kpar=list(sigma=0.01)) bank.svm.p<-predict(bank.svm) table(bank.svm.p, bank$y)
バギングに学習させる実行例:
bank.bag<-bagging(y~., data=bank, nbagg=40) bank.bag.p <- predict(bank.bag,type= "class") table(bank.bag.p, bank$y)
Adaブーストに学習させる実行例:
bank.ada <- ada(y~., data=bank, iter=20) bank.ada.p <- predict(bank.ada,type= "vector") table(bank.ada.p, bank$y)
ランダムフォレストに学習させる実行例:
bank.rf <- randomForest(y~., data=bank) bank.rf.p <- predict(bank.rf) table(bank.rf.p, bank$y)
以上は「弱い学習機械」の指定と、個々の学習機械の設定パラメータが、デフォルトのままであることとは注意しておく。パラメータのチューニングが必要なはずである。
なお、この課題では「過学習」について言及していないが、過学習は大事な問題であるので、各自、少し調べて気にすることを進める。
2つ目の課題は、前回までのレポートの考察として、どのような顧客層に重点的にキャンペーンを展開するのがよいか、提案書を起草してもらう。「提案書」という書類の形式については、成書を参照するのがよいが、参考までに幾つかのウェブサイトへのリンクを掲げておく。
なおレポートには、訪問リストを生成するための手順を記述しておけばよく、訪問リストそのものの添付は不要である。また、最終的な提案に機械学習の結果を用いる場合は、以下の点に留意されたい。