Upload
ntt-communications
View
5.514
Download
11
Embed Size (px)
Citation preview
R による決定木解析
M1 大木基至
2011.12.06 データ解析
決定木とは?
回帰分析とは明示的な関数を用いずに,データを分類する手法説明変数の値を何らかの基準をもとに分岐させ,判別・予測のモデルを構築分岐の過程を図示することができるため,分析結果の可読性が高い。データマイニングで使われるトップ 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
ノードと分岐
2011.12.06 データ解析中間発表会
データ全体
葉ノード
根ノード
データが木の枝のように分かれる。
3 / 9
クラス分類の仕方
特徴(説明変数)とクラス(目的変数)をもったデータを利用して,クラス分類を行う。
2011.12.06 データ解析中間発表会
イメージ: X と Y の説明変数2つで3つのクラスを分類
Y
X1 回目の分岐:X=7
2 回目の分岐: Y=5
Y>5
Y≦5
x>7
4 / 9
分類の指標
2011.12.06 データ解析中間発表会
C5.0エントロピーに基づくゲイン比で分類
CHAID統計検定(連続変数: F 検定,カテゴリー変数:カイ2乗検定)の有意確率を基準に分類
CART不純度(バラツキの大きさ)を表す GINI 係数で分類ノードを分類させることで,不純度が減少する
( バラツキが少なくなる ) ような分岐点を探す。
今回は CART による指標で解析
5 / 9
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
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
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
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
まとめ
決定木モデルを R で作成した。Iris データを使って分析を行った。
木の剪定処理が必要他の分類手法と比較
2011.12.06 データ解析中間発表会 10 / 9