Beispiel #1
0
from DRecPy.Recommender.Baseline import ItemKNN
from DRecPy.Dataset import get_full_dataset
from DRecPy.Evaluation.Splits import leave_k_out
from DRecPy.Evaluation.Processes import ranking_evaluation
from DRecPy.Evaluation.Metrics import HitRatio
from DRecPy.Evaluation.Metrics import NDCG
import time

ds_full = get_full_dataset('ml-100k')
ds_train, ds_test = leave_k_out(ds_full, k=1, last_timestamps=True, seed=0)

start_train = time.time()
item_cf = ItemKNN(k=5,
                  m=1,
                  shrinkage=50,
                  sim_metric='adjusted_cosine',
                  verbose=True)
item_cf.fit(ds_train)
print("Training took", time.time() - start_train)

start_evaluation = time.time()
print(
    ranking_evaluation(item_cf,
                       ds_test,
                       n_pos_interactions=1,
                       n_neg_interactions=100,
                       generate_negative_pairs=True,
                       novelty=True,
                       k=list(range(1, 11)),
                       metrics=[HitRatio(), NDCG()],
                       seed=10))
Beispiel #2
0
def fit_model_mean_aggr(train_interaction_ds):
    fit_model_mean_aggr = ItemKNN(k=20, m=5, sim_metric='adjusted_cosine', aggregation='mean', shrinkage=100,
                                  use_averages=False)
    fit_model_mean_aggr.fit(train_interaction_ds)
    return fit_model_mean_aggr
Beispiel #3
0
def fit_model_no_shrinkage(train_interaction_ds):
    fit_model_no_shrinkage = ItemKNN(k=20, m=5, sim_metric='adjusted_cosine', aggregation='weighted_mean',
                                     shrinkage=None, use_averages=False)
    fit_model_no_shrinkage.fit(train_interaction_ds)
    return fit_model_no_shrinkage
Beispiel #4
0
def fit_model_cosine_sim(train_interaction_ds):
    fit_model_cosine_sim = ItemKNN(k=20, m=5, sim_metric='cosine', aggregation='weighted_mean', shrinkage=100,
                                   use_averages=False)
    fit_model_cosine_sim.fit(train_interaction_ds)
    return fit_model_cosine_sim
Beispiel #5
0
def fit_model_use_averages(train_interaction_ds):
    fit_model_use_averages = ItemKNN(k=1, m=1, sim_metric='adjusted_cosine', aggregation='weighted_mean', shrinkage=100,
                                     use_averages=True)
    fit_model_use_averages.fit(train_interaction_ds)
    return fit_model_use_averages