基于流的推荐系统软件库

increc的Python项目详细描述


Build Statuscodecov

FEUP-DISS公司

此存储库托管基于流的推荐系统上的软件库。这是我论文的一部分 波尔图大学工程学院。在

概述

general overview

目录

这个软件库包含关于在在线平台上实现推荐系统的代码。它实现了一些算法、测试指标和数据结构,以便它能够处理传入的信息(表示为评级流)。每个等级可以是implicitexplicit,并由用户对项目进行评分。显式评分是用户直接给出的评价,例如1-10分制。隐式评级可以解释为用户对项目所采取的操作(例如页面点击),这些操作可以解释为用户liking。每个评级都是一个元组(用户id,项目编号,评分)。对于隐式反馈,元组变成:(user_id,item_id)

当前实现的算法:

  1. Explicit-Based User-Based Collaborative Filtering
  2. Explicit User-Based Clustering Collaborative Filtering
  3. Implicit User-Based Collaborative Filtering
  4. Implicit User-Based Clustering Collaborative Filtering
  5. Implicit Locality Sensitive Hashing Item-Based Collaborative Filtering
  6. Implicit Locality-Sensitive Hashing-Based-Based Collaborative Filtering
  7. 隐式矩阵分解
  8. 带矩阵预处理的显式矩阵分解
  9. 没有矩阵预处理的显式矩阵分解
  10. Implicit Item-Based协同过滤
  11. Implicit Item-Based Clustering-Collaborative Filtering

安装

目前该库部署在Pypi上。在

pip install increc

依赖关系

出于开发目的:

  1. Python3.8
  2. Pipenv需要在虚拟环境中运行此操作。pip install --user pipenv
  3. python -m pipenv lock -r > requirements.txt
  4. pipenv install -r requirements.txt

运行测试

这个库使用unittest进行单元测试,使用flake8作为其短线。在

  1. pipenv run python -m unittest discover -v -p "*_test.py"
  2. pipenv run flake8

运行示例

用法示例位于examples文件夹中。在

pipenv run python -m examples.collaborative_filtering.neighborhood.explicit_feedback.user_based.user_based_clustering "data_set"

文件

文档是使用Sphinx创建的。在

  1. pipenv run sphinx-apidoc -f -o docs/source algorithms
  2. pipenv run sphinx-apidoc -f -o docs/source stream
  3. pipenv run sphinx-apidoc -f -o docs/source data_structures
  4. pipenv run sphinx-apidoc -f -o docs/source utils
  5. pipenv run sphinx-apidoc -f -o docs/source graphic
  6. pipenv run sphinx-build -b html docs/source/ docs/build

https://marko50.github.io/increc-documentation

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
io如何从java中的远程FileInputStream中知道扩展名为的文件名   java spring引导不会为JSP返回404,除非编译tomcat maven依赖范围?   ArchUnit:如何避免对java类的依赖冲突   java Hibernate很多都不工作   java tomcat基于表单的身份验证数据源配置错误   java将随机对象声明为私有静态最终属性可以吗?   java Sobel筛选器无法正常工作   我想用java为hangman乘以一个字符串   当我试图运行部署在Tomcat中的任何项目时,ubuntu上的java Tomcat服务器将自动关闭   java更高效地读取按字母顺序排序的文本文件   java Android Studio“尚未附加片段”   在JavaServlet中使用从一种形式到另一种形式的数据的html   检测Java中打开的文件夹(JNativeHook)   jakarta ee Hibernate映射异常:实体映射中的重复列   httpSession在Java中使用什么方法进行会话管理   java如何将两个类的代码外包到一个新的类中,以便两个类都可以调用该方法