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)
# specific environments. # # Thank you. # ######################################### # Tell me what models we want to evaluate models = [ RandomModel(), PopularityOkapi(hadoop_source="/data/b.ajf/hadoop1_env.sh", host="igraph-01", okapi_jar_dir="okapi/jar/", #host='54.72.18.118', user='******', #okapi_jar_dir='/Users/linas/devel/okapi/target/', #okapi_jar_base_name='okapi-0.3.2-SNAPSHOT-jar-with-dependencies.jar', #public_key_path='/Users/linas/.ssh/hack-okapi.pem' ), Popularity(normalize=False), BPROkapi(hadoop_source="/data/b.ajf/hadoop1_env.sh", host="igraph-01", okapi_jar_dir="okapi/jar/", #host='54.72.18.118', user='******', #okapi_jar_dir='/Users/linas/devel/okapi/target/', # #okapi_jar_base_name='okapi-0.3.2-SNAPSHOT-jar-with-dependencies.jar', #public_key_path='/Users/linas/.ssh/hack-okapi.pem' ) ] # Setup the environment evaluator = Evaluator() for m in models: m.fit(df)