사용자 - 항목 매트릭스의 사용자가 데이터베이스의 전체 사용자 중 선택된 일부인 일종의 사용자 - 사용자 협업 필터링을 수행하고자합니다. 이러한 선택된 사용자는 새로 선택된 사용자 기본 설정으로 정기적으로 새로 고쳐집니다. 새로운 사용자를 매트릭스에 추가해서는 안됩니다. 새로운 사용자의 경우, 선호도에 따라 사용자 항목 매트릭스 (사용자 중 일부만 선택)에서 항목을 추천해야합니다. 새로운 익명 사용자를 매트릭스에 추가하고 싶지 않습니다.사용자 사용자 협업 필터링을위한 모델 생성
Mahout에서 탐험했지만 도움이 필요합니다. Mahout의 Recommender 클래스는 user_id를 인수로 취하는 권장 (...) 메소드를 제공합니다. 이것은 내가 원하지 않는 것입니다. 이 방법은 환경 설정을 받아 들여야하며 모델을 기반으로 항목을 권장해야합니다. Mahout에서 그것을하는 방법 ?? PlusAnonymousUserDataModel을 사용할 수 있습니까 ??
그렇지 않으면 코끼리 조련사, 다른 도구는이 작업을 수행 할 수있는 ...
나는 정상적인 사용과 권고 사항이있는 사용자에 대한 권장 사항을 제공하지 않습니다 PlusAnonymousUserDataModel에 사용되는 코드 ..
DataModel model = new GenericBooleanPrefDataModel(GenericBooleanPrefDataModel.toDataMap(new FileDataModel(f)));
TanimotoCoefficientSimilarity similarity = new TanimotoCoefficientSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(1000, similarity, model);
new_user_preferences = { ... } // new user items..
DataModel plusmodel = new PlusAnonymousUserDataModel(model);
PreferenceArray anonymousPrefs = new GenericUserPreferenceArray(new_user_preference.length);
anonymousPrefs.setUserID(0, PlusAnonymousUserDataModel.TEMP_USER_ID);
for(int i = 0;i < new_user_preference.length;i++)
{
anonymousPrefs.setItemID(i, new_user_preference[i]);
}
PlusAnonymousUserDataModel plusAnonymousModel = (PlusAnonymousUserDataModel) plusmodel;
Recommender recommender1 = new GenericBooleanPrefUserBasedRecommender(model, neighborhood, similarity);
plusAnonymousModel.setTempPrefs(anonymousPrefs);
List<RecommendedItem> recommendations1 = recommender1.recommend(plusAnonymousModel.TEMP_USER_ID, 10);
코드에 문제가 있습니까?
에
GenericUserPreferenceArray
을 변경 ?? –스레드로부터 안전하지만 거기에 추가로 하위 클래스가 있습니다. –
답장을 보내 주셔서 감사합니다. 하위 클래스 및 사용 방법을 자세히 설명해 주실 수 있습니까? PlusAnonymousUserDataModel 클래스가 새 사용자의 환경 설정으로 행렬을 수정합니까 ?? –