SlideShare a Scribd company logo
1 of 12
Download to read offline
Factorization Machines
with R
Shota Yasui
@housecat442
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とスタッキ
ングさせて使った。
Factorization Machinesのモデル
global bias
普通の回帰式での
intercept
普通の回帰部分
n個の特徴。
全パターン交互作用項
の近似部分
Wがpositive definiteなmatrixであれば、十分な
サイズのkを持つmatrix,Vによって以下の様に分
解できる。
W = V・V^t
分解してモデルに代入すると求めるパラメーター
の数がn*kへと減るので計算が楽になる。
Rでの扱い方
● libFMexeパッケージが利用可能
● c++で実装されたlibFMをRから使うためのパッケージ。
● 基本的な使い方は以下の流れ。
a. libFMをインストール
b. libFMexeパッケージをgithubからインストール
c. R内でlibFMの場所を指定して、libFM関数を使う。
libFMのインストール
● http://www.libfm.org/ へ行きダウンロード
○ macであれば解凍して、cd ./解凍したディレクトリ/libfm-1.43.srcでディレクトリ
を移動してから make all
○ windowsは解凍したらそのまま使える。
● libFMexeのインストール
○ devtoolsがインストールされたRで以下を実行する。
○ devtools::install_github("andland/libFMexe")
● 準備は一旦これでおk
競馬の予測をしてみる
● データ:2014/3-2016/3のデータを地方中央問わず。
○ あるサイトからスクレイピングしました汗
● 1, 2着を1とし、それ以降を0とした分類問題として解く。
● オッズの人気による予測をベースラインとして、オッズ予測よりも精度の高い分類
器を作りたい。
● FMはデータ上で起きていなかった変数の組み合わせに対してもパラメーターが近
似されている。
● なので、今までに起きていなかった馬の組み合わせでのレースにもちゃんと予測値
を出せる。。。ハズ。
データの準備
sparseMatrix形式でデータを準備。
今回はあらかじめ整形してある。
labelにしたいデータだけ取り出して、
データセットからは削る。
sampleを使ってテストデータのフラグ
を立てる。
sp_matrix_libFMでsparseMatix形式の
データをlibFMで読み取り可能な形式に変
換する。
data.frameからも変換できる関数がある
が圧倒的に遅い。
学習
pathを通すのが面倒なので、 exe_locを
使ってlibFMの場所を指定。
kの大きさの指定
学習時のiteration
学習taskの種類
regression = “r”
● libFMの結果としてtest_setに対する予測値が帰ってくる。
結果
オッズの人気上位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
● 実際に馬券を買う事を考えるとこの評価では正直微妙。
まとめ
● libFMはRからでも使える。
● まだ起きてない組み合わせへの予測は魅力的。
● けどとりあえずやってみたからといって何か良い結果が出るわけでもない。
● あと、競馬で儲けようと思ったら予測を当てるだけでなく、当たった時にリターンが
大きくなるような買い方も考えなければいけない。
● 人生は困難でいっぱい。
(参考)
● libFMexeを動かすまで
○ http://qiita.com/siero5335/items/8a8eb8de8633041d865a
● Rで競馬予想をやってみた
○ https://drive.google.com/file/d/0BzS0JN_XV85MVzFzSWszdTlwckk/view
● libFMexe(github)
○ https://github.com/andland/libFMexe
Enjoy!

More Related Content

What's hot

トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...JunSuzuki21
 
[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for VisionDeep Learning JP
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギーHiroshi Shimizu
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章Hakky St
 
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...Deep Learning JP
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点Taiji Suzuki
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明Haruka Ozaki
 
はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半koba cky
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用gree_tech
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性西岡 賢一郎
 
「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネット「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネットKen'ichi Matsui
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習Preferred Networks
 
系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎Takatomo Isikawa
 
第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)RCCSRENKEI
 
Bayesian Sushistical Modeling
Bayesian Sushistical ModelingBayesian Sushistical Modeling
Bayesian Sushistical Modelingdaiki hojo
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化gree_tech
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」Hitomi Yanaka
 

What's hot (20)

トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
 
[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision[DL輪読会]MetaFormer is Actually What You Need for Vision
[DL輪読会]MetaFormer is Actually What You Need for Vision
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
 
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性
 
「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネット「深層学習」第6章 畳込みニューラルネット
「深層学習」第6章 畳込みニューラルネット
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
 
Iclr2016 vaeまとめ
Iclr2016 vaeまとめIclr2016 vaeまとめ
Iclr2016 vaeまとめ
 
系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎
 
第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
Bayesian Sushistical Modeling
Bayesian Sushistical ModelingBayesian Sushistical Modeling
Bayesian Sushistical Modeling
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
東京大学2020年度深層学習(Deep learning基礎講座) 第9回「深層学習と自然言語処理」
 

Viewers also liked

可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜Takashi Kitano
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRShuyo Nakatani
 
20160730tokyor55
20160730tokyor5520160730tokyor55
20160730tokyor55Med_KU
 
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析Satoshi Kato
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用Nobuaki Oshiro
 
木と電話と選挙(causalTree)
木と電話と選挙(causalTree)木と電話と選挙(causalTree)
木と電話と選挙(causalTree)Shota Yasui
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章Shuyo Nakatani
 
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)Keiku322
 
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみたKeisuke Hosaka
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes FactorShushi Namba
 
てかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanRてかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanRcancolle
 
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)Takuma Hatano
 
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_ltNobuaki Oshiro
 
GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例Takanori Nakai
 
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKeisuke Hosaka
 
Randomforestで高次元の変数重要度を見る #japanr LT
 Randomforestで高次元の変数重要度を見る #japanr LT Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LTAkifumi Eguchi
 
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 learningShota Yasui
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章Shuyo Nakatani
 

Viewers also liked (20)

可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
 
20160730tokyor55
20160730tokyor5520160730tokyor55
20160730tokyor55
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
木と電話と選挙(causalTree)
木と電話と選挙(causalTree)木と電話と選挙(causalTree)
木と電話と選挙(causalTree)
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
 
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
 
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
高速・省メモリにlibsvm形式で ダンプする方法を研究してみた
 
心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor心理学における「再現性」の問題とBayes Factor
心理学における「再現性」の問題とBayes Factor
 
てかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanRてかLINEやってる? (Japan.R 2016 LT) #JapanR
てかLINEやってる? (Japan.R 2016 LT) #JapanR
 
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
Rでセイバーメトリクス (イチローと松井 どっちが凄い?)
 
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
 
GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例GBDTを使ったfeature transformationの適用例
GBDTを使ったfeature transformationの適用例
 
Kaggle boschコンペ振り返り
Kaggle boschコンペ振り返りKaggle boschコンペ振り返り
Kaggle boschコンペ振り返り
 
Tidyverseとは
TidyverseとはTidyverseとは
Tidyverseとは
 
Randomforestで高次元の変数重要度を見る #japanr LT
 Randomforestで高次元の変数重要度を見る #japanr LT Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LT
 
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
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
 

More from Shota Yasui

L 05 bandit with causality-公開版
L 05 bandit with causality-公開版L 05 bandit with causality-公開版
L 05 bandit with causality-公開版Shota Yasui
 
Contextual package
Contextual packageContextual package
Contextual packageShota Yasui
 
PaperFriday: The selective labels problem
PaperFriday: The selective labels problemPaperFriday: The selective labels problem
PaperFriday: The selective labels problemShota Yasui
 
何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?Shota Yasui
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)Shota Yasui
 
Xgboost for share
Xgboost for shareXgboost for share
Xgboost for shareShota Yasui
 
重回帰分析で頑張る
重回帰分析で頑張る重回帰分析で頑張る
重回帰分析で頑張るShota Yasui
 
Dynamic panel in tokyo r
Dynamic panel in tokyo rDynamic panel in tokyo r
Dynamic panel in tokyo rShota Yasui
 
Rで部屋探し For slide share
Rで部屋探し For slide shareRで部屋探し For slide share
Rで部屋探し For slide shareShota Yasui
 

More from Shota Yasui (12)

L 05 bandit with causality-公開版
L 05 bandit with causality-公開版L 05 bandit with causality-公開版
L 05 bandit with causality-公開版
 
Contextual package
Contextual packageContextual package
Contextual package
 
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
 
何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?何故あなたの機械学習はビジネスを改善出来ないのか?
何故あなたの機械学習はビジネスを改善出来ないのか?
 
計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)計量経済学と 機械学習の交差点入り口 (公開用)
計量経済学と 機械学習の交差点入り口 (公開用)
 
Prml nn
Prml nnPrml nn
Prml nn
 
Xgboost for share
Xgboost for shareXgboost for share
Xgboost for share
 
重回帰分析で頑張る
重回帰分析で頑張る重回帰分析で頑張る
重回帰分析で頑張る
 
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
 

Factorization machines with r