目次

第3週

今週の配付資料。グラフと表のみによるデータ解析(第1週)と比較的単純な学習機械によるデータ解析(第2週)に続いて、今回は次の2つの課題に取り組んでもらう。

  1. より柔軟な学習機械(第3週の結果)と単純な学習機械(第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つ目の課題は、前回までのレポートの考察として、どのような顧客層に重点的にキャンペーンを展開するのがよいか、提案書を起草してもらう。「提案書」という書類の形式については、成書を参照するのがよいが、参考までに幾つかのウェブサイトへのリンクを掲げておく。

なおレポートには、訪問リストを生成するための手順を記述しておけばよく、訪問リストそのものの添付は不要である。また、最終的な提案に機械学習の結果を用いる場合は、以下の点に留意されたい。