Giter VIP home page Giter VIP logo

recq's Introduction

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
  -header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
  -header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
  -testSet -f path/to/test/file;<br>
 </td>
<td>Main option: whether to output recommendation results<br>
  -dir path: the directory path of output results.
   </td>
Entry Example Description
ratings D:/MovieLens/100K.txt
social D:/MovieLens/trusts.txt
ratings.setup -columns 0 1 2
social.setup -columns 0 1 2
recommender UserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup ../dataset/FilmTrust/testset.txt
item.ranking off -topN -1
<td>Main option: whether to do item ranking<br>
  -topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setup on -dir ./Results/

###Memory-based Options

similarity pcc/cos Set the similarity method to use. Options: PCC, COS;
num.shrinkage 25 Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors 30 Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors 5/10/20/number Set the number of latent factors
num.max.iter 100/200/number Set the maximum number of iterations for iterative recommendation algorithms.
learnRate -init 0.01 -max 1 -init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda -u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

recq's People

Contributors

coder-yu avatar giginewstart avatar niki666 avatar recq-cse avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.