多模式推荐系统的比较框架
cornac的Python项目详细描述
山茱萸
cornac是多模式推荐系统的比较框架。它的重点是使它{STR 1 } $方便/ <强>利用模型利用{{ STR 1 } $辅助数据< /强>(例如,项目描述文本和图像、社交网络等)。cornac支持新模型的fast实验和directive实现。它是{STR 1 } $高度兼容< /强>与现有的机器学习库(例如,TensorFlow,PyTrac)。
快速链接
Website| Documentation| Tutorials| Examples| Models| Preferred.AI
安装
目前,我们支持Python3(建议使用3.6版)。有几种安装Cornac的方法:
pip3 install cornac
- 来自水蟒:
conda install cornac -c conda-forge
- 来自github源(用于最新更新):
pip3 install Cython
git clone https://github.com/PreferredAI/cornac.git
cd cornac
python3 setup.py install
注意:
列出了模型所需的其他依赖项here。
有些算法使用OpenMP
来支持多线程。对于OSX用户,为了高效地运行这些算法,您可能需要从Homebrew安装gcc
,以使用OpenMP编译器:
brew install gcc | brew link gcc
如果您想利用您的GPU,您可以考虑:
开始:你的第一个玉米粉实验
康纳克的实验流程
加载内置的MovieLens 100K数据集(如果未缓存,将下载):
fromcornac.datasetsimportmovielensml_100k=movielens.load_100k()
根据比率分割数据:
fromcornac.eval_methodsimportRatioSplitratio_split=RatioSplit(data=ml_100k,test_size=0.2,rating_threshold=4.0,seed=123)
这里我们比较Biased MF
、PMF
和BPR
:
fromcornac.modelsimportMF,PMF,BPRmf=MF(k=10,max_iter=25,learning_rate=0.01,lambda_reg=0.02,use_bias=True)pmf=PMF(k=10,max_iter=100,learning_rate=0.001,lamda=0.001)bpr=BPR(k=10,max_iter=200,learning_rate=0.001,lambda_reg=0.01)
定义用于评估模型的度量:
mae=cornac.metrics.MAE()rmse=cornac.metrics.RMSE()rec_20=cornac.metrics.Recall(k=20)ndcg_20=cornac.metrics.NDCG(k=20)auc=cornac.metrics.AUC()
把所有东西放在一个实验中运行:
fromcornacimportExperimentexp=Experiment(eval_method=ratio_split,models=[mf,pmf,bpr],metrics=[mae,rmse,rec_20,ndcg_20,auc],user_based=True)exp.run()
输出:
MAE | RMSE | Recall@20 | NDCG@20 | AUC | Train (s) | Test (s) | |
---|---|---|---|---|---|---|---|
MF | 0.7441 | 0.9007 | 0.0622 | 0.0534 | 0.2952 | 0.0791 | 1.3119 |
PMF | 0.7490 | 0.9093 | 0.0831 | 0.0683 | 0.4660 | 8.7645 | 2.1569 |
BPR | N/A | N/A | 0.1449 | 0.1124 | 0.8750 | 0.8898 | 1.3769 |
有关更多详细信息,请查看我们的examples。
型号
下面列出了Cornac支持的推荐型号。你为什么不加入我们延长名单呢?
支架
欢迎您在图书馆的任何级别上作出贡献。如果您打算捐款,请:
- 将Cornac资源库转移到您自己的帐户。
- 进行更改并创建拉取请求。
您还可以在GitHub issues中发布错误报告和功能请求。