- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- バイオ・データ・マイニング/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パッケージを使います. 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よりも小さい事例は左に,そうでない事例は右に振り分けます.