Googleアナリティクスのデータで協調フィルタリングによるレコメンド(PythonライブラリSuprise)
以下、作業中の備忘録
1.作業方針
ウェブサイトのページを商品として捉え、Googleアナリティクスのデータで、協調フィルタリングによるレコメンドを実装する。以下の記事を参考とさせて頂いた。
Google Analytics のデータを元に、Blog 記事 のアイテムベース協調フィルタリングレコメンドをしてみる | Monotalk
2.データ取得
ウェブサイトにGoogleアナリティクスは設定済みだったが、協調フィルタリング(これを見た人はあれを見た~)に必要な「ユーザID」は未設定だった。
そこで、下記記事を参考に、GoogleアナリティクスのクライアントIDをGoogleタグマネージャを通じてウェブサイトに設定した。
2016年の新定番!ユーザーエクスプローラーをもっと活用するための簡単な方法 | 株式会社プリンシプル
3.データ集計
取得したデータは、GoogleアナリティクスAPI経由で、Googleスプレッドシート上に集計した。
[Python] Google SpreadSheetをAPI経由で読み書きする - YoheiM .NET
【もう迷わない】Pythonでスプレッドシートに読み書きする初期設定まとめ | たぬハック
なお、Googleスプレッドシート内でディメンションを複数設定する方法としては、単に改行とした。
GoogleAnalyticsのディメンションを複数設定したい | Tips Note by TAM
Pythonの「df2gspreadモジュール」のインストールエラーについては、以下のように対処した。
Jupyter Notebookで
! pip3 install df2gspread --user
でインストールしたが
ModuleNotFoundError: No module named 'df2gspread'
エラー
ググって、
!pip3 show df2gspread
したら
Location: /Users/ユーザー名/.local/lib/python3.6/site-packages
であることがわかったので、
import sys
sys.path.append('/Users/ユーザー名/.local/lib/python3.6/site-packages')
したら、無事エラー解消
(参考記事)
pythonでImportError: No module named ・・・が出たときの確認方法と対処 | ぱーくん plus idea
【python】ImportError: No module named '***'の対処法 - 静かなる名辞
PythonでImportError: No module namedに遭遇した。 - Last Modified
4.Pythonのライブラリを使う
以下のライブラリをインストールした。当初はエラーが出たが、パソコンの再起動時にエラーは解消していた。
Surprise · A Python scikit for recommender systems.
5.結果
URLを入力すると、オススメページのURLを返すようになった。
(実装開始までの経緯)※具体的着手までに1年半年以上かかってしまいました。
2017.5 レコメンドを提案する意見あり
2017.6 協調フィルタリングなどについて調べ始める
2018.1 組織内でレコメンドを提案
2018.2 手っ取り早くGoogleアナリティクスのeコマースの関連商品を使おうとするが廃止されていた。
2018.3 Googleアナリティクスのデータ取得開始
2018.夏頃 Googleアナリティクスで協調フィルタリングによるレコメンドの記事を見つける
2018.12 Googleアナリティクスのデータ取得開始
(参考文献)※未整理のブックマーク状態
https://qiita.com/yoshizaki_kkgk/items/55b67daa25b058f39a5d
レコメンドエンジン
https://www.rtoaster.com/?utm_source=mail181101&utm_medium=email
レコメンドエンジン
https://www.probance.jp/column/20181018/?utm_source=mail181101&utm_medium=email
Yahoo!のレコメンド
http://ainow.ai/2017/12/04/126905/#Yahoo_JAPAN-4
http://ainow.ai/2018/11/06/148728/
https://oishi-kenko.hatenablog.com/entry/2018/11/13/132607
協調フィルタリングで似たレシピを探す
レコメンドアルゴリズムの基本と周辺知識と実装方法
http://ainow.ai/2018/11/26/149174/
Repro実験でレコメンデーション
11/29 Amazon Personalize