# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Example for Social Bayesian Personalized Ranking with Epinions dataset""" import cornac from cornac.data import Reader, GraphModule from cornac.datasets import epinions from cornac.eval_methods import RatioSplit ratio_split = RatioSplit(data=epinions.load_data(Reader(bin_threshold=4.0)), test_size=0.1, rating_threshold=0.5, exclude_unknowns=True, verbose=True, user_graph=GraphModule(data=epinions.load_trust())) sbpr = cornac.models.SBPR(k=10, max_iter=50, learning_rate=0.001, lambda_u=0.015, lambda_v=0.025, lambda_b=0.01, verbose=True) rec_10 = cornac.metrics.Recall(k=10) cornac.Experiment(eval_method=ratio_split, models=[sbpr], metrics=[rec_10]).run()
# See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Example for Social Bayesian Personalized Ranking (SBPR) with Epinions dataset""" import cornac from cornac.data import Reader, GraphModality from cornac.datasets import epinions from cornac.eval_methods import RatioSplit # SBPR integrates user social network into Bayesian Personalized Ranking. # The necessary data can be loaded as follows feedback = epinions.load_feedback( Reader(bin_threshold=4.0 )) # feedback is binarised (turned into implicit) using Reader. trust = epinions.load_trust() # Instantiate a GraphModality, it make it convenient to work with graph (network) auxiliary information # For more details, please refer to the tutorial on how to work with auxiliary data user_graph_modality = GraphModality(data=trust) # Define an evaluation method to split feedback into train and test sets ratio_split = RatioSplit(data=feedback, test_size=0.1, rating_threshold=0.5, exclude_unknowns=True, verbose=True, user_graph=user_graph_modality) # Instantiate SBPR sbpr = cornac.models.SBPR(k=10,
def test_load_trust(self): # only run data download tests 20% of the time to speed up frequent testing random.seed(time.time()) if random.random() > 0.8: self.assertEqual(len(epinions.load_trust()), 487183)
# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Example for Social Bayesian Personalized Ranking with Epinions dataset""" import cornac from cornac.data import Reader, GraphModality from cornac.datasets import epinions from cornac.eval_methods import RatioSplit ratio_split = RatioSplit(data=epinions.load_data(Reader(bin_threshold=4.0)), test_size=0.1, rating_threshold=0.5, exclude_unknowns=True, verbose=True, user_graph=GraphModality(data=epinions.load_trust())) sbpr = cornac.models.SBPR(k=10, max_iter=50, learning_rate=0.001, lambda_u=0.015, lambda_v=0.025, lambda_b=0.01, verbose=True) rec_10 = cornac.metrics.Recall(k=10) cornac.Experiment(eval_method=ratio_split, models=[sbpr], metrics=[rec_10]).run()