GenericDataModel
class provides following constructors to instantiate objects.
public GenericDataModel(FastByIDMap<PreferenceArray>
userData)
Creates a
new GenericDataModel from the given users (and their preferences)
public
GenericDataModel(FastByIDMap<PreferenceArray> userData,
FastByIDMap<FastByIDMap<Long>> timestamps)
Creates a new GenericDataModel from the given users
(and their preferences). User IDs are mapped to maps of item IDs to Long
timestamps.import org.apache.mahout.cf.taste.impl.common.FastByIDMap; import org.apache.mahout.cf.taste.impl.common.FastIDSet; import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator; import org.apache.mahout.cf.taste.impl.model.GenericDataModel; import org.apache.mahout.cf.taste.impl.model.GenericPreference; import org.apache.mahout.cf.taste.impl.model.GenericUserPreferenceArray; import org.apache.mahout.cf.taste.model.DataModel; import org.apache.mahout.cf.taste.model.Preference; import org.apache.mahout.cf.taste.model.PreferenceArray; public class GenericDataModelEx { public static DataModel getDataModel() { FastByIDMap<PreferenceArray> preferences = new FastByIDMap<PreferenceArray>(); PreferenceArray array1 = new GenericUserPreferenceArray(4); Preference pref = new GenericPreference(1, 4, 3); array1.set(0, pref); pref = new GenericPreference(1, 7, 2); array1.set(1, pref); pref = new GenericPreference(1, 8, 2); array1.set(2, pref); pref = new GenericPreference(1, 10, 1); array1.set(3, pref); PreferenceArray array2 = new GenericUserPreferenceArray(5); pref = new GenericPreference(2, 3, 2); array2.set(0, pref); pref = new GenericPreference(2, 4, 3); array2.set(1, pref); pref = new GenericPreference(2, 6, 5); array2.set(2, pref); pref = new GenericPreference(2, 7, 1); array2.set(3, pref); pref = new GenericPreference(2, 9, 4); array2.set(4, pref); preferences.put(1, array1); preferences.put(2, array2); DataModel model = new GenericDataModel(preferences); return model; } public static void main(String args[]) throws Exception { DataModel model = getDataModel(); System.out.println("Maximum preference : " + model.getMaxPreference()); System.out.println("Minimum preference : " + model.getMinPreference()); System.out.println("Number of items : " + model.getNumItems()); System.out.println("Number Of Users : " + model.getNumUsers()); System.out.println("Item ids for user 1"); FastIDSet set = model.getItemIDsFromUser(1); LongPrimitiveIterator iter = set.iterator(); while (iter.hasNext()) { System.out.print(iter.nextLong() + " "); } System.out.println("\nItem ids for user 2"); set = model.getItemIDsFromUser(2); iter = set.iterator(); while (iter.hasNext()) { System.out.print(iter.nextLong() + " "); } } }
Output
[main] INFO org.apache.mahout.cf.taste.impl.model.GenericDataModel - Processed 2 users Maximum preference : 5.0 Minimum preference : 1.0 Number of items : 7 Number Of Users : 2 Item ids for user 1 4 7 8 10 Item ids for user 2 3 4 6 7 9
No comments:
Post a Comment