Implementation:Recommenders team Recommenders Cornac Utils
| Knowledge Sources | |
|---|---|
| Domains | Recommendation Systems, Collaborative Filtering |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
Provides utility functions for generating rating predictions and ranking predictions from any Cornac recommender model, returning results as pandas DataFrames.
Description
This module contains two core utility functions that bridge Cornac model objects with the recommenders library's DataFrame-based evaluation pipeline.
The predict function computes pointwise rating predictions by iterating over user-item pairs in a DataFrame and calling model.rate() for each pair. It maps user and item identifiers to internal indices using model.train_set.uid_map and model.train_set.iid_map, handling unknown users or items by mapping them to an out-of-range index.
The predict_ranking function computes scores for all user-item combinations in bulk by calling model.score() for each user, which batch-scores all items at once. It builds a full cross-product prediction DataFrame using np.repeat and np.tile to construct the user and item arrays. It optionally filters out already-seen items using a merge-based approach with a dummy column indicator to identify unseen pairs.
Usage
Use predict when computing pointwise rating metrics such as RMSE or MAE on specific user-item pairs. Use predict_ranking when computing ranking metrics such as NDCG, MAP, or Precision@K across all possible user-item combinations.
Code Reference
Source Location
- Repository: Recommenders
- File: recommenders/models/cornac/cornac_utils.py
- Lines: 1-105
Signature
def predict(
model,
data,
usercol=DEFAULT_USER_COL,
itemcol=DEFAULT_ITEM_COL,
predcol=DEFAULT_PREDICTION_COL,
)
def predict_ranking(
model,
data,
usercol=DEFAULT_USER_COL,
itemcol=DEFAULT_ITEM_COL,
predcol=DEFAULT_PREDICTION_COL,
remove_seen=False,
)
Import
from recommenders.models.cornac.cornac_utils import predict, predict_ranking
I/O Contract
Inputs (predict)
| Name | Type | Required | Description |
|---|---|---|---|
| model | cornac.models.Recommender | Yes | A trained Cornac recommender model |
| data | pandas.DataFrame | Yes | DataFrame containing user-item pairs to predict ratings for |
| usercol | str | No | Name of the user column; defaults to DEFAULT_USER_COL |
| itemcol | str | No | Name of the item column; defaults to DEFAULT_ITEM_COL |
| predcol | str | No | Name of the prediction column; defaults to DEFAULT_PREDICTION_COL |
Inputs (predict_ranking)
| Name | Type | Required | Description |
|---|---|---|---|
| model | cornac.models.Recommender | Yes | A trained Cornac recommender model |
| data | pandas.DataFrame | Yes | DataFrame from which to extract unique users and items for cross-product scoring |
| usercol | str | No | Name of the user column; defaults to DEFAULT_USER_COL |
| itemcol | str | No | Name of the item column; defaults to DEFAULT_ITEM_COL |
| predcol | str | No | Name of the prediction column; defaults to DEFAULT_PREDICTION_COL |
| remove_seen | bool | No | If True, removes (user, item) pairs seen in training data from results |
Outputs
| Name | Type | Description |
|---|---|---|
| return (predict) | pandas.DataFrame | DataFrame with columns (usercol, itemcol, predcol) containing predicted ratings for each input pair |
| return (predict_ranking) | pandas.DataFrame | DataFrame with columns (usercol, itemcol, predcol) containing predicted scores for all user-item combinations |
Usage Examples
Basic Usage
from recommenders.models.cornac.cornac_utils import predict, predict_ranking
import cornac
# After training a Cornac model
model = cornac.models.BPR(k=50)
train_set = cornac.data.Dataset.from_uir(train_data.itertuples(index=False))
model.fit(train_set)
# Rating prediction for specific user-item pairs (for RMSE)
rating_predictions = predict(model, test_data)
# Ranking prediction for all user-item combos (for NDCG)
ranking_predictions = predict_ranking(model, test_data, remove_seen=True)