SlideShare a Scribd company logo
1 of 11
xgboost!
About My Self
安井翔太 / Shota Salmon Yasui
Twitter: @housecat442
<けーれき>
• 日本のド文系経済学部
• アメリカで計量経済学1年
• ノルウェーで資源・環境経済学修士取得
• SNF研究所でデータ分析(環境税作成)
• 広告関係のデータ分析やってます。
xgboostとは?
• Gradient Boosting Decision Treeという予測モデルのC++での実装。
• それをRから使える様にするのが、xgboost package。
• メモリエラーが原因でCRANから消されてる・・・けど、githubからイン
ストール可能。
<githubからインストール>
devtools::install_github('dmlc/xgboost',subdir='R-package')
gbmよりはやい!(当社比10倍・・・らしい)
Gradient Boosting Decision Treeとは?
• Decision Tree(決定木)をGradient Boostingする。
• 決定木は割愛
• Boostingとは、複数のモデルを連動させ、「M人寄れば文殊の知恵」的な
感じに逐次的に学習をする方法。(adaboostというのが有名)
• Gradient Boosting とは基本的にはboostingと一緒だが、疑似的な誤差を算
出してその誤差に対して次のモデルを学習させるという方法。
• 疑似的な誤差は、各サンプルについての誤差を予測モデルについて偏微
分した値なので、モデルに変化を与えた際に誤差が変わりやすいサンプ
ルに対して重点的に追加の学習が行われていると解釈できる。
1. 決定木の学習をする
2. 決定木の予測と誤差を算出する
3. 誤差に対して決定木を学習しなおす。(木が1本増える)
4. 誤差を算出する。
5. 指定したM本の木が出来るまで3-4を繰り返す。
単純化して言えば・・・
学習の際のハイパーパラメーターは
• 木の本数
• 木の深さ
• 次の木にどのくらい学習の情報を渡すかの重み(shrinkage)
 3で学習する際に適応される
の3つが基本。
Y
X
こんなデータがある
x <- 1:5000*0.005 + rnorm(5000)
y <- sin(x)
GBDTの学習結果を木の本数を2本刻みで変えて表示(shrinkage = 0.3)
2
4
6
8
• 本数を増やすとよりデータに対してフィットして行くのが解る。
• ただ増やしまくれば良いと言う訳ではない。
GBDTの学習結果を木の本数を本刻みで変えて表示(shrinkage = 0.1)
5
10
15
20
GBDTの学習結果を木の本数を150本刻みで変えて表示(shrinkage = 0.001)
150
300
450
Shrinkageが下がると学習に必要な木の本数が増えている事が解る。
▶︎オーバーフィッティングしにくくなるので精度が上がり易い。
Xgboostの使い方
#データをsparse.model.matrixにする
data.model <- sparse.model.matrix(y~x,ds)
#GBDTの学習
gdbt.result <- xgboost(data = data.model,
label = y,
booster = "gbtree",
max.depth = 4,
eta = 0.3,
nrounds = 1000)
おしまい!

More Related Content

Similar to Xgboost for share

なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
Hideki Yamane
 

Similar to Xgboost for share (19)

[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~
[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~
[db analytics showcase Sapporo 2018] A33 AI社内実装の試み~ソニーNNCを非技術者に使わせてみる~
 
Machine learning CI/CD with OSS
Machine learning CI/CD with OSSMachine learning CI/CD with OSS
Machine learning CI/CD with OSS
 
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門なれる! Debian開発者 〜 45分でわかる? メンテナ入門
なれる! Debian開発者 〜 45分でわかる? メンテナ入門
 
外部委託から内製化アジャイルへの切替支援を通してわかったこと #augj
外部委託から内製化アジャイルへの切替支援を通してわかったこと #augj外部委託から内製化アジャイルへの切替支援を通してわかったこと #augj
外部委託から内製化アジャイルへの切替支援を通してわかったこと #augj
 
Visasq
VisasqVisasq
Visasq
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説
 
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
Hadoopデータ基盤とMulti-CloudなML基盤への取り組みの紹介
 
#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
NeurIPS'21参加報告 tanimoto_public
NeurIPS'21参加報告 tanimoto_publicNeurIPS'21参加報告 tanimoto_public
NeurIPS'21参加報告 tanimoto_public
 
QA teamを組成した話
QA teamを組成した話QA teamを組成した話
QA teamを組成した話
 
Deeplearning bank marketing dataset
Deeplearning bank marketing datasetDeeplearning bank marketing dataset
Deeplearning bank marketing dataset
 
Eccv 2020 dsmnet
Eccv 2020 dsmnetEccv 2020 dsmnet
Eccv 2020 dsmnet
 
Contextual package
Contextual packageContextual package
Contextual package
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
全体セミナー20170629
全体セミナー20170629全体セミナー20170629
全体セミナー20170629
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
 
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
 

More from Shota Yasui

Dynamic panel in tokyo r
Dynamic panel in tokyo rDynamic panel in tokyo r
Dynamic panel in tokyo r
Shota Yasui
 

More from Shota Yasui (13)

L 05 bandit with causality-公開版
L 05 bandit with causality-公開版L 05 bandit with causality-公開版
L 05 bandit with causality-公開版
 
PaperFriday: The selective labels problem
PaperFriday: The selective labels problemPaperFriday: The selective labels problem
PaperFriday: The selective labels problem
 
TokyoR 20180421
TokyoR 20180421TokyoR 20180421
TokyoR 20180421
 
何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?
 
木と電話と選挙(causalTree)
木と電話と選挙(causalTree)木と電話と選挙(causalTree)
木と電話と選挙(causalTree)
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
 
Factorization machines with r
Factorization machines with rFactorization machines with r
Factorization machines with r
 
Estimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learningEstimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learning
 
Prml nn
Prml nnPrml nn
Prml nn
 
重回帰分析で頑張る
重回帰分析で頑張る重回帰分析で頑張る
重回帰分析で頑張る
 
Dynamic panel in tokyo r
Dynamic panel in tokyo rDynamic panel in tokyo r
Dynamic panel in tokyo r
 
Rで部屋探し For slide share
Rで部屋探し For slide shareRで部屋探し For slide share
Rで部屋探し For slide share
 
Salmon cycle
Salmon cycleSalmon cycle
Salmon cycle
 

Xgboost for share