feature selection with r / in jp

39
第 37 第 R 第第第 第第第 @( #TokyoR @srctaha Sercan Taha Ahi 2014-03-29 16:00:00 JST (Sat) R 第第第第第第第

Upload: sercan-taha-ahi

Post on 29-Jun-2015

5.459 views

Category:

Data & Analytics


5 download

DESCRIPTION

7 R packages that might be helpful in selecting important features. Slides are in Japanese.

TRANSCRIPT

Page 1: Feature Selection with R / in JP

第 37回 R勉強会@東京(#TokyoR)

@srctaha

Sercan Taha Ahi2014-03-29 16:00:00 JST (Sat)

R による特徴選択

Page 2: Feature Selection with R / in JP

2

http://theecheloneffect.bandcamp.com/album/random-forest

先ずは Leo Breiman と環境音楽ファンの為のご紹

Random Forest by Random Forest

Page 3: Feature Selection with R / in JP

3

この発表の目標1. 特徴選択に役に立つ様々な R パッケージの紹介

2. いくつかの簡単なアルゴリズムの紹介

3. Random Forest の「特徴重要度」機能を使う時に気を付けないといけない

点の紹介

4. 発表者が「特徴」と「特徴量」の差が分からないこと、又 Leo Breiman の

ファンであることの紹介

Let’s go!

Page 4: Feature Selection with R / in JP

4

アジェンダ1. 自己紹介

2. なぜ特徴選択?

3. 特徴選択法の種類(どうでもいい話ですが一応)

4. 関連 R パッケージの紹介( 7 つあります)

5. まとめ

Page 5: Feature Selection with R / in JP

5

自己紹介• トルコ、アンカラ出身( 1981 年)

• B.Sc. & M.Sc. : Middle East Technical University (電子電気工学部)

• Ph.D. :東京工業大学( 2011 年)

• 現在はソーシャルゲーム運営会社でデータアナリス

• 2003 年~ 2012 年「 Matlab と C++ 」

• 2012 年以降「 R 」

• 現在の業務で「 R 」を日次的に使用しているが、データ取得と加工は主な目

• Excel は知らないし、じゃっかん苦手でもある

Page 6: Feature Selection with R / in JP

6

なぜ特徴選択?

1) 医療保険のみに入っている顧客と、複数の保険に入っている顧客との差はど

のような特徴か調べるため(調査空間を縮小するため)

2) ある新規顧客が複数の保険に加入するかどうかを予測するモデルの精度向上

のため

3) 1と2に必要ではない情報を顧客から取らないで、顧客側と企業側の負担を

減らすため

4) 予測モデル作りに必要な計算を減らすため

例:ある保険会社の顧客10万人のデータを元に、医療保険のみに入っている顧

客を特定するというタスクがある。

Page 7: Feature Selection with R / in JP

7

特徴選択の種類 (1/3): フィルター法

全ての特徴 フィルタ 特徴部分集合 分類器

• 早い

• 過剰適合が起こりにくい

Page 8: Feature Selection with R / in JP

8

(2)選択された特徴( <P )

遺伝的アルゴリズム

特徴選択の種類 (2/3): ラッパー法(一例)

学習データ(サンプル数: N 、特徴数: P )

ANN

特徴部分集合

( <P )

評価結果

ANN

学習された分類器

(1) (3)

ラッパー(包装)

Page 9: Feature Selection with R / in JP

9

特徴選択の種類 (2/3): ラッパー法

• 複数の特徴部分集合で分類器を学習及びテストし、最適な部分集合を探す

• テストの際に交差検定を使用する場合が多い

• 特徴選択する際に使用される分類器と、選択後に使用される分類器が同じなの

で、過剰適合が起こってもおかしくない

Page 10: Feature Selection with R / in JP

10

特徴選択の種類 (3/3): 組み込み法

特徴部分集合組み込み法全ての特徴 分類器

• 分類器を学習する際に特徴選択を行う。例:決定木、 Random Forest 、 L1-

SVM 等

• ラッパー法に近いが、更に早く、比較的に過剰適合が起こりにくい

Page 11: Feature Selection with R / in JP

11

関連 R パッケージ

1) randomForest ( 予測精度と、 ジニ不純度の平均低下による特徴重要度)

2) party (↑の予測精度の平均低下の計り方を変えたアルゴリズム)

3) Boruta ( Random Forest を使用したラッパー法)

4) penalizedSVM ( SVM のペナルティ関数を変えることが可能に)

5) FSelector ( Weka を元にし、複数の特徴選択法を提供)

6) CORElearn (複数の特徴選択法、 10個以上の Relief系アルゴリズム)

7) ClustOfVar (特徴をグループ化し、グループ代表のみを選ぶことを可能に)

Page 12: Feature Selection with R / in JP

12

1 2 3 P y

1

2

N

2 6 8 P y

5

6

7

9

8

N

決定木の学習用

決定木のテスト用※Out-Of-Bag ( OOB )※ブートストラップ・サンプルの約 3 分の1

1

3

2

5

第1決定木 第2決定木 第 ntree 決定木( randomForest パッケージの場合)

ブートストラップ・サンプル

mtry 数の特徴量が適当に

サンプルされる (mtry < P)

( randomForest パッケージの場合)

特徴行列:

{(x1, y1), (x2, y2), …, (xN, yN)}

where xn ∈ RP & yn ∈ {0, 1}

1 2 5 7 y

2

4

4

7

7 8 9 P y

1

3

7

9

Random Forest の基礎から

Page 13: Feature Selection with R / in JP

13

★http://tjo.hatenablog.com/entry/2013/12/24/190000★

説明が分かりづらいと思う方の為に↓

Page 14: Feature Selection with R / in JP

14

require(randomForest)

(1/2) 予測精度の平均低下による重要度

結論から言うと、

そもそも重要ではない特徴の値を適当に変えても分類精度が変わらない

が、重要な特徴の値を変えると精度が下がる。

・・・という前提

Breiman and Cutler’s random forests for classification and regression

Road to the freedom

Page 15: Feature Selection with R / in JP

15

require(randomForest)

(1/2) 予測精度の平均低下による重要度

結論から言うと、

そもそも重要ではない特徴の値を適当に変えても分類精度が変わらない

が、重要な特徴の値を変えると精度が下がる。

・・・という前提

Breiman and Cutler’s random forests for classification and regression

Page 16: Feature Selection with R / in JP

16

require(randomForest)(1/2) 予測精度の平均低下(特徴量加工)による重要度

@alfredplpl さんの★ http://alfredplpl.hatenablog.com/entry/2013/12/24/225420★

素晴らしい図!

Page 17: Feature Selection with R / in JP

17

14個のデータ集合の中、 9個が○、 5個が△1

2

3

4

5

67

89

1

2

34 5

ジニ不純度 = 1 – (割合○ )2 – (割合△ )2

= 1- (9/14)2 - (5/14)2

= 0.459

require(randomForest)

• ジニ不純度が小さければ小さい程データ集合がきれいに別れている

• 全ての木で枝を作る前と作った後のジニ不純度の差をとり、その差を枝を作る

ときに使用した特徴に与える

• 特徴毎に与えられたジニ不純度の差の平均値を算出し、それを「重要度」と呼

(2/2) ジニ不純度の平均低下による重要度

Page 18: Feature Selection with R / in JP

18

my.seed <- 12345set.seed(my.seed) # seed を設定n_var <- 20 # 特徴量の数n_obs <- 6000 # 観測データの数

Sigma <- matrix(0, nrow = n_var, ncol = n_var) # 適当な分散共分散行列を作る

# 最初の 5 個の特徴量の間の相関を高めにし、他の特徴量の間で相関がないことにするSigma[1:5, 1:5] <- 0.9diag(Sigma) <- 1

A <- mvrnorm(n = n_obs, rep(0, n_var), Sigma) # 多次元正規分布に従って適当な値を作るeps <- rnorm(n_obs, mean = 0, sd = 0.5) # 正規分布に従って 1 次元の適当な値を作る

# 各説明変数と目的変数の関係の重みを決めるw <- rep(0, n_var); w[c(3, 5, 10, 15, 16, 20)] <- c(5, 5, 2, -5, -5, -4)

# 0/1 の目的変数を作るY <- A %*% w + epsY <- ifelse(Y < 0, 0, 1)my.data <- as.data.frame(cbind(A, Y))names(my.data)[1:5] <- paste("CORR_VAR", 1:5, sep = "")names(my.data)[n_var+1] <- "LABEL"my.data$LABEL <- factor(my.data$LABEL)

# データに目的変数と関係のない説明変数を加える my.data$MANY_CTG <- factor( rep(1:30, each = n_obs/30) )my.data$FEWER_CTG <- factor( rep(1:10, each = n_obs/10) )

require(randomForest)シミュレーション

Page 19: Feature Selection with R / in JP

19

# Random Forest を作るset.seed(my.seed)model <- randomForest(LABEL ~ ., data = my.data, ntree = 51, importance = T, scale = F)

# 特徴量の重要度を確認するrequire(data.table)

# 1: 予測精度の平均低下による重要度imp1 <- importance(model, type = 1)[, 1]imp1 <- data.table(Feature = names(imp1), RealWeight = c(w, 0, 0), MeanDecreaseAccuracy = imp1)imp1 <- imp1[order(-MeanDecreaseAccuracy)]

# 2: ジニ不純度の平均低下による重要度imp2 <- importance(model, type = 2)[, 1]imp2 <- data.table(Feature = names(imp2), RealWeight = c(w, 0, 0), MeanDecreaseGini = imp2)imp2 <- imp2[order(-MeanDecreaseGini)]

require(randomForest)シミュレーション

Page 20: Feature Selection with R / in JP

20

予測精度の平均低下による重要度:

相関の高い説明変数が目的変数と

関係がなくても重要に見えてしまう

require(randomForest)importance(model, type = 1)

Feature RealWeight MeanDecreaseAccuracy 1: V15 -5 30.9710765 2: V16 -5 25.1993199 3: V20 -4 20.5737122 4: CORR_VAR5 5 17.9920379 5: CORR_VAR3 5 16.6779248 6: CORR_VAR4 0 12.0445416 7: CORR_VAR1 0 9.6217582 8: CORR_VAR2 0 8.9002274 9: V10 2 6.878369610: V18 0 2.621231111: V8 0 2.356023112: V19 0 1.920458713: V6 0 1.288419214: V17 0 0.773370615: V12 0 0.754073516: FEWER_CTG 0 0.466729217: V7 0 0.334675518: V13 0 -0.136500819: V14 0 -0.167604320: MANY_CTG 0 -0.260430321: V9 0 -0.848613922: V11 0 -0.9929386

Page 21: Feature Selection with R / in JP

21

ジニ不純度の平均低下による重要度:

相関の高い説明変数が目的変数と

関係がなくても重要に見えてしまう

カテゴリ数の高い説明変数が

重要に見えてしまう

require(randomForest)importance(model, type = 2)

Feature RealWeight MeanDecreaseGini 1: CORR_VAR5 5 425.74755 2: CORR_VAR3 5 336.02387 3: V15 -5 312.48866 4: V16 -5 312.25576 5: CORR_VAR4 0 293.87764 6: CORR_VAR1 0 249.50984 7: V20 -4 206.65883 8: MANY_CTG 0 193.26805 9: CORR_VAR2 0 131.9556210: V10 2 80.2297411: FEWER_CTG 0 44.4351112: V8 0 40.4942513: V13 0 38.8197714: V11 0 38.6766115: V12 0 38.3214016: V19 0 37.7615917: V18 0 37.4623818: V14 0 37.1052319: V6 0 36.5694520: V17 0 36.4904221: V9 0 36.3231522: V7 0 35.08350

Page 22: Feature Selection with R / in JP

22

require(party)

アイディア→

※“We want to measure the association between xp (説明変数 ) and y (目的変

数) given the correlation structure between xp and the other predictor variables

inherent in the data set.

To meet this aim, Strobl et al. (2008) suggest a conditional permutation

scheme, where xp is permuted only within groups of observations (他の説

明変数) with Z = z in order to preserve the correlation structure between xp and

the other predictor variables”

A toolbox for recursive partitioning

※Strobl et al., 2009, “Party on! A New, Conditional Variable Importance Measure for Random Forests Available in the party Package”

model <- cforest(formula, data = list(), control = cforest_unbiased())

varimp(model, conditional = TRUE) # 予測精度の平均低下

使い方→

Page 23: Feature Selection with R / in JP

23

my.seed <- 12345set.seed(my.seed) # seed を設定n_var <- 20 # 特徴量の数n_obs <- 480 # 観測データの数

Sigma <- matrix(0, nrow = n_var, ncol = n_var) # 適当な分散共分散行列を作る

# 最初の 5 個の特徴量の間の相関を高めにし、他の特徴量の間で相関がないことにするSigma[1:5, 1:5] <- 0.9diag(Sigma) <- 1

A <- mvrnorm(n = n_obs, rep(0, n_var), Sigma) # 多次元正規分布に従って適当な値を作るeps <- rnorm(n_obs, mean = 0, sd = 0.5) # 正規分布に従って 1 次元の適当な値を作る

# 各説明変数と目的変数の関係の重みを決めるw <- rep(0, n_var); w[c(3, 5, 10, 15, 16, 20)] <- c(5, 5, 2, -5, -5, -4)

# 0 か 1 の目的変数を作るY <- A %*% w + epsY <- ifelse(Y < 0, 0, 1)my.data <- as.data.frame(cbind(A, Y))names(my.data)[1:5] <- paste("CORR_VAR", 1:5, sep = "")names(my.data)[n_var+1] <- "LABEL"my.data$LABEL <- factor(my.data$LABEL)

# データに目的変数と関係のない説明変数を加える my.data$MANY_CTG <- factor( rep(1:30, each = n_obs/30) )my.data$FEWER_CTG <- factor( rep(1:10, each = n_obs/10) )

require(party)シミュレーション → この部分を飛ばす

Page 24: Feature Selection with R / in JP

24

# Random Forest を作るset.seed(my.seed)model <- cforest(LABEL ~ ., data = my.data, control = cforest_unbiased(mtry = 5, ntree = 51))

# [1] 条件付き重要度imp <- varimp(model, conditional = T)fweights.party <- data.table(Feature = names(imp), RealWeight = c(w, 0, 0), ConditionalImp = imp)fweights.party <- fweights.party[order(-ConditionalImp)]fweights.party$ConditionalImp <- as.integer(fweights.party$ConditionalImp*100000)fweights.party

# [2] 予測精度の平均低下による重要度imp.rf <- varimp(model, conditional = F)fweights.rf <- data.table(Feature = names(imp.rf), RealWeight = c(w, 0, 0), MeanDecreaseAccuracy = imp.rf)fweights.rf <- fweights.rf[order(-MeanDecreaseAccuracy)]fweights.rf$MeanDecreaseAccuracy <- as.integer(fweights.rf$MeanDecreaseAccuracy*100000)fweights.rf

require(party)シミュレーション → この部分を飛ばす

Page 25: Feature Selection with R / in JP

25

require(party)

Feature RealWeight ConditionalImp 1: V15 -5 1359 2: V16 -5 1314 3: CORR_VAR3 5 701 4: V20 -4 311 5: V10 2 245 6: CORR_VAR5 5 245 7: CORR_VAR2 0 144 8: V6 0 44 9: V7 0 1110: V9 0 1111: CORR_VAR4 0 1112: MANY_CTG 0 013: V8 0 014: V14 0 015: CORR_VAR1 0 -1116: V18 0 -1117: V19 0 -2218: FEWER_CTG 0 -2219: V12 0 -2220: V13 0 -3321: V17 0 -3322: V11 0 -55

観測データの数は480、 ConditionalImp と MeanDecreaseAccuracy は

実際の値の10 ^6倍(結果を読みやすくするため)

Feature RealWeight MeanDecreaseAccuracy 1: CORR_VAR5 5 5436 2: V15 -5 3821 3: CORR_VAR3 5 3765 4: CORR_VAR4 0 3241 5: V16 -5 2662 6: CORR_VAR1 0 2495 7: V20 -4 1470 8: CORR_VAR2 0 779 9: V10 2 28910: V17 0 24511: V8 0 11112: V7 0 10013: MANY_CTG 0 8914: V14 0 8915: V18 0 5516: V11 0 1117: FEWER_CTG 0 -2218: V9 0 -3319: V12 0 -10020: V6 0 -11121: V13 0 -16722: V19 0 -167

party の重要度計算が時間かかるが、結果の改善が期待できる!

Page 26: Feature Selection with R / in JP

26

require(Boruta)A wrapper algorithm around Random Forests

森の神様

Page 27: Feature Selection with R / in JP

27

require(Boruta)A wrapper algorithm around Random Forests

1) 全ての特徴量のコピーをダミー特徴量として元データに加える( cbind )

2) ダミー特徴量だけをシャッフル

3) 拡張されたデータで Random Forest を実行し、特徴毎に「予測精度の低下 」の Z スコ

アを算出

4) 重要度を決定前の特徴量と MZSA の「両側検定」を行う

5) MZSA より低く、その差の有意差がある特徴量を「重要ではない」と決め、データから

はずす

6) MZSA より高くて、その差の有意差がある特徴を「重要ではある」と決める

7) ダミー特徴量をはずす

8) ステップ 1 に戻り、全ての特徴量を「重要ではない・ある」と決めるまでこのプロセス

を繰り返す

Page 28: Feature Selection with R / in JP

28

require(Boruta)A wrapper algorithm around Random Forests

1) 全ての特徴量のコピーをダミー特徴量として元データに加える( cbind )

2) ダミー特徴量だけをシャッフル

3) 拡張されたデータで Random Forest を実行し、特徴毎に「予測精度の低下 」の Z スコ

アを算出

4) 重要度を決定前の特徴量と MZSA の「両側検定」を行う

5) MZSA より低く、その差の有意差がある特徴量を「重要ではない」と決め、データから

はずす

6) MZSA より高くて、その差の有意差がある特徴を「重要ではある」と決める

7) ダミー特徴量をはずす

8) ステップ 1 に戻り、全ての特徴量を「重要ではない・ある」と決めるまでこのプロセス

を繰り返す

Page 29: Feature Selection with R / in JP

29

require(penalizedSVM)Feature selection by using various penalty functions with SVM

SVM と言えば、 L2-norm ですが、このパッケージで以下の4つのペナルテー関数の使用も

可能に

1) L1-norm

2) Smoothly Clipped Absolute Deviation (SCAD)

3) Elastic net (L1 & L2-norm)

4) ELastic SCAD (SCAD + L1 norm)

閉形式解がない!

と言うのは、解決が時間が

かかる。しかもかなりかかる

svm.fs( 学習データ , クラスラベル , fs.method = c("scad", "1norm",

"scad+L2", "DrHSVM"), …)

主な関数

Page 30: Feature Selection with R / in JP

30

require(FSelector)

関数 説明 数式

相関駆動

特徴選択

linear.correlation ピアソンの相関係数

rank.correlation スピアマンの順位相関係数

情報量駆動

特徴選択

information.gain 情報量の増分

gain.ratio 情報量の割合

symmetrical.uncertaint

y対称な不確実性

Selecting attributes with various methods

)特徴H()クラスH(

)特徴、クラスH()特徴H()クラスH(2

)特徴H(

)特徴、クラスH()特徴H()クラスH(

)特徴、クラスH()特徴H()クラスH(

22

サンプル数

1n

)()(

))((

yyxx

yyxx

nn

nn

Page 31: Feature Selection with R / in JP

31

関数 説明 補足

chi.squared カイ二乗フィルター

カテゴリデータ用ですが、

連続変数の離散化の上、使用可能。

教師あり離散化のため、 discretization パッ

ケージがおすすめ。

oneR1 つのルールアルゴリズ

reliefReliefF 、特徴の重要度を

推定するアルゴリズム

Kira and Rendell 1992 、元々二項分類のみ

RELIEF 、 RELIEFF 、 RRELIEFF 等の延長版が多

・・・

require(FSelector)Selecting attributes with various methods

Page 32: Feature Selection with R / in JP

32

require(CORElearn)Classification, regression, feature evaluation and ordinal evaluation

このパッケージの強みでもある Relief アルゴリズム

F1 F2 F3 y

1 0.6 0.2 0.7 1

2 0.7 0.2 0.7 1

3 0.8 0.3 0.8 1

4 0.1 0.2 0.2 0

5 0.3 0.1 0.1 0

6 0.4 0.2 0.8 0

3 0.8 0.3 0.8 1

6 0.4 0.2 0.8 0

nearMiss

2 0.7 0.2 0.7 1

nearHit

(1)適当に 1 つの特徴ベクトルを選択

(2)選択された特徴

ベクトルに同じクラスと反対クラスのメンバーの中で一番近いベクトルを 2 つを見つけ

二項分類用の学習データ

(3)特徴重みを以下の通りに更新する

Wn=W(n-1) – (xn - nearHit)2 + (xn - nearMiss)2

(4)ステップ1に戻り、このサイクルを N回繰り返す( n :サイクル数)

Page 33: Feature Selection with R / in JP

33

F1 F2 F3

0.15 0.01 0.10

特徴重要度を表すWベクトル

Relief

F1 F2 F3 y

1 0.6 0.2 0.7 1

2 0.7 0.2 0.7 1

3 0.8 0.3 0.8 1

4 0.1 0.2 0.2 0

5 0.3 0.1 0.1 0

6 0.4 0.2 0.8 0

二項分類用の学習データ

require(CORElearn)Classification, regression, feature evaluation and ordinal evaluation

このパッケージの強みでもある Relief アルゴリズム

Page 34: Feature Selection with R / in JP

34

attrEval(formula, data, estimator, costMatrix = NULL, ...)

1 Relief

2 ReliefFbestK

3 ReliefKukar

4 ReliefFexpC

5 ReliefFavgC

6 ReliefFpe

7 ReliefFpa

8 ReliefFsmp

9 ReliefFmerit

10 ReliefFdistance

11ReliefFsqrDistance

12 MyopicReliefF

13 DKM

14 DKMcost

15 EqualDKM

16 UniformDKM

17 InfGain

18 GainRatioCost

19 GainRatio

20 MDL

21 Gini

22 EqualGini

23 ImpurityEuclid

24 ImpurityHellinger

25 UniformGini

26 Accuracy

27 MDLsmp

28 UniformInf

29 UniformAccuracy

30 EqualInf

31 EqualHellinger

32 DistHellinger

33 DistAUC

34 DistAngle

35 DistEuclid

36 EqualHellinger

37 DistHellinger

38 DistAUC

39 DistAngle

40 DistEuclid

分類だけで 40個の

特徴重要度推定法

( estimator )がある。

その中、 Relief系が 10個以上!

require(CORElearn)

Page 35: Feature Selection with R / in JP

35

• お互いに似ている特徴量で「同質のグループ」を作る

• しかも、定量的データと定性的データの Mix データの対応も可能

• 「同質のグループ」とは、グループメンバーの特徴が1つの人工的な変数に近い

• その近さは、定量的データの場合 squared Pearson correlation 、定性的データの場合、

correlation ratio で決める

先ほどのシミュレーションデータ

の場合

require(ClustOfVar)Variable selection using random forests

Page 36: Feature Selection with R / in JP

36

まとめ• Random Forest の場合、ジニ不純度に基づく重要度は、沢山のカテゴリーのあ

る特徴量に高い値を与えてしまう。

• Random Forest 万歳!と思う方には、 party パッケージの varimp(model,

conditional = TRUE) がお勧め。メモリ消費量も計算時間も多いが。

• penalizedSVM は遅く、 収束しないケースが多い。だけど、特徴量のインパク

トの大きさと方向を出せるところが魅力的。

• Boruta はどのような時に役に立つか分からない。

• 世の中に RF ラッパー法は沢山あるが、全てを試す価値があるか分からない。

Page 37: Feature Selection with R / in JP

37

まとめ• この方法が最高!とは言えないので、複数のアルゴリズムを同時に使用した上

で判断することがお勧め(アンサンブル形式)

• アンサンブル形式で特徴選択するには、 FSelector と CORElearn が便利

• Relief はシンプルな方法で、皆様に是非検討して頂きたい

• 特徴量でグループを作ることが格好いい!いつか使ってみよう(自己メモ)

• 2 変数間の相関を元に重要度を推定するのは、危ないかも(参考文献#4 )

• アルゴリズムによって(例えば、カイ二乗検定)連続変数の離散化が必要にな

る。離散化をそのままパッケージの特徴重要度を測る関数に任せない方が安全

だと思う。

Page 38: Feature Selection with R / in JP

38

参考文献1) Random Forest で計算できる特徴量の重要度、 URL( 最終アクセス: 2014/3/25): http://

alfredplpl.hatenablog.com/entry/2013/12/24/225420

2) パッケージユーザーのための機械学習 (5) :ランダムフォレスト、 URL( 最終アクセス: 2014/3/25):

http://tjo.hatenablog.com/entry/2013/12/24/190000

3) Stop using bivariate correlations for variable selection 、 URL( 最終アクセス: 2014/3/25): http://

jacobsimmering.com/2014/03/20/BivariateCorrelations.html

4) Strobl et al., 2009, “Party on! A New, Conditional Variable Importance Measure for Random Forests

Available in the party Package”

5) Becker et al., 2009, “penalizedSVM: a R-package for feature selection SVM classification”

6) 「森の神様」写真 、 URL( 最終アクセス: 2014/3/28): http://morisong04.exblog.jp/i22/

7) Twitter icon by Nikola Lazarevic 、 URL( 最終アクセス: 2014/3/25):

http://webexpedition18.com/work/extreme-grunge-social-media-garments-icons-pack/

Page 39: Feature Selection with R / in JP

39

ご清聴ありがとうございました