Py's scikit-surprise: Detaillierte Anleitung zur Einführung, Installation und Nutzung von scikit-surprise

Py's scikit-surprise: Detaillierte Anleitung zur Einführung, Installation und Nutzung von scikit-surprise

Inhaltsverzeichnis

Einführung in Scikit-Surprise

1. Benchmark-Test

Filmobjektiv 100k

Filmobjektiv 1M

Installation von scikit-surprise

So verwenden Sie Scikit-Surprise

1. Grundlegende Verwendung

(1), ein einfaches Beispiel, das zeigt, wie man den Datensatz herunterlädt (herunterlädt), ihn in eine 5-fache Kreuzvalidierung aufteilt und den MAE und RMSE des SVD-Algorithmus berechnet


Einführung in Scikit-Surprise

Surprise, die Simple Python RecommendatIon System Engine, ist ein Python-Scikit-Empfehlungssystem-Tool zum Erstellen und Analysieren expliziter Bewertungsdaten. Surprise soll:

>> Gibt Benutzern die volle Kontrolle über ihre Experimente. Zu diesem Zweck legen wir Wert auf die Dokumentation und versuchen, sie so klar und präzise wie möglich zu gestalten, indem wir auf jedes Detail des Algorithmus hinweisen.

>> Erleichtern Sie die Verarbeitung von Datensätzen. Benutzer können integrierte Datensätze (Movielens, Jester) und benutzerdefinierte Datensätze verwenden.

>> Bietet verschiedene verfügbare Vorhersagealgorithmen, wie z. B. Basisalgorithmus, Nachbarschaftsmethode, auf Matrixzerlegung basierender Algorithmus (SVD, PMF, SVD++, NMF) usw. Zusätzlich sind verschiedene Ähnlichkeitsmaße integriert (Kosinus, MSD, Pearson usw.).

>> Vereinfacht die Implementierung neuer Algorithmusideen.

>> Bietet Tools zum Bewerten, Analysieren und Vergleichen der Algorithmusleistung. Mit dem leistungsstarken CV-Iterator (inspiriert von den hervorragenden Tools von scikit-learn) können Kreuzvalidierungsverfahren problemlos ausgeführt werden, ebenso wie umfassende Suchvorgänge über eine Reihe von Parametern.

Bitte beachten Sie, dass Surprise keine implizite Bewertung oder inhaltsbasierte Informationen unterstützt.

1. Benchmark-Test

Nachfolgend sind die durchschnittliche RMSE-, MAE- und Gesamtausführungszeit verschiedener Algorithmen (unter Verwendung von Standardparametern) während der 5-fachen Kreuzvalidierung aufgeführt. Zu den Datensätzen gehören Movielens 100k- und 1M-Datensätze, alle Algorithmen verwenden die gleiche Faltung. Alle Experimente wurden auf einem Laptop durchgeführt, der mit einem Intel i5-Prozessor der 11. Generation mit 2,60 GHz ausgestattet war. Den Code zum Generieren dieser Tabellen finden Sie in den Benchmark-Beispielen.

Filmobjektiv 100k

Filmobjektiv 100k RMSE ES GIBT Zeit
SVD 0,934 0,737 0:00:06
SVD++ (cache_ratings=False) 0,919 0,721 0:01:39
SVD++ (cache_ratings=True) 0,919 0,721 0:01:22
NMF 0,963 0,758 0:00:06
Steigung Eins 0,946 0,743 0:00:09
k-NN 0,98 0,774 0:00:08
Zentriertes k-NN 0,951 0,749 0:00:09
k-NN-Basislinie 0,931 0,733 0:00:13
Co-Clustering 0,963 0,753 0:00:06
Grundlinie 0,944 0,748 0:00:02
zufällig 1.518 1.219 0:00:01

Filmobjektiv 1M

Filmobjektiv 1M RMSE ES GIBT Zeit
SVD 0,873 0,686 0:01:07
SVD++ (cache_ratings=False) 0,862 0,672 0:41:06
SVD++ (cache_ratings=True) 0,862 0,672 0:34:55
NMF 0,916 0,723 0:01:39
Steigung Eins 0,907 0,715 0:02:31
k-NN 0,923 0,727 0:05:27
Zentriertes k-NN 0,929 0,738 0:05:43
k-NN-Basislinie 0,895 0,706 0:05:55
Co-Clustering 0,915 0,717 0:00:31
Grundlinie 0,909 0,719 0:00:19
zufällig 1.504 1.206 0:00:19

Installation von scikit-surprise

pip install numpy
pip install scikit-surprise
pip install -i https://mirrors.aliyun.com/pypi/simple scikit-surprise



或者利用conda
conda install -c conda-forge scikit-surprise



或者从最新的源代码构建
pip install numpy cython
git clone https://github.com/NicolasHug/surprise.git
cd surprise
python setup.py install

So verwenden Sie Scikit-Surprise

1. Grundlegende Verwendung

(1), ein einfaches Beispiel, das zeigt, wie man den Datensatz herunterlädt (herunterlädt), ihn in eine 5-fache Kreuzvalidierung aufteilt und den MAE und RMSE des SVD-Algorithmus berechnet


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 (testset)    0.9367  0.9355  0.9378  0.9377  0.9300  0.9355  0.0029  
MAE (testset)     0.7387  0.7371  0.7393  0.7397  0.7325  0.7375  0.0026  
Fit time          0.62    0.63    0.63    0.65    0.63    0.63    0.01    
Test time         0.11    0.11    0.14    0.14    0.14    0.13    0.02    

Guess you like

Origin blog.csdn.net/qq_41185868/article/details/134971067