recommender
¶
The Turi Create recommender toolkit provides a unified interface to train a variety of recommender models and use them to make recommendations.
Recommender models can be created using turicreate.recommender.create()
or
loaded from a previously saved model using turicreate.load_model()
. The
input data must be an SFrame with a column containing user ids, a column
containing item ids, and optionally a column containing target values such as
movie ratings, etc. When a target is not provided (as is the case in implicit
feedback settings), then a collaborative filtering model based on item-item
similarity is returned. For more details, please see the documentation for
turicreate.recommender.create()
.
A recommender model object can perform key tasks including predict, recommend, evaluate, and save. Model attributes and statistics may be obtained via m.get(), where m is a model object. In particular, trained model parameters may be accessed using m.get(‘coefficients’) or equivalently m[‘coefficients’]. For more details, please see individual model API documentation below.
In addition to the API documentation, please see the recommender systems chapter of the User Guide for more details and extended examples.
>>> sf = turicreate.SFrame({'user_id': ["0", "0", "0", "1", "1", "2", "2", "2"],
... 'item_id': ["a", "b", "c", "a", "b", "b", "c", "d"],
... 'rating': [1, 3, 2, 5, 4, 1, 4, 3]})
>>> m = turicreate.recommender.create(sf, target='rating')
>>> recs = m.recommend()
>>> print recs
+---------+---------+---------------+------+
| user_id | item_id | score | rank |
+---------+---------+---------------+------+
| 0 | d | 2.42301885789 | 1 |
| 1 | c | 5.52301720893 | 1 |
| 1 | d | 5.20882169849 | 2 |
| 2 | a | 2.149379798 | 1 |
+---------+---------+---------------+------+
[4 rows x 4 columns]
>>> m['coefficients']
{'intercept': 3.1321961361684068, 'item_id': Columns:
item_id str
linear_terms float
factors array
Rows: 4
Data:
+---------+-----------------+--------------------------------+
| item_id | linear_terms | factors |
+---------+-----------------+--------------------------------+
| a | -0.381912890376 | array('d', [0.006779233276 ... |
| b | -0.482275197699 | array('d', [-3.57188659440 ... |
| c | 0.664901063905 | array('d', [-0.00025265078 ... |
| d | 0.352987048665 | array('d', [-0.00197509767 ... |
+---------+-----------------+--------------------------------+
[4 rows x 3 columns], 'user_id': Columns:
user_id str
linear_terms float
factors array
Rows: 3
Data:
+---------+-----------------+--------------------------------+
| user_id | linear_terms | factors |
+---------+-----------------+--------------------------------+
| 0 | -1.06188402031 | array('d', [-0.00321943390 ... |
| 1 | 1.72356956865 | array('d', [0.005337682218 ... |
| 2 | -0.604970370745 | array('d', [-0.00274082382 ... |
+---------+-----------------+--------------------------------+
[3 rows x 3 columns]}
item similarity models¶
item_similarity_recommender.create |
Create a recommender that uses item-item similarities based on users in common. |
item_similarity_recommender.ItemSimilarityRecommender |
A model that ranks an item according to its similarity to other items observed for the user in question. |
item content recommenders¶
item_content_recommender.create |
Create a content-based recommender model in which the similarity between the items recommended is determined by the content of those items rather than learned from user interaction data. |
item_content_recommender.ItemContentRecommender |
A recommender based on the similarity between item content rather using user interaction patterns to compute similarity. |
factorization recommenders¶
factorization_recommender.create |
Create a FactorizationRecommender that learns latent factors for each user and item and uses them to make rating predictions. |
factorization_recommender.FactorizationRecommender |
A FactorizationRecommender learns latent factors for each user and item and uses them to make rating predictions. |
factorization recommenders for ranking¶
ranking_factorization_recommender.create |
Create a RankingFactorizationRecommender that learns latent factors for each user and item and uses them to make rating predictions. |
ranking_factorization_recommender.RankingFactorizationRecommender |
A RankingFactorizationRecommender learns latent factors for each user and item and uses them to rank recommended items according to the likelihood of observing those (user, item) pairs. |
popularity-based recommenders¶
popularity_recommender.create |
Create a model that makes recommendations using item popularity. |
popularity_recommender.PopularityRecommender |
The Popularity Model ranks an item according to its overall popularity. |
utilities¶
util.compare_models |
Compare the prediction or recommendation performance of recommender models on a common test dataset. |
util.random_split_by_user |
Create a recommender-friendly train-test split of the provided data set. |
util.precision_recall_by_user |
Compute precision and recall at a given cutoff for each user. |