Submit Search
Upload
Factorization machines with r
•
12 likes
•
4,666 views
Shota Yasui
Follow
I introduced the Factorisation Machines and how to use it with R.
Read less
Read more
Data & Analytics
Report
Share
Report
Share
1 of 12
Download now
Download to read offline
Recommended
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
Deep Learning JP
最適輸送入門
最適輸送入門
joisino
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
コピュラと金融工学の新展開(?)
コピュラと金融工学の新展開(?)
Nagi Teramo
Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~
nlab_utokyo
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
Kuninobu SaSaki
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
Kota Matsui
Recommended
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
[DL輪読会]"Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,0...
Deep Learning JP
最適輸送入門
最適輸送入門
joisino
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
コピュラと金融工学の新展開(?)
コピュラと金融工学の新展開(?)
Nagi Teramo
Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~
nlab_utokyo
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツ
Kuninobu SaSaki
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
Kota Matsui
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
Deep Learning JP
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
ぱんいち すみもと
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
Preferred Networks
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Japan
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2
harmonylab
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
Mr. Vengineer
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
Deep Learning JP
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法
Tatsuya Shirakawa
ELBO型VAEのダメなところ
ELBO型VAEのダメなところ
KCS Keio Computer Society
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
Takanori Hayashi
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
ドメイン適応の原理と応用
ドメイン適応の原理と応用
Yoshitaka Ushiku
(DL hacks輪読) Deep Kernel Learning
(DL hacks輪読) Deep Kernel Learning
Masahiro Suzuki
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
Hiroaki Kudo
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
Takashi Kitano
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
Shuyo Nakatani
More Related Content
What's hot
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
Deep Learning JP
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
ぱんいち すみもと
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
Preferred Networks
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Japan
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks
Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2
harmonylab
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
Mr. Vengineer
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
Deep Learning JP
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法
Tatsuya Shirakawa
ELBO型VAEのダメなところ
ELBO型VAEのダメなところ
KCS Keio Computer Society
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
Takanori Hayashi
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
ドメイン適応の原理と応用
ドメイン適応の原理と応用
Yoshitaka Ushiku
(DL hacks輪読) Deep Kernel Learning
(DL hacks輪読) Deep Kernel Learning
Masahiro Suzuki
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
Hiroaki Kudo
What's hot
(20)
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
[DLHacks]StyleGANとBigGANのStyle mixing, morphing
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法
ELBO型VAEのダメなところ
ELBO型VAEのダメなところ
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
ドメイン適応の原理と応用
ドメイン適応の原理と応用
(DL hacks輪読) Deep Kernel Learning
(DL hacks輪読) Deep Kernel Learning
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
“確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
Viewers also liked
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
Takashi Kitano
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
Shuyo Nakatani
20160730tokyor55
20160730tokyor55
Med_KU
Tokyo r50 beginner_2
Tokyo r50 beginner_2
Takashi Minoda
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析
Satoshi Kato
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
Nobuaki Oshiro
木と電話と選挙(causalTree)
木と電話と選挙(causalTree)
Shota Yasui
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
Shuyo Nakatani
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Keiku322
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
Keisuke Hosaka
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
Shushi Namba
てかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanR
cancolle
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Takuma Hatano
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例
Takanori Nakai
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返り
Keisuke Hosaka
Tidyverseとは
Tidyverseとは
yutannihilation
Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LT
Akifumi Eguchi
Estimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learning
Shota Yasui
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
Viewers also liked
(20)
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
20160730tokyor55
20160730tokyor55
Tokyo r50 beginner_2
Tokyo r50 beginner_2
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
木と電話と選挙(causalTree)
木と電話と選挙(causalTree)
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
てかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanR
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返り
Tidyverseとは
Tidyverseとは
Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LT
Estimating the effect of advertising with Machine learning
Estimating the effect of advertising with Machine learning
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
More from Shota Yasui
L 05 bandit with causality-公開版
L 05 bandit with causality-公開版
Shota Yasui
Contextual package
Contextual package
Shota Yasui
PaperFriday: The selective labels problem
PaperFriday: The selective labels problem
Shota Yasui
TokyoR 20180421
TokyoR 20180421
Shota Yasui
何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?
Shota Yasui
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
Shota Yasui
Prml nn
Prml nn
Shota Yasui
Xgboost for share
Xgboost for share
Shota Yasui
重回帰分析で頑張る
重回帰分析で頑張る
Shota Yasui
Dynamic panel in tokyo r
Dynamic panel in tokyo r
Shota Yasui
Rで部屋探し For slide share
Rで部屋探し For slide share
Shota Yasui
Salmon cycle
Salmon cycle
Shota Yasui
More from Shota Yasui
(12)
L 05 bandit with causality-公開版
L 05 bandit with causality-公開版
Contextual package
Contextual package
PaperFriday: The selective labels problem
PaperFriday: The selective labels problem
TokyoR 20180421
TokyoR 20180421
何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
Prml nn
Prml nn
Xgboost for share
Xgboost for share
重回帰分析で頑張る
重回帰分析で頑張る
Dynamic panel in tokyo r
Dynamic panel in tokyo r
Rで部屋探し For slide share
Rで部屋探し For slide share
Salmon cycle
Salmon cycle
Factorization machines with r
1.
Factorization Machines with R Shota
Yasui @housecat442
2.
Factorization Machines(FMs)とは? ● ちゃんと知りたい人は下記の論文を参照 ○
Factorization machines ○ S Rendle ○ 2010 IEEE International Conference on Data Mining, 995-1000 ○ http://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf ● Regression, Classification, Rankingに使える機械学習モデル。 ● 感覚的には「投入した特徴全ての組合せを加味してくれるモデル」。 ● Kaggleの”Display Advertisment Challenge”で優勝したチームがGBDTとスタッキ ングさせて使った。
3.
Factorization Machinesのモデル global bias 普通の回帰式での intercept 普通の回帰部分 n個の特徴。 全パターン交互作用項 の近似部分 Wがpositive
definiteなmatrixであれば、十分な サイズのkを持つmatrix,Vによって以下の様に分 解できる。 W = V・V^t 分解してモデルに代入すると求めるパラメーター の数がn*kへと減るので計算が楽になる。
4.
Rでの扱い方 ● libFMexeパッケージが利用可能 ● c++で実装されたlibFMをRから使うためのパッケージ。 ●
基本的な使い方は以下の流れ。 a. libFMをインストール b. libFMexeパッケージをgithubからインストール c. R内でlibFMの場所を指定して、libFM関数を使う。
5.
libFMのインストール ● http://www.libfm.org/ へ行きダウンロード ○ macであれば解凍して、cd
./解凍したディレクトリ/libfm-1.43.srcでディレクトリ を移動してから make all ○ windowsは解凍したらそのまま使える。 ● libFMexeのインストール ○ devtoolsがインストールされたRで以下を実行する。 ○ devtools::install_github("andland/libFMexe") ● 準備は一旦これでおk
6.
競馬の予測をしてみる ● データ:2014/3-2016/3のデータを地方中央問わず。 ○ あるサイトからスクレイピングしました汗 ●
1, 2着を1とし、それ以降を0とした分類問題として解く。 ● オッズの人気による予測をベースラインとして、オッズ予測よりも精度の高い分類 器を作りたい。 ● FMはデータ上で起きていなかった変数の組み合わせに対してもパラメーターが近 似されている。 ● なので、今までに起きていなかった馬の組み合わせでのレースにもちゃんと予測値 を出せる。。。ハズ。
7.
データの準備 sparseMatrix形式でデータを準備。 今回はあらかじめ整形してある。 labelにしたいデータだけ取り出して、 データセットからは削る。 sampleを使ってテストデータのフラグ を立てる。 sp_matrix_libFMでsparseMatix形式の データをlibFMで読み取り可能な形式に変 換する。 data.frameからも変換できる関数がある が圧倒的に遅い。
8.
学習 pathを通すのが面倒なので、 exe_locを 使ってlibFMの場所を指定。 kの大きさの指定 学習時のiteration 学習taskの種類 regression =
“r” ● libFMの結果としてtest_setに対する予測値が帰ってくる。
9.
結果 オッズの人気上位2位が勝つと想定した時の結果 precision = 3337/(3555+3337)
= 0.48 FMで予測し、閾値をtraining_dataでのlabelの平均と した場合の結果。 precision = 8965/(8965+5911) = 0.6 AUROCだと0.6程度。。。泣 ● ベースラインとなる戦略よりはマシな戦略を立てられそう。 ● でもしょぼい。 ● ちなみにxgboostでやったらAUROCは0.7程度。。。orz ● 実際に馬券を買う事を考えるとこの評価では正直微妙。
10.
まとめ ● libFMはRからでも使える。 ● まだ起きてない組み合わせへの予測は魅力的。 ●
けどとりあえずやってみたからといって何か良い結果が出るわけでもない。 ● あと、競馬で儲けようと思ったら予測を当てるだけでなく、当たった時にリターンが 大きくなるような買い方も考えなければいけない。 ● 人生は困難でいっぱい。
11.
(参考) ● libFMexeを動かすまで ○ http://qiita.com/siero5335/items/8a8eb8de8633041d865a ●
Rで競馬予想をやってみた ○ https://drive.google.com/file/d/0BzS0JN_XV85MVzFzSWszdTlwckk/view ● libFMexe(github) ○ https://github.com/andland/libFMexe
12.
Enjoy!
Download now