Example #1
0
def recommend_k_fastai(model, test, train):
    with Timer() as t:
        total_users, total_items = model.data.train_ds.x.classes.values()
        total_items = total_items[1:]
        total_users = total_users[1:]
        test_users = test[DEFAULT_USER_COL].unique()
        test_users = np.intersect1d(test_users, total_users)
        users_items = cartesian_product(test_users, total_items)
        users_items = pd.DataFrame(
            users_items, columns=[DEFAULT_USER_COL, DEFAULT_ITEM_COL])
        training_removed = pd.merge(
            users_items,
            train.astype(str),
            on=[DEFAULT_USER_COL, DEFAULT_ITEM_COL],
            how="left",
        )
        training_removed = training_removed[
            training_removed[DEFAULT_RATING_COL].isna()][[
                DEFAULT_USER_COL, DEFAULT_ITEM_COL
            ]]
        topk_scores = score(
            model,
            test_df=training_removed,
            user_col=DEFAULT_USER_COL,
            item_col=DEFAULT_ITEM_COL,
            prediction_col=DEFAULT_PREDICTION_COL,
            top_k=DEFAULT_K,
        )
    return topk_scores, t
def predict_fastai(model, test):
    with Timer() as t:
        preds = score(model,
                      test_df=test,
                      user_col=DEFAULT_USER_COL,
                      item_col=DEFAULT_ITEM_COL,
                      prediction_col=DEFAULT_PREDICTION_COL)
    return preds, t
def predict_fastai(model, test):
    with Timer() as t:
        preds = score(model, 
                      test_df=test, 
                      user_col=DEFAULT_USER_COL, 
                      item_col=DEFAULT_ITEM_COL, 
                      prediction_col=DEFAULT_PREDICTION_COL)
    return preds, t
def recommend_k_fastai(model, test, train):
    with Timer() as t: 
        total_users, total_items = model.data.train_ds.x.classes.values()
        total_items = total_items[1:]
        total_users = total_users[1:]
        test_users = test[DEFAULT_USER_COL].unique()
        test_users = np.intersect1d(test_users, total_users)
        users_items = cartesian_product(test_users, total_items)
        users_items = pd.DataFrame(users_items, columns=[DEFAULT_USER_COL, DEFAULT_ITEM_COL])
        training_removed = pd.merge(users_items, train.astype(str), on=[DEFAULT_USER_COL, DEFAULT_ITEM_COL], how='left')
        training_removed = training_removed[training_removed[DEFAULT_RATING_COL].isna()][[DEFAULT_USER_COL, DEFAULT_ITEM_COL]]
        topk_scores = score(model, 
                             test_df=training_removed,
                             user_col=DEFAULT_USER_COL, 
                             item_col=DEFAULT_ITEM_COL, 
                             prediction_col=DEFAULT_PREDICTION_COL, 
                             top_k=DEFAULT_K)
    return topk_scores, t
Example #5
0
        test_users = data_test[USER].unique()
        test_users = np.intersect1d(test_users, total_users)
        #st.write("Test Users:",test_users)

        users_items = cartesian_product(np.array(test_users),np.array(total_items))
        users_items = pd.DataFrame(users_items, columns=[USER,ITEM])
       # st.write("Users:",users_items)
        training_removed = pd.merge(users_items, data_train.astype(str), on=[USER, ITEM], how='left')
        training_removed = training_removed[training_removed['Rating'].isna()][[USER,ITEM]]
       # st.write("Training:",training_removed)
        start_time = time.time()
       # st.write("Start Time:",start_time)

        top_k_scores = score(learner, 
                             test_df=training_removed,
                             user_col=USER, 
                             item_col=ITEM, 
                             prediction_col=PREDICTION)
        #st.write("TOP K SCORES:",top_k_scores)
        test_time = time.time() - start_time
       # st.write("Test_Time:",test_time)
        print("Took {} seconds for {} predictions.".format(test_time, len(training_removed)))

        top_k_scores[USER] = top_k_scores['UserId']
        top_k_scores[ITEM] = top_k_scores['SnackId']
        top_k_scores[PREDICTION] = top_k_scores['Prediction']

        top_k_scores.head()
       # st.write("Top k Scores:",top_k_scores)

        data_test.head()