Submit Search
Upload
最近のRのランダムフォレストパッケージ -ranger/Rborist-
•
18 likes
•
19,309 views
S
Shintaro Fukushima
Follow
R, Random Forest, ranger, Rborist
Read less
Read more
Data & Analytics
Report
Share
Report
Share
1 of 35
Download now
Download to read offline
Recommended
Rの高速化
Rの高速化
弘毅 露崎
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
nocchi_airport
Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?
jundoll
不均衡データのクラス分類
不均衡データのクラス分類
Shintaro Fukushima
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Hiroshi Shimizu
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
Yoshitake Takebayashi
機械学習と主成分分析
機械学習と主成分分析
Katsuhiro Morishita
Recommended
Rの高速化
Rの高速化
弘毅 露崎
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
nocchi_airport
Rによる高速処理 まだfor使ってるの?
Rによる高速処理 まだfor使ってるの?
jundoll
不均衡データのクラス分類
不均衡データのクラス分類
Shintaro Fukushima
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Hiroshi Shimizu
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
Yoshitake Takebayashi
機械学習と主成分分析
機械学習と主成分分析
Katsuhiro Morishita
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理する
Hiroshi Shimizu
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tatsuya Tojima
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
階層ベイズとWAIC
階層ベイズとWAIC
Hiroshi Shimizu
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
tanutarou
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
Takao Yamanaka
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
Stanの便利な事後処理関数
Stanの便利な事後処理関数
daiki hojo
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Deep Learning Lab(ディープラーニング・ラボ)
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
Hisao Soyama
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
Yoshitake Takebayashi
Rで実験計画法 前編
Rで実験計画法 前編
itoyan110
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
Yoshitake Takebayashi
5分で分かる自己組織化マップ
5分で分かる自己組織化マップ
Daisuke Takai
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
Takeshi Mikami
基礎からのベイズ統計学第5章
基礎からのベイズ統計学第5章
hiro5585
線形計画法入門
線形計画法入門
Shunji Umetani
Rユーザのためのspark入門
Rユーザのためのspark入門
Shintaro Fukushima
20150329 tokyo r47
20150329 tokyo r47
Takashi Kitano
More Related Content
What's hot
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理する
Hiroshi Shimizu
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tatsuya Tojima
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
階層ベイズとWAIC
階層ベイズとWAIC
Hiroshi Shimizu
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
tanutarou
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
Kazuya Wada
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
Takao Yamanaka
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
shima o
Stanの便利な事後処理関数
Stanの便利な事後処理関数
daiki hojo
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
Deep Learning Lab(ディープラーニング・ラボ)
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
Hisao Soyama
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
Yoshitake Takebayashi
Rで実験計画法 前編
Rで実験計画法 前編
itoyan110
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
Yoshitake Takebayashi
5分で分かる自己組織化マップ
5分で分かる自己組織化マップ
Daisuke Takai
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
Takeshi Mikami
基礎からのベイズ統計学第5章
基礎からのベイズ統計学第5章
hiro5585
線形計画法入門
線形計画法入門
Shunji Umetani
What's hot
(20)
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
心理学におけるベイズ統計の流行を整理する
心理学におけるベイズ統計の流行を整理する
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
階層ベイズとWAIC
階層ベイズとWAIC
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
Stanの便利な事後処理関数
Stanの便利な事後処理関数
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
Rで実験計画法 前編
Rで実験計画法 前編
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
5分で分かる自己組織化マップ
5分で分かる自己組織化マップ
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
基礎からのベイズ統計学第5章
基礎からのベイズ統計学第5章
線形計画法入門
線形計画法入門
Similar to 最近のRのランダムフォレストパッケージ -ranger/Rborist-
Rユーザのためのspark入門
Rユーザのためのspark入門
Shintaro Fukushima
20150329 tokyo r47
20150329 tokyo r47
Takashi Kitano
MySQLerの7つ道具
MySQLerの7つ道具
yoku0825
Maatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
Maatkitの紹介
Maatkitの紹介
Akinori YOSHIDA
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Etsuji Nakai
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
Nobuaki Oshiro
Random Forest による分類
Random Forest による分類
Ken'ichi Matsui
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
Tetsuya Hasegawa
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
Kazuya Wada
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
Shintaro Fukushima
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Nobuaki Oshiro
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
Shintaro Fukushima
[輪講] 第1章
[輪講] 第1章
Takenobu Sasatani
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
Antonio Tejero de Pablos
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
y-uti
JAWSUG 20210128
JAWSUG 20210128
陽平 山口
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
Etsuji Nakai
各言語の k-means 比較
各言語の k-means 比較
y-uti
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
sohta
Similar to 最近のRのランダムフォレストパッケージ -ranger/Rborist-
(20)
Rユーザのためのspark入門
Rユーザのためのspark入門
20150329 tokyo r47
20150329 tokyo r47
MySQLerの7つ道具
MySQLerの7つ道具
Maatkit で MySQL チューニング
Maatkit で MySQL チューニング
Maatkitの紹介
Maatkitの紹介
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
Random Forest による分類
Random Forest による分類
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
[輪講] 第1章
[輪講] 第1章
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
JAWSUG 20210128
JAWSUG 20210128
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
各言語の k-means 比較
各言語の k-means 比較
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
More from Shintaro Fukushima
20230216_Python機械学習プログラミング.pdf
20230216_Python機械学習プログラミング.pdf
Shintaro Fukushima
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
Shintaro Fukushima
Materials Informatics and Python
Materials Informatics and Python
Shintaro Fukushima
BPstudy sklearn 20180925
BPstudy sklearn 20180925
Shintaro Fukushima
Juliaによる予測モデル構築・評価
Juliaによる予測モデル構築・評価
Shintaro Fukushima
Juliaで並列計算
Juliaで並列計算
Shintaro Fukushima
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
Shintaro Fukushima
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
Shintaro Fukushima
data.tableパッケージで大規模データをサクッと処理する
data.tableパッケージで大規模データをサクッと処理する
Shintaro Fukushima
アクションマイニングを用いた最適なアクションの導出
アクションマイニングを用いた最適なアクションの導出
Shintaro Fukushima
R3.0.0 is relased
R3.0.0 is relased
Shintaro Fukushima
外れ値
外れ値
Shintaro Fukushima
Rでreproducible research
Rでreproducible research
Shintaro Fukushima
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
Shintaro Fukushima
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
Shintaro Fukushima
Numpy scipyで独立成分分析
Numpy scipyで独立成分分析
Shintaro Fukushima
Rで学ぶロバスト推定
Rで学ぶロバスト推定
Shintaro Fukushima
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
Shintaro Fukushima
Tokyo.R(#07)
Tokyo.R(#07)
Shintaro Fukushima
More from Shintaro Fukushima
(19)
20230216_Python機械学習プログラミング.pdf
20230216_Python機械学習プログラミング.pdf
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
Materials Informatics and Python
Materials Informatics and Python
BPstudy sklearn 20180925
BPstudy sklearn 20180925
Juliaによる予測モデル構築・評価
Juliaによる予測モデル構築・評価
Juliaで並列計算
Juliaで並列計算
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
data.tableパッケージで大規模データをサクッと処理する
data.tableパッケージで大規模データをサクッと処理する
アクションマイニングを用いた最適なアクションの導出
アクションマイニングを用いた最適なアクションの導出
R3.0.0 is relased
R3.0.0 is relased
外れ値
外れ値
Rでreproducible research
Rでreproducible research
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
Numpy scipyで独立成分分析
Numpy scipyで独立成分分析
Rで学ぶロバスト推定
Rで学ぶロバスト推定
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
Tokyo.R(#07)
Tokyo.R(#07)
最近のRのランダムフォレストパッケージ -ranger/Rborist-
1.
最近のRの ランダムフォレストパッケージ - ranger /
Rborist - 2015年10月10日 第51回Tokyo.R @sfchaos 1
2.
自己紹介 ■ twitterID: @sfchaos ■
仕事: クルマのデータマイニング ■ 興味: ノンパラメトリックベイズ/混合メンバシップ モデル/Julia/Spark 2
3.
宣伝1 ■ データサイエンティスト養成読本 機械学習入門編 ■ 豪華な執筆陣!! ■
祝・刊行1ヶ月!! ■ 機械学習の入門に最適な一冊. ■ 「機械学習って何で注目されているの? 意味ある の?」or「機械学習ってなんでもできるんでしょ!?」 という人には第I部特集1がオススメ. 3
4.
宣伝1 ■第1部 しくみと概要を学ぼう! ■特集1 機械学習を使いたい人のための入門講座 ■特集2
機械学習の基礎知識 ■特集3 ビジネスに導入する機械学習 ■特集4 深層学習最前線 ■第2部 手を動かして学ぼう! ■特集1 機械学習ソフトウェアの概観 ■特集2 Pythonによる機械学習入門 ■特集3 推薦システム入門 ■特集4 Pythonで画像認識にチャレンジ ■特集5 Jubatusによる異常検知 4
5.
宣伝2 ■ 「岩波データサイエンス Vol.1」 ■
豪華な執筆陣!! ■ 特集は,ベイズ推論とMCMCのソフトウェア ■ 芥川賞受賞作家・円城塔さんの掌編小説も!! ■ 雑誌のように気軽に手にとって,本のように骨のあ る本 ■ 書評 http://d.hatena.ne.jp/sfchaos/20151010 5
6.
アジェンダ ■ 最近のRの機械学習パッケージ ■ rangerとRborist(ランダムフォレスト) ■
rangerでの疎行列の扱い ■ まとめ 6
7.
1. 最近のRの機械学習パッケージ 7
8.
最近のトピック ■ 新しいランダムフォレスト実装の台頭 (ranger/Rborist) ■
勾配ブースティングの隆盛 (xgboost) ■ mlrパッケージの台頭? (caretと肩を並べつつある?) ■・・・ 8
9.
最近のトピック ■ 新しいランダムフォレスト実装の台頭 (ranger/Rborist) ■ 勾配ブースティングの隆盛
(xgboost) ■・・・ 9 今回はランダムフォレストの 新しいパッケージについて
10.
ランダムフォレストとは ■ クラス分類・回帰を実行する機械学習の代表的な手法。 ■ 訓練データに対してサンプルのブートストラップと説明変 数のサンプリングを行って複数の決定木を構築。 ■
テストデータに対して、各決定木の予測結果の多数決によ り予測を実行。 10
11.
randomForestパッケージ ■ 従来の定番. ■ partyパッケージとかも(条件付き推測木). 11
12.
ranger/Rborist ■ ranger: A
Fast Implementation of Random Forests for High Dimensional Data in C++ and R http://arxiv.org/abs/1508.04409 ■ ranger(RANdom forest GEneRator) ■ rangerもRboristも中身はC++. ■ rangerはスレッド並列化が可能. 12
13.
ranger/Rborist ■ 新たなランダムフォレストのパッケージ ■ @dichikaさんのブログを参照. RでランダムフォレストやるならRboristかrangerか http://d.hatena.ne.jp/dichika/20150828/p1 13
14.
ranger/Rborist ■ これまでにも,いくつかのブログで取り上げられている ■ "ranger:
A Fast Implementation of Random Forests”のメモ書き http://yamano357.hatenadiary.com/entry/2015/09/17/230536 ■ TagTeam :: Predicting Titanic deaths on Kaggle V: Ranger - R- bloggers - Statistics and Visualization http://tagteam.harvard.edu/hub_feeds/1981/feed_items/ 2126439 ■ [R言語]library("ranger")とlibrary("randomForest")の速度を比較 する - gepulog http://blog.gepuro.net/archives/130 ■ 新型のランダムフォレスト(Random Forest)パッケージ比較: Rborist・ranger・randomForest - My Life as a Mock Quant http://d.hatena.ne.jp/teramonagi/20150914/1442226764 14
15.
パッケージ間の比較 ■ 小規模データに対する実行時間の比較 15 ■ ranger:
A Fast Implementation of Random Forests for High Dimensional Data in C++ and R ■ Figure 3 http://arxiv.org/abs/1508.04409
16.
パッケージ間の比較 ■対象データ:シミュレーションされた100,000サン プル,100特徴量 16 ■ ranger: A
Fast Implementation of Random Forests for High Dimensional Data in C++ and R ■ Table 2 http://arxiv.org/abs/1508.04409
17.
rangerとRboristの比較 17 ■ 連続量の特徴量に対してサンプルサイズと特徴量数を変化させて比較 ■ ranger:
A Fast Implementation of Random Forests for High Dimensional Data in C++ and R ■ Figure 4 http://arxiv.org/abs/1508.04409
18.
2. rangerとRborist (ランダムフォレスト) 18
19.
パッケージのインストール ■ CRANからインストール 19 > install.packages(c(“randomForest”,
“ranger”, “Rborist”))
20.
使用方法 20 > randomForest(目的変数 ~.,
data=データ) > ranger(目的変数 ~., data=データ)) > Rborist(説明変数, 目的変数)
21.
比較実験 ■ spamデータセット 21 > library(kernlab) >
data(spam) > dim(spam) [1] 4601 58
22.
比較実験 22 > # randomForest >
system.time(randomForest(type ~., data=spam, ntree=1000)) ユーザ システム 経過 20.885 0.176 21.265 > # ranger > system.time(ranger(type ~., data=spam, num.trees=1000, + seed=71)) ユーザ システム 経過 8.688 0.113 2.534 > # ranger(省メモリモード) > system.time(ranger(type ~., data=spam, seed=71, + save.memory=TRUE)) ユーザ システム 経過 29.017 0.113 8.171 > # Rborist > system.time(Rborist(spam %>% select(-type), spam$type)) ユーザ システム 経過 7.948 0.630 8.616
23.
引数の対応 23 決定木の個数 サンプリングする 特徴量数 クラスウェイト (不均衡データ) randomForest ntree
mtry classwt ranger num.trees mtry ? Rborist ntree predProb (各特徴量が選択さ れる確率) classWeight
24.
3. rangerでの疎行列の扱い 24
25.
rangerの疎行列の扱い 25 http://yamano357.hatenadiary.com/entry/2015/09/17/230536 !!!
26.
rangerパッケージの処理フロー ■ Rのranger関数がユーザとのインタフェース ■ rangerCpp関数からC++のranger_rangerCpp関数を呼び出す. ■
ranger_rangerCpp関数の中でrangerCpp関数を呼び出し,forest クラスをインスタンス化して,ランダムフォレストを構築する. 26 ranger関数 rangerCpp関数 C++ ・forestクラスのインスタンス化 ・forestクラスの初期化 ・ランダムフォレストの構築 (forestクラスのrunメンバー関数) - 決定木の構築(treeクラス) ranger_rangerCpp 関数 rangerCpp関数 C++
27.
rangerCpp関数の引数 27 ## Call Ranger result
<- rangerCpp(treetype, dependent.variable.name, data.final, variable.names, mtry, num.trees, verbose, seed, num.threads, write.forest, importance.mode, min.node.size, split.select.weights, use.split.select.weights, always.split.variables, use.always.split.variables, status.variable.name, prediction.mode, loaded.forest, sparse.data, replace, probability, unordered.factor.variables, use.unordered.factor.variables, save.memory, splitrule)
28.
ranger_rangerCpp関数の引数 28 cppExport SEXP ranger_rangerCpp(SEXP
treetypeSEXP, … , SEXP splitrule_rSEXP) { … Rcpp::traits::input_parameter< Rcpp::RawMatrix >::type sparse_data(sparse_dataSEXP); … }
29.
rangerでの疎行列対応 ■ 疎行列に対応しているのはgwaa.dataクラスのオブ ジェクトのみ(GenABELパッケージ). 29 ## GenABEL
GWA data if (class(data) == "gwaa.data") { snp.names <- data@gtdata@snpnames sparse.data <- data@gtdata@gtps@.Data data <- data@phdata if ("id" %in% names(data)) { data$"id" <- NULL } gwa.mode <- TRUE save.memory <- FALSE } else { sparse.data <- as.matrix(0) gwa.mode <- FALSE } R/ranger.R 166-179
30.
gwaa.dataクラスの使用 ■ 試しに,GenABEL.dataパッケージのge03d2データ セットを指定してみる. ■ 遺伝子のデータ? 30
31.
gwaa.dataクラスの使用 ■ こんなデータ 31 > library(GenABEL.data) >
data(ge03d2) > str(ge03d2) Formal class 'gwaa.data' [package "GenABEL"] with 2 slots ..@ phdata:'data.frame': 950 obs. of 8 variables: .. ..$ id : chr [1:950] "id4" "id10" "id25" "id33" ... .. ..$ sex : int [1:950] 0 1 0 0 0 0 1 1 0 1 ... .. ..$ age : num [1:950] 51.6 53.7 66 44.7 49.9 ... .. ..$ dm2 : int [1:950] 1 1 1 1 1 1 1 1 1 1 ... .. ..$ height: num [1:950] 152 170 165 174 157 ... .. ..$ weight: num [1:950] 83 65.6 69.6 69.7 84.3 ... .. ..$ diet : int [1:950] 0 0 0 0 0 0 0 0 0 0 ... .. ..$ bmi : num [1:950] 36 22.6 25.6 22.9 34.1 ... ..@ gtdata:Formal class 'snp.data' [package "GenABEL"] with 11 slots .. .. ..@ nbytes : num 238 .. .. ..@ nids : int 950 •••
32.
gwaa.dataクラスの使用 ■ phdataで回帰を実行してみる 32 > #
欠損値の除去 > ge03d2@phdata <- na.omit(ge03d2@phdata) > head(ge03d2@phdata) id sex age dm2 height weight diet bmi id4 id4 0 51.63771 1 151.7863 83.03480 0 36.04086 id10 id10 1 53.73938 1 170.3180 65.59815 0 22.61363 id25 id25 0 66.01148 1 164.7949 69.55278 0 25.61103 id33 id33 0 44.66715 1 174.4638 69.73042 0 22.90929 id35 id35 0 49.87941 1 157.1834 84.27884 0 34.11185 id58 id58 0 36.99524 1 165.0929 89.53816 0 32.85122 > # BMIを目的変数とする回帰モデルの構築 > model.rg <- ranger(bmi ~., data=ge03d2)
33.
スパースデータのデータ構造 ■ このとき,sparse.dataは次のようになっている. 33 ## GenABEL
GWA data if (class(data) == "gwaa.data") { snp.names <- data@gtdata@snpnames sparse.data <- data@gtdata@gtps@.Data data <- data@phdata if ("id" %in% names(data)) { data$"id" <- NULL } gwa.mode <- TRUE save.memory <- FALSE } else { sparse.data <- as.matrix(0) gwa.mode <- FALSE } R/ranger.R 166-179 > dim(sparse.data) [1] 238 7589 > class(sparse.data) [1] “matrix” > sparse.data[1:3, 1:3] [,1] [,2] [,3] [1,] 99 95 ae [2,] 57 55 db [3,] 9a 55 2f > mode(sparse.data) [1] "raw" モードがraw
34.
4. まとめ 34
35.
まとめ ■ Rでランダムフォレスト実行のパッケージとして, ranger, Rborist等が開発されている. ■
rangerで疎行列を扱えるのは,現状,gwaa.dataク ラスのオブジェクトのみ. 35
Download now