SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
JuliaTokyo #1
Julia 0.3でランダムフォレスト
@gepuro
自己紹介
@gepuro
生息地: 電通大
専攻: 信頼性工学
よく使う手法: 生存時間解析
言語: R、たまにPython
Juliaを触ってた時間は、
24時間もない。
DecisionTree.jl
● bensadeghiさんが開発
○ 他には、
■ MineSweeperSolver.jl
■ METADATA.jl
■ pyplot.jl
○ なども開発に関わっている。
● MITライセンス
● 決定木はID3 algorithmで実装されている。
CARTで実装されたランダムフォレストは、
@bicycle1885さんが開発している。
https://github.com/bicycle1885/RandomForests.jl
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11
http://www.slideshare.net/hamadakoichi/introduction-torandomforest-tokyor
パッケージの追加
Pkg.add("DecisionTree")
パッケージの読み込み
using DecisionTree
using RDatasets
irisデータを利用出来るようにするために、
RDatasetsも読み込みました。
データの準備
iris = dataset("datasets", "iris")
features = array(iris[:, 1:4])
labels = array(iris[:, 5])
モデルの構築と予測
# モデルの構築, 引数(木の変数の数, 木の数)
model = build_forest(labels, features, 2, 10)
#予測
apply_forest(model, features)
クロスバリデーション
accuracy = nfoldCV_forest(labels, features, 2, 10, 3)
何分割するか
Mean Accuracy: 0.9466666666666667
3-element Array{Float64,1}:
0.92
0.94
0.98
出力結果
ソースコードを覗いてみる(分類)
function build_forest(labels::Vector, features::Matrix, nsubfeatures::Integer,
ntrees::Integer, partialsampling=0.7)
partialsampling = partialsampling > 1.0 ? 1.0 : partialsampling
Nlabels = length(labels)
Nsamples = int(partialsampling * Nlabels)
forest = @parallel (vcat) for i in [1:ntrees]
inds = rand(1:Nlabels, Nsamples)
build_tree(labels[inds], features[inds,:], nsubfeatures)
end
return Ensemble([forest])
end
● バージョン0.2の頃に合わせているのか、データの持ち方がVectorとMtrixになってる。
● arrayとの違いはなんだろうか?
● 引数は、nsubfeatrues, ntrees, partialsamplingの3つ
● partialsamplingは、指定しなくても動作する
● 並列処理に対応しているっぽい
ソースコードを覗いてみる(回帰)
function build_forest{T<:FloatingPoint,U<:Real}(labels::Vector{T},features::Matrix{U},
nsubfeatures::Integer, ntrees::Integer, maxlabels=0.5, partialsampling=0.7)
partialsampling = partialsampling > 1.0 ? 1.0 : partialsampling
Nlabels = length(labels)
Nsamples = int(partialsampling * Nlabels)
forest = @parallel (vcat) for i in [1:ntrees]
inds = rand(1:Nlabels, Nsamples)
build_tree(labels[inds], features[inds,:], maxlabels, nsubfeatures)
end
return Ensemble([forest])
end
● Javaでいうオーバーライドが出来るのかな?
● 関数を宣言した直後に型を指定?
● パラメータにmaxlabelsが追加されている。葉あたりの平均サンプル数を指定する
参考
● bensadeghi/DecisionTree.jl https://github.com/bensadeghi/DecisionTree.jl
● 「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 -
#TokyoR #11 http://www.slideshare.net/hamadakoichi/introduction-
torandomforest-tokyor

Contenu connexe

Tendances

Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Masato Fujitake
 
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01Takeshi Akutsu
 
Seq2Seqでボットづくり
Seq2SeqでボットづくりSeq2Seqでボットづくり
Seq2SeqでボットづくりMasato Fujitake
 
Lt (コピー)
Lt (コピー)Lt (コピー)
Lt (コピー)bitter_fox
 
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところEmma Haruka Iwao
 
Lighting talk chainer hands on
Lighting talk chainer hands onLighting talk chainer hands on
Lighting talk chainer hands onOgushi Masaya
 
Perl で自然言語処理
Perl で自然言語処理Perl で自然言語処理
Perl で自然言語処理Toshinori Sato
 
linterとprettierというコード砂漠に緑をもたらす救世主
linterとprettierというコード砂漠に緑をもたらす救世主linterとprettierというコード砂漠に緑をもたらす救世主
linterとprettierというコード砂漠に緑をもたらす救世主anysense_ss
 

Tendances (9)

Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
 
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
 
Seq2Seqでボットづくり
Seq2SeqでボットづくりSeq2Seqでボットづくり
Seq2Seqでボットづくり
 
Lt (コピー)
Lt (コピー)Lt (コピー)
Lt (コピー)
 
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
 
Lighting talk chainer hands on
Lighting talk chainer hands onLighting talk chainer hands on
Lighting talk chainer hands on
 
Perl で自然言語処理
Perl で自然言語処理Perl で自然言語処理
Perl で自然言語処理
 
linterとprettierというコード砂漠に緑をもたらす救世主
linterとprettierというコード砂漠に緑をもたらす救世主linterとprettierというコード砂漠に緑をもたらす救世主
linterとprettierというコード砂漠に緑をもたらす救世主
 
stapy#23 LT
stapy#23 LTstapy#23 LT
stapy#23 LT
 

En vedette

Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!Kenta Sato
 
メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1Takeshi Kimura
 
Julia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoJulia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoAki Ariga
 
Plotly Julia API
Plotly Julia APIPlotly Julia API
Plotly Julia APIE2D3.org
 
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Kenta Sato
 
Juliaのススメ
JuliaのススメJuliaのススメ
JuliaのススメAi Makabi
 
第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28horihorio
 
Data science packages
Data science packagesData science packages
Data science packagesyuta july
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由Hiromi Ishii
 
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...Daichi Kitamura
 
On the benchmark of Chainer
On the benchmark of ChainerOn the benchmark of Chainer
On the benchmark of ChainerKenta Oono
 
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02Yuta Kashino
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例Yahoo!デベロッパーネットワーク
 
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstationYusuke HIDESHIMA
 
マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例nlab_utokyo
 
Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+Seiya Tokui
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門Yuya Unno
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA Japan
 
Chainerを使って細胞を数えてみた
Chainerを使って細胞を数えてみたChainerを使って細胞を数えてみた
Chainerを使って細胞を数えてみたsamacoba1983
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 

En vedette (20)

Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!
 
メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1
 
Julia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoJulia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyo
 
Plotly Julia API
Plotly Julia APIPlotly Julia API
Plotly Julia API
 
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
 
Juliaのススメ
JuliaのススメJuliaのススメ
Juliaのススメ
 
第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28
 
Data science packages
Data science packagesData science packages
Data science packages
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
 
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
 
On the benchmark of Chainer
On the benchmark of ChainerOn the benchmark of Chainer
On the benchmark of Chainer
 
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02深層学習ライブラリの環境問題Chainer Meetup2016 07-02
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
 
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
 
マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例
 
Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+Chainer Update v1.8.0 -> v1.10.0+
Chainer Update v1.8.0 -> v1.10.0+
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
 
Chainerを使って細胞を数えてみた
Chainerを使って細胞を数えてみたChainerを使って細胞を数えてみた
Chainerを使って細胞を数えてみた
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 

Plus de Atsushi Hayakawa

Zepp play soccerで測ってみた
Zepp play soccerで測ってみたZepp play soccerで測ってみた
Zepp play soccerで測ってみたAtsushi Hayakawa
 
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?Atsushi Hayakawa
 
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018Atsushi Hayakawa
 
バンクーバー旅行記
バンクーバー旅行記バンクーバー旅行記
バンクーバー旅行記Atsushi Hayakawa
 
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAnalyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAtsushi Hayakawa
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017Atsushi Hayakawa
 
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65Atsushi Hayakawa
 
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallRstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallAtsushi Hayakawa
 
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~統計的学習の基礎 4.4~
統計的学習の基礎 4.4~Atsushi Hayakawa
 
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Atsushi Hayakawa
 
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情Atsushi Hayakawa
 
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するnginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するAtsushi Hayakawa
 
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化Atsushi Hayakawa
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくるAtsushi Hayakawa
 

Plus de Atsushi Hayakawa (20)

tidyverse.orgの翻訳
tidyverse.orgの翻訳tidyverse.orgの翻訳
tidyverse.orgの翻訳
 
Zepp play soccerで測ってみた
Zepp play soccerで測ってみたZepp play soccerで測ってみた
Zepp play soccerで測ってみた
 
dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?dataclassとtypehintを使ってますか?
dataclassとtypehintを使ってますか?
 
トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018トライアスロンとgepuro task views V2.0 Japan.R 2018
トライアスロンとgepuro task views V2.0 Japan.R 2018
 
バンクーバー旅行記
バンクーバー旅行記バンクーバー旅行記
バンクーバー旅行記
 
Analyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.RAnalyze The Community Of Tokyo.R
Analyze The Community Of Tokyo.R
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017トライアスロンと僕 - Japan.R 2017
トライアスロンと僕 - Japan.R 2017
 
simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65simputatoinで欠損値補完 - Tokyo.R #65
simputatoinで欠損値補完 - Tokyo.R #65
 
useR!2017 in Brussels
useR!2017 in BrusselsuseR!2017 in Brussels
useR!2017 in Brussels
 
Japan.R 2016の運営
Japan.R 2016の運営Japan.R 2016の運営
Japan.R 2016の運営
 
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallRstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
 
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~統計的学習の基礎 4.4~
統計的学習の基礎 4.4~
 
Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝Splatoon界での壮絶な戦い&Japan.Rの宣伝
Splatoon界での壮絶な戦い&Japan.Rの宣伝
 
最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情最近のクラウドストレージの事情と私情
最近のクラウドストレージの事情と私情
 
gepuro task views
gepuro task viewsgepuro task views
gepuro task views
 
nginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積するnginxのログを非スケーラブルに省メモリな方法で蓄積する
nginxのログを非スケーラブルに省メモリな方法で蓄積する
 
implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化implyを用いたアクセスログの可視化
implyを用いたアクセスログの可視化
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくる
 
らずぱいラジコン
らずぱいラジコンらずぱいラジコン
らずぱいラジコン
 

Julia0.3でランダムフォレスト