差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| mselab:2016:stat:week2 [2016/11/08 12:57] – watalu | mselab:2016:stat:week2 [2016/11/29 11:57] (現在) – watalu | ||
|---|---|---|---|
| 行 3: | 行 3: | ||
| 今週の{{: | 今週の{{: | ||
| - | | + | PPDACの5つの要素のうち、Pが変わって、Dにデータが追加されて、Aも変更になる。 |
| + | |||
| + | - P(roblem)は「V86の契約の有無と他の変数との関係の分析」から「V86の契約の有無の他の変数からの予測モデルの構築」に変わる | ||
| + | | ||
| - 各学習機械には様々な「パラメータ」があり、それを変えることで学習結果も予測精度も変わる | - 各学習機械には様々な「パラメータ」があり、それを変えることで学習結果も予測精度も変わる | ||
| - 線形判別分析(lda)、二次判別分析(qda)、決定木(rpart)だけでなく、より柔軟な学習機械も用いる候補に含める | - 線形判別分析(lda)、二次判別分析(qda)、決定木(rpart)だけでなく、より柔軟な学習機械も用いる候補に含める | ||
| + | - D(ata)に先週に解析してもらったtic.learnに加えて、tic.evalを追加する | ||
| + | - tic.learnは学習用、tic.evalは検証用 | ||
| + | - A(nalysis)に「予測精度の評価」が加わる | ||
| + | - 前回は学習しただけ、今回は学習したモデルを予測に用いる(仮想的な現場投入) | ||
| + | - tic.learnで学習したモデルを、tic.evalの予測に用いて、予測精度を評価する | ||
| + | - C(onclusion)は「どのモデルが予測精度が良いか」とその考察 | ||
| - キャンペーンの提案書の作成 | - キャンペーンの提案書の作成 | ||
| + | - 一番上手に予測できた「制御パラメータを調整済み」の学習機械に基づいて、予測精度を自慢しつつ、効率が良いと思われるキャンペーンを提案する提案書を起草せよ。 | ||
| + | |||
| + | 1回目と2回目とで、各手法に対する印象が少し異なってくると嬉しい。 | ||
| === 学習と予測 === | === 学習と予測 === | ||
| 行 115: | 行 127: | ||
| < | < | ||
| par(mfrow=c(2, | par(mfrow=c(2, | ||
| - | hist(v86.lm[tic.learn$V86==0], | + | hist(v86.lm[tic.eval$V86==0], |
| | | ||
| | | ||
| - | hist(v86.lm[tic.learn$V86==1], | + | hist(v86.lm[tic.eval$V86==1], |
| | | ||
| | | ||
| 行 127: | 行 139: | ||
| 予測誤差の定義は「予測値-正解」である。 | 予測誤差の定義は「予測値-正解」である。 | ||
| < | < | ||
| - | plot(tic.eval$V86, | + | plot(tic.eval$V86, |
| | | ||
| | | ||
| 行 135: | 行 147: | ||
| < | < | ||
| - | plot((v86.lm-tic.eval$V86)~as.factor(tic.eval$V86), | + | plot((tic.eval$V86-v86.lm)~as.factor(tic.eval$V86), |
| | | ||
| | | ||
| 行 144: | 行 156: | ||
| < | < | ||
| - | t.test((v86.lm-tic.eval$V86)[tic.eval$V86==0], | + | t.test((tic.eval$V86-v86.lm)[tic.eval$V86==0], |
| - | (v86.lm-tic.eval$V86)[tic.eval$V86==1], | + | |
| | | ||
| </ | </ | ||
| 行 242: | 行 254: | ||
| などと、ひとつひとつ増やしていってみるか、例えば | などと、ひとつひとつ増やしていってみるか、例えば | ||
| < | < | ||
| - | tic.qda <- qda(V86~V1, | + | tic.qda <- qda(V86~., |
| </ | </ | ||
| のように最初の30変数を使って86番目を予測する、とするなどの工夫が必要になる。 | のように最初の30変数を使って86番目を予測する、とするなどの工夫が必要になる。 | ||
| 行 257: | 行 269: | ||
| tic.rpart <- rpart(V86~., | tic.rpart <- rpart(V86~., | ||
| v86.rpart <- predict(tic.rpart, | v86.rpart <- predict(tic.rpart, | ||
| - | table(v86.rpart$class, tic.eval$V86) | + | table(v86.rpart, |
| + | </ | ||
| + | |||
| + | rpartの制御はたとえば | ||
| + | < | ||
| + | tic.rpart <- rpart(V86~., | ||
| </ | </ | ||
| + | のように指定する。 | ||
| 誤判別率(誤った予測をした割合)などを算出しつつ、各学習機械の制御パラメータを調整してみよ。 | 誤判別率(誤った予測をした割合)などを算出しつつ、各学習機械の制御パラメータを調整してみよ。 | ||