分享一个Go语言实现的推荐算法库
^_^厚颜无耻地推广一下:https://github.com/zhenghaoz/gorse
最近学习了Go语言和推荐系统算法,所以就开发了这个算法库。其中主要实现了基于协同过滤的推荐算法,也就是只使用用户和商品的评分(或者其他交互)来向用户推荐。主要包含了以下功能:
- **推荐模型:**[模型](https://godoc.org/github.com/zhenghaoz/gorse/model)主要是基于矩阵分解和K邻近,可以用于评分预测和商品排名;
- **数据集:**可以加载自带的数据集,也可以从CSV文件加载;
- **数据分割:**包括了K折交叉验证、比例分割、用户留一法;
- **评分标准:**包括了用于评估评分预测的RMSE和MAE,以及用于评估排名的Presicion/Recall/NDCG/MAP/MRR/AUC;
- **参数搜索**:支持使用网格搜索和随机搜索的方法选择最佳的模型参数;
- **持久化**:可以将模型保存到文件,以及从文件加载模型。
我主要用来跑一些简单对比实验,功能上算是完整了,实际使用可能还是太简单。以后打算加入AVX2指令优化、实现贝叶斯调参等功能,如果大佬们感兴趣欢迎关注一下^_^