SlideShare a Scribd company logo
Suche senden
Hochladen
Einloggen
Registrieren
Randomforestで高次元の変数重要度を見る #japanr LT
Melden
Akifumi Eguchi
Folgen
Assistant Professor - Chiba University um Chiba University
27. Nov 2016
•
0 gefällt mir
•
12,439 views
1
von
17
Randomforestで高次元の変数重要度を見る #japanr LT
27. Nov 2016
•
0 gefällt mir
•
12,439 views
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Melden
Daten & Analysen
JapanR 2016でのLT資料です
Akifumi Eguchi
Folgen
Assistant Professor - Chiba University um Chiba University
Recomendados
協調フィルタリング with Mahout
Katsuhiro Takata
6.4K views
•
22 Folien
機械学習
Hikaru Takemura
8.3K views
•
25 Folien
機械学習チュートリアル@Jubatus Casual Talks
Yuya Unno
735.2K views
•
41 Folien
統計学勉強会#2
Hidehisa Arai
5.8K views
•
15 Folien
Pythonによる機械学習
Kimikazu Kato
14K views
•
30 Folien
機械学習によるデータ分析まわりのお話
Ryota Kamoshida
567.8K views
•
75 Folien
Más contenido relacionado
Was ist angesagt?
機械学習の理論と実践
Preferred Networks
211.5K views
•
98 Folien
ディープラーニングで株価予測をやってみた
卓也 安東
35.1K views
•
102 Folien
機械学習 入門
Hayato Maki
18.3K views
•
49 Folien
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Preferred Networks
9.7K views
•
50 Folien
Jubatusにおける機械学習のテスト@MLCT
Yuya Unno
17.9K views
•
44 Folien
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Yuya Unno
5.5K views
•
45 Folien
Was ist angesagt?
(20)
機械学習の理論と実践
Preferred Networks
•
211.5K views
ディープラーニングで株価予測をやってみた
卓也 安東
•
35.1K views
機械学習 入門
Hayato Maki
•
18.3K views
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Preferred Networks
•
9.7K views
Jubatusにおける機械学習のテスト@MLCT
Yuya Unno
•
17.9K views
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Yuya Unno
•
5.5K views
機械学習CROSS 前半資料
Shohei Hido
•
18.7K views
Jubatusにおける大規模分散オンライン機械学習
Preferred Networks
•
14.4K views
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Yuya Unno
•
13.6K views
TensorFlowとは? ディープラーニング (深層学習) とは?
KSK Analytics Inc.
•
25.9K views
人工知能の概論の概論とセキュリティへの応用(的な~(改)
Typhon 666
•
10.5K views
Pythonとdeep learningで手書き文字認識
Ken Morishita
•
196.9K views
(道具としての)データサイエンティストのつかい方
Shohei Hido
•
8.3K views
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
Takashi J OZAKI
•
16.1K views
ICML2013読み会 開会宣言
Shohei Hido
•
6.2K views
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Hisao Soyama
•
30.4K views
TokyoR42_around_chaining
TokorosawaYoshio
•
18.9K views
ようやく分かった!最尤推定とベイズ推定
Akira Masuda
•
96.5K views
情報抽出入門 〜非構造化データを構造化させる技術〜
Yuya Unno
•
37.8K views
ICML2013読み会 ELLA: An Efficient Lifelong Learning Algorithm
Yuya Unno
•
9.6K views
Destacado
Random Forest による分類
Ken'ichi Matsui
10.8K views
•
19 Folien
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
Keisuke Hosaka
8.6K views
•
28 Folien
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
8.4K views
•
33 Folien
Tidyverseとは
yutannihilation
29.8K views
•
28 Folien
統計的因果推論勉強会 第1回
Hikaru GOTO
21.4K views
•
31 Folien
木と電話と選挙(causalTree)
Shota Yasui
14.1K views
•
20 Folien
Destacado
(13)
Random Forest による分類
Ken'ichi Matsui
•
10.8K views
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
Keisuke Hosaka
•
8.6K views
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
•
8.4K views
Tidyverseとは
yutannihilation
•
29.8K views
統計的因果推論勉強会 第1回
Hikaru GOTO
•
21.4K views
木と電話と選挙(causalTree)
Shota Yasui
•
14.1K views
てかLINEやってる? (Japan.R 2016 LT) #JapanR
cancolle
•
9.1K views
傾向スコア:その概念とRによる実装
takehikoihayashi
•
86.8K views
相関と因果について考える:統計的因果推論、その(不)可能性の中心
takehikoihayashi
•
55.1K views
不均衡データのクラス分類
Shintaro Fukushima
•
58.7K views
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
•
32.9K views
星野「調査観察データの統計科学」第1&2章
Shuyo Nakatani
•
28.6K views
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Yohei Sato
•
36.3K views
Más de Akifumi Eguchi
PlaidML Kerasでやっていく #TokyoR 73
Akifumi Eguchi
7K views
•
17 Folien
High-order factorization machines with R #tokyor 61
Akifumi Eguchi
1.9K views
•
21 Folien
統計的学習の基礎6章前半 #カステラ本
Akifumi Eguchi
5.3K views
•
39 Folien
Dslt祭り2夜
Akifumi Eguchi
2.4K views
•
22 Folien
環境化学データ解析入門: 愛媛大講演資料 160728
Akifumi Eguchi
5K views
•
80 Folien
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
Akifumi Eguchi
1.7K views
•
16 Folien
Más de Akifumi Eguchi
(19)
PlaidML Kerasでやっていく #TokyoR 73
Akifumi Eguchi
•
7K views
High-order factorization machines with R #tokyor 61
Akifumi Eguchi
•
1.9K views
統計的学習の基礎6章前半 #カステラ本
Akifumi Eguchi
•
5.3K views
Dslt祭り2夜
Akifumi Eguchi
•
2.4K views
環境化学データ解析入門: 愛媛大講演資料 160728
Akifumi Eguchi
•
5K views
統計的学習の基礎, 副読本紹介: An Introduction to Statistical Learning
Akifumi Eguchi
•
1.7K views
Mxnetで回帰 #TokyoR 53th
Akifumi Eguchi
•
5.7K views
子どもたちの未来を支える機械学習: 定量的構造活性相関 (QSAR) による有機ハロゲン化合物の母子間移行率予測
Akifumi Eguchi
•
8.1K views
ぞくパタ最終回: 13章「共クラスタリング」
Akifumi Eguchi
•
6.4K views
Deep learningもくもくハッカソンまとめup用
Akifumi Eguchi
•
2.3K views
Tokyo webmining 43 "化学物質汚染のデータ解析・リスク評価についての私見"
Akifumi Eguchi
•
4.8K views
第2回ぞくパタ
Akifumi Eguchi
•
3.6K views
第一回ぞくパタ
Akifumi Eguchi
•
4.1K views
ぞくパタ はじめに
Akifumi Eguchi
•
1.6K views
Tokyo.r #44 lt.pptx
Akifumi Eguchi
•
3.2K views
Tokyo r #43
Akifumi Eguchi
•
4.6K views
みどりぼん9章前半
Akifumi Eguchi
•
4.5K views
みどりぼん3章前半
Akifumi Eguchi
•
7.9K views
Tokyo R #39
Akifumi Eguchi
•
2.6K views
Randomforestで高次元の変数重要度を見る #japanr LT
1.
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
2.
機械学習で重要な課題といえば? 特徴量の抽出! 特にデータが高次元の場合、 どれが重要な特徴量なのかわかりにくい
3.
機械学習で重要な課題といえば? 特徴量の抽出! 特にデータが高次元の場合、 どれが重要な特徴量なのかわかりにくい 特徴量抽出についての参考資料 hTp://www.slideshare.net/Keiku322/r48rtokyor hTp://www.slideshare.net/sercantahaahi/feature- selecAon-with-r-in-jp XgboostのGBDT feature, FeatureHashing詳細 RFのジニ係数から特徴選択
4.
機械学習で重要な課題といえば? 特徴量の抽出! 特にデータが高次元の場合、 どれが重要な特徴量なのかわかりにくい 特徴量抽出についての参考資料 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のジニ係数から特徴選択
5.
変数重要度の分布を計算できれば仮説検定もできるはず Randomforestで高次元の変数重要度を見る Janitza, S., Celik, E., & Boulesteix, A. L. (2015). A computaAonally fast variable importance test for random forests for high-dimensional data.
6.
どうやって使うの? hTps://cran.r-project.org/web/packages/vita/index.html randomforestとvita packageを組み合わせて使うのが普通だが、 ranger内に関数が用意されてて早くて楽なので今回はそっちを使う
7.
どうやって使うの?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")
8.
どうやって使うの?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付きででてくる
9.
どうやって使うの?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)
10.
おおまかなしくみ VIj: 変数Xjの変数重要度, 0以上であれば判別に寄与してる (Xjを使うより、Xjの独立したコピーであるXj*を使ったほうが 誤分類率が高い) 通常であれば下記のように、OOBから変数重要度を求める
11.
おおまかなしくみ Hold-outなら2個, CVならk個のモデルをつくり、 それぞれのモデルにおける変数重要度を求めることもできる Slを使って算出 Holdout K-fold CV (目的変数がカテゴリの場合)
12.
おおまかなしくみ Hold-outなら2個, CVならk個のモデルをつくり、 それぞれのモデルにおける変数重要度を求めることもできる Slを使って算出 Holdout K-fold CV (目的変数がカテゴリの場合) 今回はこっちを使う Vita packageだと kも指定できる
13.
おおまかなしくみ 1. 元データをランダムに半分こ 2. 下記の感じでF^ 0を算出する 3.
p-valueを より算出 例: 変数重要度が負のやつ全て 例: 変数重要度が0のやつ全て 例: 変数重要度が負のモノすべて に-1を掛けた値 : empirical cumulaAve distribuAon funcAon 馴染み深いp-valueが出てくるので カットオフラインがわかりやすい
14.
どうでもいいこと 著者はメディカルインフォマティクス畑の人 D論が出てるので熱心な方は以下参照(今年の? hTps://edoc.ub.uni-muenchen.de/19671/1/Janitza_Silke.pdf
15.
Enjoy feature selecAon !
17.
どうやって使うの?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) または