Beispiel #1
0
 def setUpClass(cls):
     cls.interactions, cls.user_features, cls.item_features = generate_dummy_data_with_indicator(
         num_users=10, num_items=12, interaction_density=.5)
     model = TensorRec(n_components=10)
     model.fit(cls.interactions, cls.user_features, cls.item_features, epochs=10)
     cls.model = model
     cls.ranks = model.predict_rank(user_features=cls.user_features, item_features=cls.item_features)
Beispiel #2
0
 def setUpClass(cls):
     cls.interactions, cls.user_features, cls.item_features = generate_dummy_data_with_indicator(
         num_users=10, num_items=12, interaction_density=.5)
     model = TensorRec(n_components=10)
     model.fit(cls.interactions,
               cls.user_features,
               cls.item_features,
               epochs=10)
     cls.model = model
Beispiel #3
0
    def metric_test(self):
        """ uses tensorrec eval as benchmark for rating performance of various reco algorithms """
        k = 10
        latent_factor = 10
        n_users = 10
        n_items = 12

        interactions, user_features, item_features = util.generate_dummy_data_with_indicator(
            num_users=n_users, num_items=n_items, interaction_density=.5)
        print("interactiosn shape={}".format(np.shape(interactions)))
        print("user features shape={}".format(np.shape(
            user_features.toarray())))
        print("item features shape={}".format(np.shape(
            item_features.toarray())))

        model = TensorRec(n_components=latent_factor)

        model.fit(interactions, user_features, item_features, epochs=19)

        ranks = model.predict_rank(user_features=user_features,
                                   item_features=item_features)

        print("Ranks shape={}".format(np.shape(ranks)))

        self.assertTrue(np.shape(interactions) == np.shape(ranks))

        tr_recall_result = eval.recall_at_k(predicted_ranks=ranks,
                                            test_interactions=interactions,
                                            k=k,
                                            preserve_rows=False)
        # print (tr_recall_result.mean())

        tr_precision_result = eval.precision_at_k(
            predicted_ranks=ranks,
            test_interactions=interactions,
            k=k,
            preserve_rows=False)
        # print(tr_precision_result.mean())

        # we need csr for interactions data
        interactions_ = interactions.tocsr()
        recall_result = metrics.recall_at_k(ranks,
                                            interactions_,
                                            k=k,
                                            preserve_rows=False)
        # print(recall_result.mean())

        precision_result = metrics.precision_at_k(ranks,
                                                  interactions_,
                                                  k=k,
                                                  preserve_rows=False)
        # print (precision_result.mean())

        self.assertTrue(tr_recall_result.mean() == recall_result.mean())
        self.assertTrue(tr_precision_result.mean() == precision_result.mean())
Beispiel #4
0
    def setUpClass(cls):
        cls.interactions, cls.user_features, cls.item_features = generate_dummy_data_with_indicator(
            num_users=10, num_items=20, interaction_density=.5)

        cls.standard_model = TensorRec(n_components=10,
                                       normalize_items=True,
                                       normalize_users=True)
        cls.standard_model.fit(cls.interactions,
                               cls.user_features,
                               cls.item_features,
                               epochs=10)

        cls.unbiased_model = TensorRec(n_components=10,
                                       normalize_items=True,
                                       normalize_users=True,
                                       biased=False)
        cls.unbiased_model.fit(cls.interactions,
                               cls.user_features,
                               cls.item_features,
                               epochs=10)
Beispiel #5
0
	def setUpClass(cls):
		cls.interactions, cls.user_features, cls.item_features = generate_dummy_data_with_indicator(
			num_users=10, num_items=20, interaction_density=.5
		)
 def setUpClass(cls):
     cls.interactions, cls.user_features, cls.item_features = generate_dummy_data_with_indicator(
         num_users=10, num_items=12, interaction_density=.5)