예제 #1
0
 def test_popularity(self):
     """
     Test the popularity okapi algorithm
     """
     splitter = RandomSplitter()
     training, testing = splitter.split(self.df, 0.20)
     pop = Popularity(normalize=False)
     pop.fit(training)
     self.popularity.fit(training)
     for _, row in testing.iterrows():
         assert row["user"] in training["user"]
         python_score = pop.getScore(row["user"], row["item"])
         okapi_score = self.popularity.getScore(row["user"], row["item"])
         assert okapi_score == python_score, \
             "Okapi popularity(%f) don't give the same score as his python implementation(%f)" % (okapi_score,
                                                                                                  python_score)
예제 #2
0
class split(object):
    holdout = HoldoutSplitter()
    holdoutByRandomSlow = RandomHoldoutSplitter()
    holdoutByUser = HoldoutSplitterByUser()
    holdoutByRandom = RandomSplitter()