- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- バイオ・データ・マイニング/Rで決定木を使う へ行く。
この記事はまだ書きかけです.
はじめに †
『Rによるバイオインフォマティクスデータ解析』の7.13節「決定木」を参考にして,決定木を学習します.
準備 †
Rのインストールと基本的な使い方については,次のページを見てください.
最初は,標準で使用できるirisデータセットを使います.
data(iris)
このデータセットは,アヤメの種類(Species)を花びらの長さ(Sepal.Length),幅(Lepal.Width),がくの長さ(Petal.Length),幅(Petal.Width)によって分類する問題です. 長さと幅は連続値,種類はsetosa, versicolor, virginicaのいずれかをとる離散値です.
このデータセットには,150個のデータが含まれています. ランダムに10個のデータを選択して,見てみましょう.
iris[sort(sample(1:150,10)),]
ここでは,treeパッケージ*1*2を使います. install.packagesコマンドを入力すると,パッケージをダウンロードするサーバーを聞かれますので,リストからJapanを選択します.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 4 4.6 3.1 1.5 0.2 setosa 22 5.1 3.7 1.5 0.4 setosa 65 5.6 2.9 3.6 1.3 versicolor 97 5.7 2.9 4.2 1.3 versicolor 100 5.7 2.8 4.1 1.3 versicolor 108 7.3 2.9 6.3 1.8 virginica 116 6.4 3.2 5.3 2.3 virginica 122 5.6 2.8 4.9 2.0 virginica 136 7.7 3.0 6.1 2.3 virginica 146 6.7 3.0 5.2 2.3 virginica
決定木を学習する †
決定木学習は,説明変数に対する条件を用いて事例集合を分割することによってラベル(カテゴリー)を予測するための決定木を学習するものです. 実物を見た方が理解しやすいので早速決定木を学習します.
まず,treeコマンドを用いて決定木を学習します.
install.packages("tree") library(tree)
ここで,第1引数の「Species ~ .」はモデル式,第2引数の「iris」は訓練データを表しています. モデル式は「目的変数 ~ 説明変数」という形で表現し,説明変数が「.」(ドット)のときは,目的変数以外の全ての変数を表します. したがって,ここでは,irisデータセットのSpeciesを目的変数とし,それ以外のすべての変数(Spepal.Lenght, Sepal.Width, Petal.Length, Petal.Width)を説明変数としています.
次に,学習された決定木を表示します.
iris.tree <- tree(Species ~ ., iris)
テキストでは分かりにくいので,図にします.
iris.tree
この図は上から順に読みます. 最初にPetal.Lengthの値が2.45より小さいか大きいかによって事例を分けます. Petal.Lengthの値が2.45よりも小さい事例は左に,そうでない事例は右に振り分けます.
先に表示したテキストと対応させます.
最初の条件で分割する前の集合は 1) で,150個の事例が含まれており,setosa, versicolor, virginicaがそれぞれ1/3ずつ含まれています. どれも同じ確率ですが,ここに含まれる事例をsetosaと予測しています.
最初の条件は「Petal.Length < 2.45」です. この条件に当てはまる事例の集合が 2) で,そうでない事例の集合が 3) です.
2) の集合に含まれる事例は50個で,すべてsetosaです. そこで,これ以上の分割はせずに,ここに振り分けられた事例をsetosaと予測します.
3) の集合に含まれる事例は100個で,その半数がversicolor,残りの半数がvirginicaです. そこで,ここに振り分けられた事例を二つ目の条件によってさらに分割します.
二つ目の条件は「Petal.Width < 1.75」です. この条件に当てはまる事例の集合が 6) で,そうでない事例の集合が 7) です.
二つ目の条件によって振り分けられた事例は,いずれも最初の条件によってすでに振り分けられていることに注意しましょう. たとえば,6) は「Petal.Length > 2.45 かつ Petal.Width < 1.75」を満たす事例の集合であり,7) は「Petal.Length > 2.45 かつ Petal.Width > 1.75」を満たす事例の集合です.
このような分割が以下同様に続きます.
この記事はまだ書きかけです.