GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

NicolasHug

Surprise – 推奨システムの構築と分析のためのPythonスクリメージ

投稿日:

推奨システムの構築と分析のためのPythonスクリメージ http://surpriselib.com

驚き

概要

サプライズは、Pythonのscikitビルドと推薦システムの分析です。

サプライズ は以下の目的を念頭に置いて設計されました

SurPRISE (おおよそ:)という名前は、Simple Python Recommendation System Engineの略です。

はじめに、例

ここでは、データセットを読み込み、5倍のクロスバリデーションのために分割し、 SVDアルゴリズムのMAEとRMSEを計算する方法を示す簡単な例を示します。

from surprise import SVD
from surprise import Dataset
from surprise.model_selection import cross_validate

# Load the movielens-100k dataset (download it if needed).
data = Dataset.load_builtin('ml-100k')

# Use the famous SVD algorithm.
algo = SVD()

# Run 5-fold cross-validation and print results.
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

出力

Evaluating RMSE, MAE of algorithm SVD on 5 split(s).                       
                                                                           
            Fold 1  Fold 2  Fold 3  Fold 4  Fold 5  Mean    Std            
RMSE        0.9311  0.9370  0.9320  0.9317  0.9391  0.9342  0.0032         
MAE         0.7350  0.7375  0.7341  0.7342  0.7375  0.7357  0.0015         
Fit time    6.53    7.11    7.23    7.15    3.99    6.40    1.23           
Test time   0.26    0.26    0.25    0.15    0.13    0.21    0.06 

サプライズはるかに多くを行うことができます(例えば、 GridSearchCV )! 詳細な使用例は、 ドキュメントにあります

ベンチマーク

ここでは、5倍のクロスバリデーション手順でのさまざまなアルゴリズムの平均RMSE、MAEおよび合計実行時間(デフォルトパラメータを使用)を示します。 データセットは、 Movielens 100kおよび1Mデータセットです。 折り畳みはすべてのアルゴリズムで同じです。 すべての実験は、Intel Core i5 7th gen(2.5GHz)および8Go RAMを搭載したノートブックで実行されます。 これらのテーブルを生成するためのコードは、 ベンチマーク例で見つけることができます。

Movielens 100k RMSE MAE 時間
SVD 0.934 0.737 0:00:11
SVD ++ 0.92 0.722 0:09:03
NMF 0.963 0.758 0:00:15
スロープワン 0.946 0.743 0:00:08
k-NN 0.98 0.774 0:00:10
センタリングされたk-NN 0.951 0.749 0:00:10
k-NNベースライン 0.931 0.733 0:00:12
コ・クラスタリング 0.963 0.753 0:00:03
ベースライン 0.944 0.748 0:00:01
ランダム 1.514 1.215 0:00:01
Movielens 1M RMSE MAE 時間
SVD 0.873 0.686 0:02:13
SVD ++ 0.862 0.673 2:54:19
NMF 0.916 0.724 0:02:31
スロープワン 0.907 0.715 0:02:31
k-NN 0.923 0.727 0:05:27
センタリングされたk-NN 0.929 0.738 0:05:43
k-NNベースライン 0.895 0.706 0:05:55
コ・クラスタリング 0.915 0.717 0:00:31
ベースライン 0.909 0.719 0:00:19
ランダム 1.504 1.206 0:00:19

インストール

pip(あなたはnumpyとCコンパイラが必要ですが、Windowsユーザはcondaを使いたいかもしれません):

$ pip install numpy
$ pip install scikit-surprise

コンデと:

$ conda install -c conda-forge scikit-surprise

最新のバージョンでは、リポジトリをクローンしてソースをビルドすることもできます( Cythonnumpyが必要です)。

$ pip install numpy cython
$ git clone https://github.com/NicolasHug/surprise.git
$ cd surprise
$ python setup.py install

ライセンス

このプロジェクトは、 BSD 3-Clauseライセンスの下でライセンスされているので、商用アプリケーションを含むほとんどすべてに使用できます。 サプライズがあなたにどのように役立つのか教えてください!

研究論文でサプライズを引用する必要がある場合は、ここにBibtexのエントリーがあります(サプライズが役立つかどうかを知っておきたい)

@Misc{Surprise,
author =   {Hug, Nicolas},
title =    { {S}urprise, a {P}ython library for recommender systems},
howpublished = {\url{http://surpriselib.com}},
year = {2017}
}

貢献者

次の人物がサプライズに貢献しました:

Charles-Emmanuel Dias、Lukas Galke、Pierre-FrançoisGimenez、Nicolas Hug、Hengji Liu、Maher Malaeb、Naturale0、nju-luke、Skywhat、David Stevens、Mike Lee Williams、Chenchen Xu。

どうもありがとう :) !

貢献、フィードバック、連絡

どんな種類のフィードバック/批評も非常に高く評価されます(ソフトウェア設計、文書化、改善アイデア、スペルミスなど)。

サプライズで実装されている機能やアルゴリズムをご希望の場合は、お知らせください。

貢献してください( ガイドラインを参照)とプルリクエストを送信してください!

サプライズに関するバグ、問題、または質問については、GitHub プロジェクトページを使用することができます (他のユーザーのレコードがないので私に電子メールを送信しないでください)。







-NicolasHug
-, , , , ,

執筆者: