Recommender Systems Session F Robin Burke DePaul University Chicago, IL
More Code! Another predictor – –Jaccard coefficient
Idea Ignore people who disagree with you Ignore the things you dislike User profile becomes – –A set of things the user likes Need to measure similarity of sets
Jaccard coefficient Very simple – –size of intersection / size of union – –Sim(A,B) = |A B| / |A B| In our case –Q A = { all i, where r i,A > } –we will use threshold = 3.5 “similarity of likes” “similarity of likes”
Rest of algorithm The same The same Prediction = Prediction = –user average plus –sum of (weight * (peer rating – peer average)) / sum of weights Weights are now Jaccard weights Weights are now Jaccard weights
First step Figure out the right answer! Figure out the right answer! Use the jaccard spreadsheet with the tiny test data Use the jaccard spreadsheet with the tiny test data Calculate the MAE Calculate the MAE Put result in unit test Put result in unit test
Next step Implement jaccard coefficient in Java Implement jaccard coefficient in Java Can copy much of PearsonPredictor Can copy much of PearsonPredictor Better solution Better solution –abstract CachedPredictor class
Experiments Run both Pearson and Jaccard at different thresholds of similarity Run both Pearson and Jaccard at different thresholds of similarity –5 different thresholds –u.data Produce a table Produce a table ThresholdJaccard MAE Jaccard coverage Pearson MAE Pearson coverage
Submit –To: –Subject: GRAZ H2 –Body: Names –Attach JaccardPredictor.java file JaccardPredictor.java file Document (Word preferred) with results table Document (Word preferred) with results table