def test_python_rmse(rating_true, rating_pred): assert (rmse( rating_true=rating_true, rating_pred=rating_true, col_prediction=DEFAULT_RATING_COL, ) == 0) assert rmse(rating_true, rating_pred) == pytest.approx(7.254309, TOL)
def rating_metrics_python(test, predictions): return { "RMSE": rmse(test, predictions, **COL_DICT), "MAE": mae(test, predictions, **COL_DICT), "R2": rsquared(test, predictions, **COL_DICT), "Explained Variance": exp_var(test, predictions, **COL_DICT), }
def test_predict(rating_true): train_set = cornac.data.Dataset.from_uir( rating_true.itertuples(index=False), seed=42) mf = cornac.models.MF(k=100, max_iter=10000, seed=42).fit(train_set) preds = predict(mf, rating_true) assert set(preds.columns) == {"userID", "itemID", "prediction"} assert preds["userID"].dtypes == rating_true["userID"].dtypes assert preds["itemID"].dtypes == rating_true["itemID"].dtypes assert 0.02 > mae(rating_true, preds) # ~0.018 assert 0.03 > rmse(rating_true, preds) # ~0.021
def test_python_errors(rating_true, rating_pred): with pytest.raises(ValueError): rmse(rating_true, rating_true, col_user="******") with pytest.raises(ValueError): mae( rating_pred, rating_pred, col_rating=DEFAULT_PREDICTION_COL, col_user="******", ) with pytest.raises(ValueError): rsquared(rating_true, rating_pred, col_item="not_item") with pytest.raises(ValueError): exp_var( rating_pred, rating_pred, col_rating=DEFAULT_PREDICTION_COL, col_item="not_item", ) with pytest.raises(ValueError): precision_at_k(rating_true, rating_pred, col_rating="not_rating") with pytest.raises(ValueError): recall_at_k(rating_true, rating_pred, col_prediction="not_prediction") with pytest.raises(ValueError): ndcg_at_k(rating_true, rating_true, col_user="******") with pytest.raises(ValueError): map_at_k( rating_pred, rating_pred, col_rating=DEFAULT_PREDICTION_COL, col_user="******", )