2011-08-27 4 views
1

Mahout에 근무 중이며 이전에 올바른 권장 사항을 제공하는 CSV를 변경하려고 시도 할 때 문제가 발견되었습니다.Mahout Recommender가 제대로 작동하지 않음

예제 코드 :

model = new FileDataModel(new File("E:\\WriteTest.csv")); 
UserSimilarity similarity = new PearsonCorrelationSimilarity(model); 
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity,model); 
Recommender recomender = new GenericUserBasedRecommender(model,neighborhood, similarity); 

List<RecommendedItem> recommendations = recomender.recommend(1,1); 

for(RecommendedItem recommendation: recommendations){ 
    System.out.println(recommendation); 
} 

난 그냥 내 CSV의 값을 업데이트 한 그것은 나에게 제안을 제공 중지되었습니다. 나 결과를주고있다

1,13,9.9 
1,26,9.0 
1,40,4.0 
2,83,9.9 
2,167,9.0 
2,250,4.0 
3,91,9.9 
3,167,9.0 
3,274,4.0 
4,91,9.9 
4,167,2.0 

CSV : 각각 콘솔

1,101,5.0 
1,102,3.0 
1,103,3.0 

2,101,5.0 
2,102,2.5 
2,103,3.0 
2,104,2.1 

3,101,5.0 
3,102,2.5 
3,105,4.0 
3,107,5.0 

4,102,2.0 
4,104,4.0 
4,105,2.5 
4,106,3.0 
4,107,2.6 

5,101,5.0 
5,102,3.4 
5,104,2.5 
5,105,2.5 
5,106,1.0 

출력 : 1 데이터 집합 8월에서

결과 나에게 어떤 결과를 제공하지 않습니다

CSV 27, 2011 2:45:06 AM org.slf4j.impl.JCLLoggerAdapter info 정보 :에 대한 FileDataModel 만들기file WriteTest.csv 2011 년 8 월 27 일 2:45:06 AM org.slf4j.impl.JCLLoggerAdapter 정보 INFO : 파일 정보 읽기 ... 8 월 27, 2011 2:45:06 am org.slf4j.impl.JCLLoggerAdapter 정보 정보 : readlines도 : 11 2011년 8월 27일 오전 2시 45분 6초 org.slf4j.impl.JCLLoggerAdapter 정보 정보 : 가공 된 4 사용자

나는 항목 번호 167을 기대하고 있지만 추천을 찾을 din't했다 2 세트의

출력 :

Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info 
INFO: Creating FileDataModel for file WriteTest.csv 
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info 
INFO: Reading file info... 
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info 
INFO: Read lines: 21 
Aug 27, 2011 2:52:42 AM org.slf4j.impl.JCLLoggerAdapter info 
INFO: Processed 5 users 
RecommendedItem[item:105, value:3.25] 

답변

2

추천인이 올바르게 작동하고 있습니다. 문제는 데이터가 너무 희박하다는 것입니다. 2 명의 사용자를 연결하여 167을 추천 할 수있는 유사성을 찾을 수 없습니다. 좀 더 사실적인 데이터 세트를 사용해보십시오. 그러면 그 행동이 덜 놀랄 것 같아 보입니다.

+1

(위의 의견에 답변하십시오.) 왜 167이 좋은 추천이라고 생각하십니까? 다른 사용자는 그것을 매우 높게 평가하지만 사용자 1이 좋아하는 것과는 완전히 다른 것을 좋아할 수도 있습니다. 예를 들어, 항목 13/26/40은 클래식 음악 앨범이고, 167은 중금속입니다. 사용자 1과 사용자 2/3/4를 연결하는 것은 없습니다. 우리가 아는 한 그들은 완전히 무관 한 취향을 가지고 있습니다. 아니, 167은 좋은 대답이 아니기 때문에 그것을 뒷받침 할 어떤 증거도 없다. –

관련 문제