Quick Start
Experiment Explainer
After ROSE is installed, you can use the following command to run your experiment for recommenders and explainers:
from cornac.datasets import movielens
from cornac.eval_methods import RatioSplit
from cornac.experiment import Experiment_Explainers
from cornac.models import EMF, NEMF, ALS
from cornac.explainer import Exp_ALS, Exp_SU4EMF
from cornac.metrics_explainer import (
Metric_Exp_DIV as DIV,
Metric_Exp_PGF as PGF,
Metric_Exp_MEP as MEP,
Metric_Exp_EnDCG as EnDCG,
)
# Load MovieLens
data = movielens.load_feedback(variant="100K")
# Define an evaluation method to split feedback into train and test sets
ratio_split = RatioSplit(data=data, test_size=0.2, exclude_unknowns=False, verbose=True)
# initialize recommenders and explainers
emf = EMF(
k=10,
max_iter=500,
learning_rate=0.001,
lambda_reg=0.1,
explain_reg=0.01,
verbose=True,
seed=6,
num_threads=6,
early_stop=True,
)
nemf = NEMF(
k=10,
max_iter=500,
learning_rate=0.001,
lambda_reg=0.1,
explain_reg=0.01,
novel_reg=1,
verbose=True,
seed=6,
num_threads=6,
early_stop=True,
)
als = ALS(k=10, max_iter=500, lambda_reg=0.001, alpha=1, verbose=True, seed=6)
als_exp = Exp_ALS(rec_model=als, dataset=ratio_split.train_set)
emf_exp = Exp_SU4EMF(rec_model=emf, dataset=ratio_split.train_set)
nemf_exp = Exp_SU4EMF(rec_model=nemf, dataset=ratio_split.train_set)
# initialize metrics
fdiv = DIV()
pgf = PGF()
mep = MEP()
endcg = EnDCG()
# initialize experiment
models = [(emf, emf_exp), (als, als_exp), (nemf, nemf_exp)]
metrics = [fdiv, pgf, mep, endcg]
experiment = Experiment_Explainers(
eval_method=ratio_split,
models=models,
metrics=metrics,
distribution=False,
rec_k=10,
feature_k=10,
eval_train=True,
)
experiment.run()
More examples can be found in demo/experiment_explainers_demo.ipynb
Visualization
Examples can be found in demo/visualization_demo.ipynb
Lexicon Generation
Examples can be found in demo/genetate_lexicon_demo.ipynb