您的位置:首页 > 其它

mahout推荐5-偏好数据的表示

2014-08-04 10:23 274 查看
Preference对象:单个用户Id,物品ID和偏好值,实现GenericPreference

PreferenceArray数组,单个用户所有偏好值数组,实现GenericPreferenceArray

代码示例:

package mahout;

import org.apache.mahout.cf.taste.impl.model.GenericUserPreferenceArray;
import org.apache.mahout.cf.taste.model.Preference;
import org.apache.mahout.cf.taste.model.PreferenceArray;

public class TestData {

public static void main(String[] args) {
//某个用户的偏好集合,表示的是与某个用户关联的所有偏好,内部包含一个单一用户ID,一个物品ID数组,一个偏好值数组
//其中物品ID数组和偏好值数组是一一对应的。
// 数组大小2个
PreferenceArray user1Prefs = new GenericUserPreferenceArray(2);
//关联的用户Id
user1Prefs.setUserID(0, 1L);
//第一个偏好
user1Prefs.setItemID(0, 101L);
user1Prefs.setValue(0, 2.0f);
//第二个偏好
user1Prefs.setItemID(1, 102L);
user1Prefs.setValue(1, 3.0f);
//试着放第三个
/*user1Prefs.setItemID(2, 103L);
user1Prefs.setValue(2, 3.0f);*/

Preference pref = user1Prefs.get(1);
System.out.println(pref.getUserID());
System.out.println(pref.getItemID());
System.out.println(pref.getValue());
}
}


输出:

1
102
3.0

试着放第三个看看:异常了吧

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at org.apache.mahout.cf.taste.impl.model.GenericUserPreferenceArray.setItemID(GenericUserPreferenceArray.java:129)
at mahout.TestData.main(TestData.java:23)


另外还有FastMap,FastByIDMap,FastIdSet.这些都嵌入了mahout的内部类里面了,所以如果要看怎么使用,可以查看源码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: