SlideShare a Scribd company logo
1 of 17
Download to read offline
Randomforestで高次元の変数重要度を見る     
Janitza,	S.,	Celik,	E.,	&	Boulesteix,	A.	L.	(2015).		
A	computaAonally	fast	variable	importance	test	for	random	forests	for	high-dimensional	data.	
	
20161127:	Japan.R	LT	@Yahoo!:	TwiTer:	@siero5335
機械学習で重要な課題といえば?     
特徴量の抽出!		
特にデータが高次元の場合、	
どれが重要な特徴量なのかわかりにくい
機械学習で重要な課題といえば?     
特徴量の抽出!		
特にデータが高次元の場合、	
どれが重要な特徴量なのかわかりにくい	
	
特徴量抽出についての参考資料	
	
	
	
	
	
	
	
hTp://www.slideshare.net/Keiku322/r48rtokyor	 hTp://www.slideshare.net/sercantahaahi/feature-
selecAon-with-r-in-jp	
XgboostのGBDT	feature,	FeatureHashing詳細	 RFのジニ係数から特徴選択
機械学習で重要な課題といえば?     
特徴量の抽出!		
特にデータが高次元の場合、	
どれが重要な特徴量なのかわかりにくい	
	
特徴量抽出についての参考資料	
	
	
	
	
	
	
	
	
RFだとGini係数あるいはpermutaAonから出す変数重要度
があるが今回はpermutaAonの変数重要度に基づいた手法	
hTp://www.slideshare.net/Keiku322/r48rtokyor	 hTp://www.slideshare.net/sercantahaahi/feature-
selecAon-with-r-in-jp	
XgboostのGBDT	feature,	FeatureHashing詳細	 RFのジニ係数から特徴選択
変数重要度の分布を計算できれば仮説検定もできるはず	
	Randomforestで高次元の変数重要度を見る     
Janitza,	S.,	Celik,	E.,	&	Boulesteix,	A.	L.	(2015).		
A	computaAonally	fast	variable	importance	test	for	random	forests	for	high-dimensional	data.
どうやって使うの?
hTps://cran.r-project.org/web/packages/vita/index.html	
randomforestとvita	packageを組み合わせて使うのが普通だが、	
ranger内に関数が用意されてて早くて楽なので今回はそっちを使う
どうやって使うの?rangerのすがた
library(ranger)	#	>	version	0.5.0	
library(mlbench)	
	
data(Sonar,	package="mlbench")	
Sonar[,61]	=	as.numeric(Sonar[,61])-1	
Sonar	<-	as.data.frame(Sonar)	
	
testRF	<-	ranger(Class	~	.,	data	=	Sonar,	mtry	=	5,	importance	=				
		"permutaAon")
どうやって使うの?rangerのすがた
library(ranger)	#	>	version	0.5.0	
library(mlbench)	
	
data(Sonar,	package="mlbench")	
Sonar[,61]	=	as.numeric(Sonar[,61])-1	
Sonar	<-	as.data.frame(Sonar)	
	
testRF	<-	ranger(Class	~	.,	data	=	Sonar,	mtry	=	5,	importance	=		
		"permutaAon")	
	
importance_pvalues(testRF,	method	=	"janitza",	conf.level	=	0.95)	
importanceが信頼区間,	
p-value付きででてくる
どうやって使うの?caretのすがた
library(ranger)	
library(caret)	
library(mlbench)	
	
data(Sonar,	package="mlbench")	
	
train.x	=	data.matrix(Sonar[train.ind,	1:60])	
train.y	=	Sonar[train.ind,	61]	
	
tr	=	trainControl(method	=	"repeatedcv”,	number	=	5,	repeats	=	5)	
	
grid	=	expand.grid(mtry	=	1:20)	
	
set.seed(71)	
ranger_fit	=	train(train.x,	train.y,	method	=	"ranger",	
tuneGrid	=	grid,	trControl=tr,	importance	=	"permutaAon")	
	
importance_pvalues(ranger_fit$finalModel,	method	=	"janitza",		
		conf.level	=	0.95)
おおまかなしくみ
VIj:	変数Xjの変数重要度,	0以上であれば判別に寄与してる	
	
(Xjを使うより、Xjの独立したコピーであるXj*を使ったほうが
誤分類率が高い)	
通常であれば下記のように、OOBから変数重要度を求める
おおまかなしくみ
Hold-outなら2個,	CVならk個のモデルをつくり、	
それぞれのモデルにおける変数重要度を求めることもできる	
	
	
	
	
Slを使って算出	
Holdout	 K-fold	CV	
(目的変数がカテゴリの場合)
おおまかなしくみ
Hold-outなら2個,	CVならk個のモデルをつくり、	
それぞれのモデルにおける変数重要度を求めることもできる	
	
	
	
	
Slを使って算出	
Holdout	 K-fold	CV	
(目的変数がカテゴリの場合)	
今回はこっちを使う	 Vita	packageだと	
kも指定できる
おおまかなしくみ
1.  元データをランダムに半分こ	
2.  下記の感じでF^
0を算出する	
3.  p-valueを より算出	
例:	変数重要度が負のやつ全て	
例:	変数重要度が0のやつ全て	
例:	変数重要度が負のモノすべて
に-1を掛けた値	
:	empirical	cumulaAve	distribuAon	funcAon	
馴染み深いp-valueが出てくるので	
カットオフラインがわかりやすい
どうでもいいこと
著者はメディカルインフォマティクス畑の人	
D論が出てるので熱心な方は以下参照(今年の?	
hTps://edoc.ub.uni-muenchen.de/19671/1/Janitza_Silke.pdf
Enjoy	feature	selecAon	!
どうやって使うの?vitaのすがた
hTps://cran.r-project.org/web/packages/vita/index.html	
randomforestとvita	packageを組み合わせて使うのが普通だが、	
ranger内に関数が用意されてて早くて楽なので今回はそっちを使う	
Vita	packageの場合の使い方	
cv_vi	=	CVPVI(X,y,k	=	2,mtry	=	3,	
		ntree	=	1000,ncores	=	4)	
cv_p	=	NTA(cv_vi$cv_varim)		
summary(cv_p,pless	=	0.1)	
cl.rf	=	randomForest(X,y,mtry	=	3,ntree	=				
		500,	importance	=	TRUE)	
pvi_p	=	NTA(importance(cl.rf,	type=1,		
		scale=FALSE))	
summary(pvi_p)	
または

More Related Content

What's hot

階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
Yohei Sato
 

What's hot (20)

Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するモデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留する
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
 

Viewers also liked

傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
takehikoihayashi
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
takehikoihayashi
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
Shintaro Fukushima
 

Viewers also liked (13)

Random Forest による分類
Random Forest による分類Random Forest による分類
Random Forest による分類
 
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
 
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
 
Tidyverseとは
TidyverseとはTidyverseとは
Tidyverseとは
 
統計的因果推論勉強会 第1回
統計的因果推論勉強会 第1回統計的因果推論勉強会 第1回
統計的因果推論勉強会 第1回
 
木と電話と選挙(causalTree)
木と電話と選挙(causalTree)木と電話と選挙(causalTree)
木と電話と選挙(causalTree)
 
てかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanRてかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanR
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
 
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
 

More from Akifumi Eguchi

みどりぼん9章前半
みどりぼん9章前半みどりぼん9章前半
みどりぼん9章前半
Akifumi Eguchi
 

More from Akifumi Eguchi (19)

PlaidML Kerasでやっていく #TokyoR 73
PlaidML Kerasでやっていく #TokyoR 73PlaidML Kerasでやっていく #TokyoR 73
PlaidML Kerasでやっていく #TokyoR 73
 
High-order factorization machines with R #tokyor 61
High-order factorization machines with R  #tokyor 61High-order factorization machines with R  #tokyor 61
High-order factorization machines with R #tokyor 61
 
統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本
 
Dslt祭り2夜
Dslt祭り2夜Dslt祭り2夜
Dslt祭り2夜
 
環境化学データ解析入門: 愛媛大講演資料 160728
環境化学データ解析入門: 愛媛大講演資料 160728環境化学データ解析入門: 愛媛大講演資料 160728
環境化学データ解析入門: 愛媛大講演資料 160728
 
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
 
Mxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53thMxnetで回帰 #TokyoR 53th
Mxnetで回帰 #TokyoR 53th
 
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
 
ぞくパタ最終回: 13章「共クラスタリング」
ぞくパタ最終回: 13章「共クラスタリング」ぞくパタ最終回: 13章「共クラスタリング」
ぞくパタ最終回: 13章「共クラスタリング」
 
Deep learningもくもくハッカソンまとめup用
Deep learningもくもくハッカソンまとめup用Deep learningもくもくハッカソンまとめup用
Deep learningもくもくハッカソンまとめup用
 
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
 
第2回ぞくパタ
第2回ぞくパタ第2回ぞくパタ
第2回ぞくパタ
 
第一回ぞくパタ
第一回ぞくパタ第一回ぞくパタ
第一回ぞくパタ
 
ぞくパタ はじめに
ぞくパタ はじめにぞくパタ はじめに
ぞくパタ はじめに
 
Tokyo.r #44 lt.pptx
Tokyo.r #44 lt.pptxTokyo.r #44 lt.pptx
Tokyo.r #44 lt.pptx
 
Tokyo r #43
Tokyo r #43Tokyo r #43
Tokyo r #43
 
みどりぼん9章前半
みどりぼん9章前半みどりぼん9章前半
みどりぼん9章前半
 
みどりぼん3章前半
みどりぼん3章前半みどりぼん3章前半
みどりぼん3章前半
 
Tokyo R #39
Tokyo R #39Tokyo R #39
Tokyo R #39
 

Randomforestで高次元の変数重要度を見る #japanr LT