10
R にににににににに M1 にににに 2011.12.06 ににににに

Rによる決定木解析の一例

Embed Size (px)

Citation preview

Page 1: Rによる決定木解析の一例

R による決定木解析

M1 大木基至

2011.12.06  データ解析

Page 2: Rによる決定木解析の一例

決定木とは?

回帰分析とは明示的な関数を用いずに,データを分類する手法説明変数の値を何らかの基準をもとに分岐させ,判別・予測のモデルを構築分岐の過程を図示することができるため,分析結果の可読性が高い。データマイニングで使われるトップ 10 アルゴリズムとしても紹介されている。 [1]

2011.12.06 データ解析中間発表会

[1] XindongWu · Vipin Kumar · J. Ross Quinlan · Joydeep Ghosh · Qiang Yang etc. : Top 10 algorithms in data mining, Knowledge Information Systems, vol.14, pp.1-37, 2008

2 / 9

Page 3: Rによる決定木解析の一例

ノードと分岐

2011.12.06 データ解析中間発表会

データ全体

葉ノード

根ノード

データが木の枝のように分かれる。

3 / 9

Page 4: Rによる決定木解析の一例

クラス分類の仕方

特徴(説明変数)とクラス(目的変数)をもったデータを利用して,クラス分類を行う。

2011.12.06 データ解析中間発表会

イメージ: X と Y の説明変数2つで3つのクラスを分類

Y

X1 回目の分岐:X=7

2 回目の分岐: Y=5

Y>5

Y≦5

x>7

4 / 9

Page 5: Rによる決定木解析の一例

分類の指標

2011.12.06 データ解析中間発表会

C5.0エントロピーに基づくゲイン比で分類

CHAID統計検定(連続変数: F 検定,カテゴリー変数:カイ2乗検定)の有意確率を基準に分類

CART不純度(バラツキの大きさ)を表す GINI 係数で分類ノードを分類させることで,不純度が減少する

  ( バラツキが少なくなる ) ような分岐点を探す。

今回は CART による指標で解析

5 / 9

Page 6: Rによる決定木解析の一例

R で CART

・ mypart パッケージを CRAN からダウンロード

2011.12.06 データ解析中間発表会

#mvpart パッケージのインストール> install.packages(“mvpart”)

・ Fisher の iris データを使用   - がく (Sepal) ,花びら (Petal) , 3 種類のアヤメ (iris)

> head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5.1 3.5 1.4 0.2 setosa2 4.9 3.0 1.4 0.2 setosa3 4.7 3.2 1.3 0.2 setosa4 4.6 3.1 1.5 0.2 setosa5 5.0 3.6 1.4 0.2 setosa6 5.4 3.9 1.7 0.4 setosa

6 / 9

Page 7: Rによる決定木解析の一例

R で CART

2011.12.06 データ解析中間発表会

#iris データを奇数行 ( 訓練データ ) と偶数行 ( 評価データ ) に分割> nn <- 2*(1 : nrow(iris))-1> train.iris <- iris[nn, ] > test.iris <- iris[-nn, ]

# 決定木モデル> cart.model <- rpart(Species~., train.iris)> print(cart.model, digit=3) …  1) root 75 50 setosa (0.333 0.333 0.333)    2) Petal.Length< 2.45 25 0 setosa (1.000 0.000 0.000) *    3) Petal.Length>=2.45 50 25 versicolor (0.000 0.500 0.500)       6) Petal.Width< 1.65 25 1 versicolor (0.000 0.960 0.040) *     7) Petal.Width>=1.65 25 1 virginica (0.000 0.040 0.960) *

7 / 9

Page 8: Rによる決定木解析の一例

R で CART

2011.12.06 データ解析中間発表会

# 木を描く> plot(cart.model, uniform=T, branch=0.6, margin=0.5)> text(cart.model, use.n=T, all=T)

8 / 9

Page 9: Rによる決定木解析の一例

R で CART

# 評価のため表を作成。> cart.predict <- predict(cart.model, test.iris[,-5], type="class") > table(test.iris[,5], cart.predict)cart.predict      setosa versicolor virginica setosa    25     0 0 versicolor   0 24 1 virginica   0 3 22

2011.12.06 データ解析中間発表会

# 正解率> result <- table(test.iris$Species, cart.predict)>(result[1,1]+result[2,2]+result[3,3])/(result[1,1]+result[2,2]+result[3,3]+result[3,2]+result[2,3])0.9466667

9 / 9

Page 10: Rによる決定木解析の一例

まとめ

決定木モデルを R で作成した。Iris データを使って分析を行った。

木の剪定処理が必要他の分類手法と比較

2011.12.06 データ解析中間発表会 10 / 9