Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Recommenders team Recommenders Cornac Utils

From Leeroopedia


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

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)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment