Exemplo n.º 1
0
def get_results(dataset_name, coldstart, cs_type='none', n_entries=0):

    # Get dataset
    dataset = get_dataset(dataset_name)

    models = []

    # Hybrid Model
    from hybrid_model.hybrid import HybridModel
    from hybrid_model.config import hybrid_config

    model_type = HybridModel
    config = hybrid_config
    models.append(EvalModel(model_type.__name__, model_type, config))

    # Bias Baseline
    from hybrid_model.models import BiasEstimator
    model_type = BiasEstimator
    config = {}
    models.append(EvalModel(model_type.__name__, model_type, config))

    # SVD
    from hybrid_model.models import SVD
    model_type = SVD
    config = {}
    models.append(EvalModel(model_type.__name__, model_type, config))

    results = evaluate_models_xval(dataset,
                                   models,
                                   coldstart=coldstart,
                                   cs_type=cs_type,
                                   n_entries=n_entries)

    return results
Exemplo n.º 2
0
models = []

# Hybrid Model
from hybrid_model.hybrid import HybridModel
from hybrid_model.config import hybrid_config

model_type = HybridModel
config = hybrid_config
models.append(EvalModel(model_type.__name__, model_type, config))

evaluater = evaluation.Evaluation(evaluation.metrics_rmse_prec,
                                  evaluation.get_parting_all(10))

results = evaluate_models_xval(dataset,
                               models,
                               coldstart=False,
                               evaluater=evaluater,
                               n_fold=10,
                               repeat=3)
print_results(results)
"""
------- HybridModel
=== Part full
rmse: 0.8915 ± 0.0062  prec@5: 0.8741 ± 0.0049

=== Part user_1
rmse: 0.8698 ± 0.0094  prec@5: 0.6756 ± 0.0214
=== Part user_2
rmse: 0.8683 ± 0.0107  prec@5: 0.7185 ± 0.0260
=== Part user_3
rmse: 0.8716 ± 0.0170  prec@5: 0.7824 ± 0.0129
=== Part user_4
Exemplo n.º 3
0
# config = {}
# models.append(EvalModel(model_type.__name__, model_type, config))

# # SVDpp
# from hybrid_model.models import SVDpp
# model_type = SVDpp
# config = {}
# models.append(EvalModel(model_type.__name__, model_type, config))
#
# # SigmoidSVDpp
# from hybrid_model.models import SigmoidSVDpp
# model_type = SigmoidSVDpp
# config = {}
# models.append(EvalModel(model_type.__name__, model_type, config))

# SigmoidUserAsymFactoring
from hybrid_model.models import SigmoidUserAsymFactoring
model_type = SigmoidUserAsymFactoring
config = {}
models.append(EvalModel(model_type.__name__, model_type, config))

# SigmoidItemAsymFactoring
from hybrid_model.models import SigmoidItemAsymFactoring
model_type = SigmoidItemAsymFactoring
config = {}
models.append(EvalModel(model_type.__name__, model_type, config))

results = evaluate_models_xval(dataset, models, coldstart=False, cs_type='user', n_entries=0)

print_results(results)
Exemplo n.º 4
0
model_type = HybridModel
config = hybrid_config
models.append(EvalModel(model_type.__name__, model_type, config))

params_entries = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60]
results = {}

rmses_before_cf = []
rmses_before_md = []
rmses_after_cf = []
rmses_after_md = []

for entries_plus in params_entries:
    result = evaluate_models_xval(dataset,
                                  models,
                                  coldstart=True,
                                  cs_type='item',
                                  n_entries=entries_plus,
                                  repeat=1)
    results[entries_plus] = result

    rmses_before_cf.append(result[0][1][0].mean_rmse_cf())
    rmses_before_md.append(result[0][1][0].mean_rmse_md())

    rmses_after_cf.append(result[0][1][1].mean_rmse_cf())
    rmses_after_md.append(result[0][1][1].mean_rmse_md())

print('rmses_before_cf =', rmses_before_cf)
print('rmses_before_md =', rmses_before_md)
print('rmses_after_cf =', rmses_after_cf)
print('rmses_after_md =', rmses_after_md)
"""
Exemplo n.º 5
0
from hybrid_model.dataset import get_dataset

dataset = get_dataset('ml100k')

models = []

# Hybrid Model
from hybrid_model.hybrid import HybridModel
from hybrid_model.config import hybrid_config

model_type = HybridModel
config = hybrid_config
models.append(EvalModel(model_type.__name__, model_type, config))

start = time.time()
results = evaluate_models_xval(dataset, models)
end = time.time()

elapsed = end - start

print('Elapsed time: {}s'.format(elapsed))
print_results(results)
"""
Elapsed time: 317.58788084983826s
------- HybridModel
=== Part full
rmse: 0.8959 ± 0.0025  prec@5: 0.7820 ± 0.0032

------- HybridModel_SVDpp
=== Part full
rmse: 0.9002 ± 0.0028  prec@5: 0.7774 ± 0.0021
Exemplo n.º 6
0
# Get dataset
dataset = get_dataset('ml100k')
# dataset = get_dataset('ml1m')

models = []

# Hybrid Model
from hybrid_model.hybrid import HybridModel
from hybrid_model.config import hybrid_config

model_type = HybridModel
config = hybrid_config
models.append(EvalModel(model_type.__name__, model_type, config))

results = evaluate_models_xval(dataset, models, coldstart=False, n_fold=10)
print('Normal 10-fold')
print_results(results)
"""
Normal 10-fold
------- HybridModel
=== Part full
rmse: 0.8908 ± 0.0044  prec@5: 0.8756 ± 0.0035

------- HybridModel_SVDpp
=== Part full
rmse: 0.8953 ± 0.0048  prec@5: 0.8747 ± 0.0031

------- HybridModel_AttributeBiasExperimental
=== Part full
rmse: 0.9235 ± 0.0041  prec@5: 0.8633 ± 0.0043
Exemplo n.º 7
0
model_type = HybridModel
config = hybrid_config
models.append(EvalModel(model_type.__name__, model_type, config))

params = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60]
results = {}

rmses_before_cf = []
rmses_before_md = []
rmses_after_cf = []
rmses_after_md = []

for entries_plus in params:
    result = evaluate_models_xval(dataset,
                                  models,
                                  coldstart=True,
                                  n_entries=entries_plus,
                                  repeat=3)
    results[entries_plus] = result

    rmses_before_cf.append(result[0][1][0].mean_rmse_cf())
    rmses_before_md.append(result[0][1][0].mean_rmse_md())

    rmses_after_cf.append(result[0][1][1].mean_rmse_cf())
    rmses_after_md.append(result[0][1][1].mean_rmse_md())

print('rmses_before_cf =', rmses_before_cf)
print('rmses_before_md =', rmses_before_md)
print('rmses_after_cf =', rmses_after_cf)
print('rmses_after_md =', rmses_after_md)
"""