def model(train_interactions_ds): item_knn = UserKNN(k=3, m=0, sim_metric='cosine', aggregation='weighted_mean', shrinkage=100, use_averages=False) item_knn.fit(train_interactions_ds, verbose=False) return item_knn
ds = InteractionDataset('./cheRM_total.csv', columns=['user', 'item', 'interaction'], verbose=False) ds_train, ds_test = matrix_split(ds, min_user_interactions=20, user_test_ratio=0.2, item_test_ratio=0.2, seed=25, verbose=False) # cosine sim knn = UserKNN(k=10, m=0, sim_metric='cosine_cf', shrinkage=None, seed=25, use_averages=False, verbose=True) knn.fit(ds_train) evaluation = ranking_evaluation(knn, ds_test, interaction_threshold=2, k=list(range(1, 11)), generate_negative_pairs=False, n_pos_interactions=None, n_neg_interactions=None, seed=25, verbose=True, metrics=[Precision(),
def fit_model_mean_aggr(train_interaction_ds): fit_model_mean_aggr = UserKNN(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
def fit_model_cosine_sim(train_interaction_ds): fit_model_cosine_sim = UserKNN(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
def fit_model_no_shrinkage(train_interaction_ds): fit_model_no_shrinkage = UserKNN(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
def fit_model_use_averages(train_interaction_ds): fit_model_use_averages = UserKNN(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