差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
mselab:2012:stat:week3 [2012/10/30 09:42] – [練習課題] watalu | mselab:2012:stat:week3 [不明な日付] (現在) – 外部編集 (不明な日付) 127.0.0.1 | ||
---|---|---|---|
行 4: | 行 4: | ||
- まずはタイタニック号のデータを用いて、各種学習機械の使い方と学習結果の読み方を学ぶ。 | - まずはタイタニック号のデータを用いて、各種学習機械の使い方と学習結果の読み方を学ぶ。 | ||
- 次に前回と同じ保険のデータを3種類の学習機械を用いて分析し、保険の営業方針を立案する。 | - 次に前回と同じ保険のデータを3種類の学習機械を用いて分析し、保険の営業方針を立案する。 | ||
+ | |||
+ | === 準備 === | ||
+ | |||
+ | < | ||
+ | Sys.setenv(" | ||
+ | install.packages(c(" | ||
+ | </ | ||
+ | |||
+ | これでエラーが出る場合には、[[https:// | ||
+ | |||
+ | < | ||
+ | library(mvpart) | ||
+ | library(MASS) | ||
+ | library(kernlab) | ||
+ | </ | ||
+ | |||
+ | 以上の3つのライブラリを、この課題では使う可能性がある。 | ||
+ | |||
+ | == 緊急パッチ == | ||
+ | |||
+ | mvpartのインストールについて。 | ||
+ | |||
+ | * まず{{: | ||
+ | * Rのメニューで〔パッケージ〕→〔ローカルにあるzipファイルからのパッケージのインストール〕を選ぶ。 | ||
+ | * 「Select files」という子ウィンドウが出てくるので、保存したmvpart_1.6-0.zipというファイルを指定して、〔開く(O)〕をクリックする。 | ||
+ | |||
+ | で対応して欲しい。同様のことを、{{: | ||
+ | |||
+ | データ読み込みはできても、CRANにも接続できないなんて。 | ||
+ | |||
+ | |||
+ | == データの読み込み == | ||
+ | |||
+ | < | ||
+ | tic.learn <- read.table(" | ||
+ | tic.eval <- read.table(" | ||
+ | tic.test <- read.table(" | ||
+ | tic.eval <- cbind(tic.eval, | ||
+ | colnames(tic.eval)[86] <- " | ||
+ | rm(tic.test) | ||
+ | </ | ||
+ | |||
+ | == 少し加工する == | ||
+ | |||
+ | 以下の6行は、実行しない方がいい場合もある。 | ||
+ | |||
+ | < | ||
+ | tic.learn$V1 <- as.factor(tic.learn$V1) | ||
+ | tic.learn$V5 <- as.factor(tic.learn$V5) | ||
+ | tic.learn$V86 <- as.factor(tic.learn$V86) | ||
+ | tic.eval$V1 <- as.factor(tic.eval$V1) | ||
+ | tic.eval$V5 <- as.factor(tic.eval$V5) | ||
+ | tic.eval$V86 <- as.factor(tic.eval$V86) | ||
+ | </ | ||
+ | |||
+ | 回帰分析とロジスティック回帰分析は、上の6行を実行しないtic.learnとtic.evalを用いるのがよい。 | ||
+ | 決定木では上の6行を実行した後のtic.learnとtic.evalを用いるのがよい。 | ||
+ | また決定木に関しては、実行した場合と実行しない場合とで結果を比較すると良いかもしれない。 | ||
==== 練習課題 ==== | ==== 練習課題 ==== | ||
行 501: | 行 559: | ||
であったことが分かる。 | であったことが分かる。 | ||
- | === 課題 === | + | === 練習課題についての課題 === |
* 3つの分析手法を適用せよ。(時間内課題) | * 3つの分析手法を適用せよ。(時間内課題) | ||
行 507: | 行 565: | ||
* これら以外に、Rで2値判別を行う手法を探し、適用して、比較に加えてみよ。(課外課題) | * これら以外に、Rで2値判別を行う手法を探し、適用して、比較に加えてみよ。(課外課題) | ||
- | === 本課題 === | + | ==== 本課題 |
- | == TIC2000 == | + | === TIC2000 |
[[http:// | [[http:// | ||
行 522: | 行 580: | ||
* CoIL 2000では、訪問する800人を選べ、という課題になっていたが、この課題では訪問する人数も各自で決めて良い。 | * CoIL 2000では、訪問する800人を選べ、という課題になっていたが、この課題では訪問する人数も各自で決めて良い。 | ||
- | == 準備 == | ||
- | |||
- | < | ||
- | install.packages(c(" | ||
- | </ | ||
- | |||
- | これでエラーが出る場合には、[[https:// | ||
- | |||
- | < | ||
- | library(mvpart) | ||
- | library(MASS) | ||
- | library(kernlab) | ||
- | </ | ||
- | |||
- | 以上の3つのライブラリを、この課題では使う可能性がある。 | ||
- | |||
- | == データの読み込み == | ||
- | |||
- | < | ||
- | tic.leaan <- read.table(" | ||
- | tic.eval <- read.table(" | ||
- | tic.test <- read.table(" | ||
- | tic.eval <- cbind(tic.eval, | ||
- | colnames(tic.eval)[86] <- " | ||
- | rm(tic.test) | ||
- | </ | ||
- | |||
- | == 少し加工する == | ||
- | |||
- | 以下の6行は、実行しない方がいい場合もある。 | ||
- | |||
- | < | ||
- | tic.learn$V1 <- as.factor(tic.learn$V1) | ||
- | tic.learn$V5 <- as.factor(tic.learn$V5) | ||
- | tic.learn$V86 <- as.factor(tic.learn$V86) | ||
- | tic.eval$V1 <- as.factor(tic.eval$V1) | ||
- | tic.eval$V5 <- as.factor(tic.eval$V5) | ||
- | tic.eval$V86 <- as.factor(tic.eval$V86) | ||
- | </ | ||
- | |||
- | 決定木に関しては、実行した場合と実行しない場合とで結果を比較すると良いかもしれない。 | ||
- | == 考えたルールに基づく対象限定 == | + | === 考えたルールに基づく対象限定 |
各変数に閾値を設けてルールを生成したとする。 | 各変数に閾値を設けてルールを生成したとする。 | ||
行 605: | 行 622: | ||
で25.9%となる。 | で25.9%となる。 | ||
- | == モデルに基づく対象限定 == | + | === モデルに基づく対象限定 |
学習したモデルに基づいて、訪問対象を狭めるには、predict()という関数を用いて、訪問対象か否かというリストを作成する。 | 学習したモデルに基づいて、訪問対象を狭めるには、predict()という関数を用いて、訪問対象か否かというリストを作成する。 | ||
行 644: | 行 661: | ||
で38.275%となる。 | で38.275%となる。 | ||
- | == 想定される困難 == | + | === 想定される困難 |
次の1行を実行すると、かなり時間がかかってエラーになる。 | 次の1行を実行すると、かなり時間がかかってエラーになる。 |