2个版本
0.1.2 | 2024年7月4日 |
---|---|
0.1.0 | 2021年12月1日 |
#144 in 开发工具
25 每月下载量
30KB
635 行
Disco CLI
🔥 从CSV文件生成推荐
- 支持基于用户和基于项目的推荐
- 支持显式和隐式反馈
- 使用高性能矩阵分解
安装
下载最新版本
您也可以使用Homebrew
brew install ankane/brew/disco
或Cargo进行安装
cargo install disco-cli
快速入门
下载MovieLens 100k数据集并生成基于项目的推荐
disco download movielens-100k
disco item-recs movielens-100k.csv output.csv --factors 20
grep "^Star Wars" output.csv
使用方法
数据
创建一个包含您的数据的CSV文件。如果用户直接对物品进行评分,这被称为显式反馈。CSV文件应该有三个列:user_id
、item_id
和 rating
。
user_id,item_id,rating
1,post1,5
1,post2,3.5
2,post1,4
如果用户没有直接对物品进行评分(例如,他们购买物品或阅读帖子),这被称为隐式反馈。使用 value
代替 rating
并使用类似购买数量、页面浏览量或仅 1
的值。
user_id,item_id,value
1,post1,1
1,post2,1
2,post1,1
每个 user_id
/item_id
组合应只出现一次。
基于用户的推荐
生成基于用户的推荐 - “喜欢类似用户的用户也喜欢”
disco user-recs data.csv output.csv
这会创建一个包含 user_id
、recommended_item_id
和 score
列的CSV文件。
基于项目的推荐
生成基于项目的推荐 - “喜欢此项目的用户还喜欢”
disco item-recs data.csv output.csv
这会创建一个包含 item_id
、recommended_item_id
和 score
列的CSV文件。
相似用户
生成相似用户
disco similar-users data.csv output.csv
这会创建一个包含 user_id
、similar_user_id
和 score
列的CSV文件。
算法
Disco使用高性能矩阵分解。
- 对于显式反馈,它使用具有双学习者的随机梯度法
- 对于隐式反馈,它使用共轭梯度法
指定因子数和迭代次数
disco ... --factors 8 --iterations 20
选项
指定每个用户或商品的推荐数量
disco ... --count 10
数据集
下载数据集
disco download movielens-100k
支持的数据库包括
- movielens-100k
- movielens-1m
- movielens-25m
- movielens-latest-small
- movielens-latest
历史记录
查看变更日志
贡献
鼓励每个人帮助改进这个项目。以下是一些你可以帮助的方式
开始开发
git clone https://github.com/ankane/disco-cli.git
cd disco-cli
cargo run
依赖关系
~7–18MB
~255K SLoC