=== 第3週 === 今週の{{:mselab:2013:stat:week3:note-statistics-3-20131029.pdf|配付資料}}。グラフと表のみによるデータ解析(第1週)と比較的単純な学習機械によるデータ解析(第2週)に続いて、今回は次の2つの課題に取り組んでもらう。 - より柔軟な学習機械(第3週の結果)と単純な学習機械(第2週の結果)との比較 - キャンペーンの提案書の作成 == 柔軟な学習機械を使ってみる == ひとつ目の課題は、より柔軟な学習機械を適用してもらい、先週までの方法との違いを検討してもらう。こちらについては今回も、同志社大学の金(じん)先生が公開されてらっしゃる * [[http://mjin.doshisha.ac.jp/R/31/31.html|Rとカーネル法・サポートベクターマシン]] * [[http://mjin.doshisha.ac.jp/R/32/32.html|Rと集団学習]] を参考に、進めて欲しい。 サポートベクターマシン(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つ目の課題は、前回までのレポートの考察として、どのような顧客層に重点的にキャンペーンを展開するのがよいか、提案書を起草してもらう。「提案書」という書類の形式については、成書を参照するのがよいが、参考までに幾つかのウェブサイトへのリンクを掲げておく。 * [[http://www.fujixerox.co.jp/support/xdirect/magazine/rp0811/08111a.html|ロジカル&ビジュアルなドキュメンテーション(提案書編)]](富士ゼロックス) * [[http://www.bizocean.jp/doc/category/260/|提案書のテンプレート]] * [[http://itpro.nikkeibp.co.jp/article/COLUMN/20130123/451421/|提案書作成スキルを身につけよう]](日経BP) * [[http://japan.zdnet.com/blog/netcommerce/2013/07/13/entry_30022576/|提案書の最初を見れば営業の力量が見えてくる]](ZDnet) * [[http://www.microsoft.com/japan/office/previous/xp/suminaka/powerpoint/teian/teian_con2_1.htm|顧客への提案活動の実施]](マイクロソフト) なおレポートには、訪問リストを生成するための手順を記述しておけばよく、訪問リストそのものの添付は不要である。また、最終的な提案に機械学習の結果を用いる場合は、以下の点に留意されたい。 * 決定木や判別機械を学習させた結果を用いて訪問リストを作るとき、それらの学習に用いた設定や、学習結果は説明してほしい。 * サポートベクターマシンを学習させた結果を用いて訪問リストを作るとき、その訪問リストの傾向は検討してほしい。アンサンブル学習を用いた場合も同様。 * 例えば「サポートベクターマシンによって選ばれた顧客リスト1000名に営業をかけるのが効果的です」と宣言したら、「サポートベクターマシンって何かね」「柔軟な学習機械です」「どう柔軟なんだね」「非常に柔軟です」「・・・」というバッドエンドなコミュニケーションは可能な限り回避するのがいい。 * 「サポートベクターマシンによって、例えば以下のような傾向を持つ顧客が対象に選ばれました。それぞれの傾向は、契約獲得の可能性を高めることが予想されています。」として選ばれた顧客と選ばれなかった顧客を、集団同士として比較するような分析を加えた方が、説得力は増す。