Skip to main content

A recommendation application using either item-based or user-based approaches

Project description

recommender version HitCount star this repo fork this repo

Build Build Status Coverage Status
Quality Maintainability Requirements Status
Support gitter
Platform version

A recommendation application using either item-based or user-based approaches.

Combined Image

Table of contents

  1. Usage
  2. Contribution
  3. Project Architecture
  4. Release History
  5. Contact
  6. License

Usage

Install with pip

$ pip install recommender-engine

API

make_recommendation(person_to_recommend, preference_space, recommender_approach='user_based', number_of_items_to_recommend=10, similarity_measure='euclidean_distance')

	Return list of recommendation items based on the chosen approach and similarity emasure

	Parameters
	--------------
	person_to_recommend (str): user id/name to recommend to

	preference_space (dict):  keys are user id/name and values are dictionary of items and ratings

	recommender_approach (str): support 'user_based' (default) or 'item_based'

	number_of_items_to_recommend (int): number of items to recommend (default=10)

	similarity_measure (str): similarity measurement method , support 'euclidean_distance' (default), 'cosine' or 'pearson_correlation'

Example


>>> from recommender_engine.recommender import make_recommendation
>>>	result = make_recommendation(person_to_recommend = "user1", 
								preference_space = preference_space,
								recommender = 'user_based', 
								number_of_items_to_recommend = 10,
								similarity = 'euclidean_distance')

The preference space is dictionary data structure where keys are users and values are dictionary of items and ratings

preference_space = {
					'userA : {
							 'item1' : 'ratingA1, 
							 'item2' : 'ratingA2',
							  ..., 
							  'itemn' : 'ratingAn
							  }, 
					..., 
					'userZ:{
							'item1' : 'ratingZ1,
							 'item2' : 'ratingZ2',
							  ...,
							 'itemn' : 'ratingZn
							}
				    }

Tested Datasets

The project has been tested on these Datasets

  1. Jester
  2. MovieLens

Contribution Open Source Helpers

Please follow our contribution convention at contribution instruction and code of conduct

List of issues

  1. Update unit test (#2)

Appreciation

Feel free to add your name into the list of contributors. You will automatically be inducted into Hall of Fame as a way to show my appreciation for your contributions

Hall of Fame


Project Architecture

To do


Release History

  • v1.1.1 - Mar 17, 2019

    • Fix pypi shipping
  • v1.1.0 - Mar 17, 2019

    • Simplified code base
    • Added item-based approach
    • Published to pypi
  • v1.0.0 - Jan 16, 2018

    • First official release

Contact

Feel free to contact me to discuss any issues, questions, or comments.

If you like my project, feel fee to leave a few words of appreciation here Say Thanks!


License

See the LICENSE file for license rights and limitations (Apache License 2.0).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
recommender-engine-1.1.1.tar.gz (11.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page