- こちらでCARTを用いたSLEの分類基準について書いた
- SLEのこと、分類基準のこと、その意義・使い方については熟知しているが、統計や機械学習のことには拒絶感の強い人々を対象にCARTの説明をしてみることにする
- そのためのCART周辺の整理
- 機械学習(Wiki)
- アルゴリズムのタイプ(この説明は「教師アリ・ナシ」くらいは必要。「強化学習」は分類基準を成長させたいのであれば、触れることも考慮。いずれにしろ、かいつまんで)
- 教師アリ学習
- 教師ナシ学習
- 判断の結果がわからない状態で実施…データの構造を読み取る…マイニング要素
- 半教師アリ学習
- 強化学習
- データから判断をして行動すると、その行動が評価されるという仕組みを使って、判断を改善していく
- Transduction
- 演繹(deduction)と帰納(induction)と、Transduction。Deductionは入力からルールをみつけること。Transductionは入力の中に含まれる未知のことについて判断をすること
- Learning to learn
- 複数の判断を一緒に行うことで判断作業全体の改善を目指す
- 機械学習の基本的特徴
- アルゴリズムは「信頼度」を含む
- 入力データは有限・限定されたもの・標本
- 作るアルゴリズム(や引き出す知識)は「新規データ」に適用して引き出すもの
- 両者に乖離があるのは当然
- データは「端折って」使う
- データは小さくても、組み合わせを考慮すると、膨大
- しらみつぶしは無理
- いろいろなアプローチ
- これは『色々ある。CARTはその一つ(に過ぎない)』というメッセージ(なので全部を示す必要はない)
- 図を使って"at a glance"で説明するのがよいだろう
- Decision tree learning
- Association rule learning
- Artificial neural networks
- Genetic programming
- Inductive logic programming
- Support vector machines
- Clustering
- Bayesian networks
- Reinforcement learning
- Representation learning
- Sparse Dictionary Learning
- CARTの説明(スライド)(Supervised_learning),(Decision_tree_learning(CARTを含む)
- 他分野・他疾患での分類基準と機械学習の現状
- 提案のレベル・コンセンサスのレベル?
- 診断(は難しい?)
- 分類(は行われている)(『これだ』という絶対基準がなくて、診断が曖昧になりがちな疾患に多い…)
- CARTの実施
- 薀蓄はそれとして、「じゃあ、私たち(〜統計や機械学習のことには拒絶感の強い人々)も使えるの?」について
- Rなら
- "CRAN, CART"でグーグルして挙がってくる
- "CRAN Task View: Machine Learning & Statistical Learning"のページを
- "Ctrl + f"-> "CART"して、
- "Recursive Partitioning : tree-structured models for regression, classification and survival analysis, following the ideas in the CART book, are implemented in rpart (shipped with base R) and tree. Package rpart is recommended for computing CART-like trees." の文言をみつける
- Rでヘルプ記事を表示すれば
help(rpart)
fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis)
fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis,
parms=list(prior=c(.65,.35), split='information'))
fit3 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis,
control=rpart.control(cp=.05))
par(mfrow=c(1,2), xpd=NA)
plot(fit)
text(fit, use.n=TRUE)
plot(fit2)
text(fit2, use.n=TRUE)