phpjuice/opencf

基于(加权Slopeone、余弦、加权余弦)评分的协同过滤方案的PHP实现。

v2.2.1 2023-10-05 12:33 UTC

This package is auto-updated.

Last update: 2024-09-05 14:49:22 UTC


README

tests packagist Maintainability Latest Stable Version Total Downloads License

基于(加权Slopeone、余弦、加权余弦)评分的协同过滤方案的PHP实现。

要了解更多信息,请访问详细的 文档

安装

OpenCF 包需要 PHP 7.4 或更高版本。

INFO: 如果你使用的是较旧版本的PHP,此包将无法正常工作。

安装 OpenCF 包的推荐方式是通过 Composer。

composer require phpjuice/opencf

使用方法

OpenCF 包设计得非常简单直观。你所要做的就是

  1. 加载训练集(数据集)
  2. 使用推荐器预测未来的评分。(加权Slopeone、余弦、加权余弦)

创建推荐器服务

通过直接实例化创建 OpenCF 推荐器服务

use OpenCF\RecommenderService;

// Create an instance
$recommenderService = new RecommenderService($dataset);

添加数据集

可以通过构造函数添加数据集,也可以通过提供用户评分的数组并通过 setDataset() 方法轻松完成

$dataset = [
    "squid" => [
        "user1" => 1,
        "user2" => 1,
        "user3" => 0.2,
    ],
    "cuttlefish" => [
        "user1" => 0.5,
        "user3" => 0.4,
        "user4" => 0.9,
    ],
    "octopus" => [
        "user1" => 0.2,
        "user2" => 0.5,
        "user3" => 1,
        "user4" => 0.4,
    ],
    "nautilus" => [
        "user2" => 0.2,
        "user3" => 0.4,
        "user4" => 0.5,
    ],
];

$recommenderService->setDataset($dataset);

获取预测结果

要预测新用户的评分,只需从推荐器服务中检索一个引擎并运行 predict() 方法。

// Get a recommender
$recommender = $recommenderService->cosine(); // Cosine recommender
// OR
$recommender = $recommenderService->weightedCosine(); // WeightedCosine recommender
// OR
$recommender = $recommenderService->weightedSlopeone(); // WeightedSlopeone recommender

// Predict future ratings
$results = $recommender->predict([
    "squid" => 0.4
]);

使用 WeightedSlopeone 推荐器应该会产生以下结果

[
  "cuttlefish" => 0.25,
  "octopus" => 0.23,
  "nautilus" => 0.1
];

运行测试

你可以通过 composer 轻松运行测试

composer test

构建工具

  • PHP - 使用的编程语言
  • Composer - 依赖管理
  • Pest - 精美的PHP测试框架

变更日志

请参阅 变更日志 了解最近更改的信息。

贡献

请参阅 CONTRIBUTING.md 了解详细信息及待办事项列表。

安全

如果你发现任何与安全相关的问题,请通过电子邮件联系作者,而不是使用问题跟踪器。

致谢

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库的 标签

许可证

许可证。有关更多信息,请参阅 许可证

tests packagist Maintainability Latest Stable Version Total Downloads License