今天,逛網頁發現了一款推薦系統的引擎——crab。它是python的乙個開源包,整個推薦系統的構架已經寫好,其中的推薦演算法可以自己定義,在此構架上進行推薦演算法的研究可以提高效率。
1、crab的安裝
(1)在安裝之前,需要一些python包和其他一些,這些是numpy, scipy, setuptools,scikits.learn, python development headers,a working c++compiler。我們通過命令獲得:
sudo apt-get install python-dev python-numpy python-numpy-devpython-setuptools python-numpy-dev python-scipy libatlas-devg++
為了獲得最新的版本可以執行一下:
pip install -u scikits.learn
oreasy_install -u scikits.learn
為了包內的示例資料集可以順利執行,我們可以執行一下:
sudo apt-get install python-matplotlib
(2)安裝crab
可以通過pip來安裝:
pip install -u crab
or:easy_install -u crab
這種安裝最為快速。
先解壓,再cd到目錄,執行:
python setup.py install
安裝ok
2、使用
在終端中執行:
python
help("scikits.crab")
可以獲得幫助
可以看到這個包有一下借個目錄:
base、datasets、metrics、models、recommenders、similarities、tests、utils
datasets中放了乙個電影的示例資料集和乙個歌曲的示例資料集
models中包含了幾種資料模型
recommenders下是需要我們自己重寫的演算法,包括knn和svd
similarities是相似度
(2)來乙個例項
這個例子是官方的
先從資料集中讀取資料
>>> from scikits.crab import datasets
>>> movies = datasets.load_sample_movies()
>>> songs = datasets.load_sample_songs()
我們可以列印出資料集的內容,注意看它們的格式
>>> print movies.data ,
2: ,
3: ,
4: ,
5: ,
6: ,
7: }
可以將使用者單獨列印出來
>>> print movies.user_ids
也可以將物品單獨列印出來
>>> print movies.item_ids
引入模型包,將資料集中資料定義成特定的模型
>>> from scikits.crab.models importmatrixpreferencedatamode l
>>> #build the model
>>> model = matrixpreferencedatamode
l(movies.data)
引入矩陣包和相似度包,計算相似度
>>> from scikits.crab.metrics importpearson_correlation
>>> from scikits.crab.similarities importusersimilarity
>>> #build the similarity
>>> similarity = usersimilarity(model,pearson_correlation)
引入演算法包,這裡引入的是基於使用者的協同過濾演算法,當然這個演算法要自己重寫
>>> from crab.recommenders.knn importuserbasedrecommender
>>> #build the user based recommender
>>> recommender = userbasedrecommender(model, similarity,with_preference=true)
這裡是為使用者5推薦商品,從結構可以看出系統為使用者5推薦了3種相似度最高的物品,
推薦一款網遊
三月王朝 也叫帝國霸略 挺不錯的,優點 20 多人約好晚上一起打都城,很帶勁。qq飛車採用了世界級的物理引擎physx,採納專業車手的建議,手感全面超越市場領先產品。qq飛車完全免費,qq號碼即可登陸。專為qq使用者設計的時尚的人物造型,爽快的漂移快感,帥哥與美女同在,速度與激情並存,帶你進入眩目的...
修正一款php webshell
if empty post newcontent ph4ckp v2.0 by pr0cess modified ph4ckp v2.0 modified operating system echo php os server name server ip server time server po...
foolbox 一款神奇的Python工具箱
原文 foolbox 翻譯 vincent foolbox是乙個python工具箱,它可以建立一些對抗樣本從而來迷惑神經網路。它需要python,numpy和scipy。pip install foolbox我們測試的時候使用的是python 2.7 3.5和3.6版本。當然python其它版本也可...