Skip to content

Collaborative filtering recommendation system. Recommendation algorithm using collaborative filtering. Topics: Ranking algorithm, euclidean distance algorithm, slope one algorithm, filtragem colaborativa.

License

Notifications You must be signed in to change notification settings

tigoCaval/recommendation-algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recommendation algorithm

Collaborative filtering recommendation system

  • Ranking algorithm using likes / dislikes or star-based rating
  • This package can be used in any PHP application or with any framework.
  • Download package: composer require tigo/recommendation
  • MIT license. Feel free to use this project. Leave a star ⭐ or make a fork !

If you found this project useful, consider making a donation to support the developer.

paypal | paypal

Getting started

Starting with composer

  1. Install composer
  2. Download package: composer require tigo/recommendation
  3. PHP >= 7.0; Versions that have been tested: 7.2.25, 7.3.23 e 8.0.1.
//Somewhere in your project, you may need to use autoload
include __DIR__ ."/vendor/autoload.php";

Algorithms

  • ranking
  • euclidean
  • slope one

Introduction

Recommend a product using collaborative filtering

   /**  
     $table gets the array from the database.
     $user is the foreign key that represents the user who will receive the recommendation.
   **/
   use Tigo\Recommendation\Recommend; // import class
   $client = new Recommend();
   $client->ranking($table,$user); //optional third parameter refers to the score not accepted
   $client->euclidean($table,$user); //optional third parameter refers to the minimum accepted score
   $client->slopeOne($table, $user); //optional third parameter refers to the minimum accepted score

Configuration

Sometimes, it may be necessary to rename the value of the constants (According to your database table).

example

  • Configure: standard key (Directory: ./src/configuration/StandardKey.php)
    const SCORE = 'score'; //score  
    const PRODUCT_ID = 'product_id'; //Foreign key
    const USER_ID = 'user_id'; //Foreign key 

Example

A simple didactic demonstration of the algorithm

  /**
     Example using "rating: liked and disliked"
     like: score = 1;  dislike: score = 0
  **/
   $table = [
        ['product_id'=> 'A',
         'score'=> 1, 
         'user_id'=> 'Pedro'
        ],
        ['product_id'=> 'B',
         'score'=> 1, 
         'user_id'=> 'Pedro'
        ],
        ['product_id'=> 'A',
         'score'=> 1, 
         'user_id'=> 'João'
        ],
        ['product_id'=> 'B',
         'score'=> 1, 
         'user_id'=> 'João'
        ],
        ['product_id'=> 'C',
         'score'=> 1, 
         'user_id'=> 'João'
        ]
  ];
  use Tigo\Recommendation\Recommend; // import class
  $client = new Recommend();
  print_r($client->ranking($table,"Pedro")); // result = ['C' => 2] 
  print_r($client->ranking($table,"Pedro",1)); // result = []; 
  
  print_r($client->euclidean($table,"Pedro")); // result = ['C' => 1]
  print_r($client->euclidean($table,"Pedro", 2)); // result = [] ;  
  
  print_r($client->slopeOne($table,'Pedro')); // result = ['C' => 1]
  print_r($client->slopeOne($table,'Pedro', 2)); // result = []

Supporting this project

If you are interested in supporting this project, you can help in many ways. Leave a star ⭐ or make a donation of any value.

Sponsor supporting this project

  • []

Contributors

License

MIT license. See the archive License


About

Collaborative filtering recommendation system. Recommendation algorithm using collaborative filtering. Topics: Ranking algorithm, euclidean distance algorithm, slope one algorithm, filtragem colaborativa.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy