나는 아파치 Mahout을 사용하여 유사한 사용자와 아이템을 추천하는 방법을 찾고있다. 각 사용자가 특정 책을 읽은 사용자 목록이 있습니다. 그가 읽은 내용을 토대로 다른 사용자에게 사용자 그룹을 추천 할 수있는 방법이 있는지 물어보고 싶습니다.
이해할 수 있듯이 권장 사용자는 동일한 책을 읽었을 것입니다.
도움과 안내에 감사드립니다.Mahout- 사용자의 추천
답변
Mahout v1에서 spark-rowsimilarity 작업을 사용하십시오.
user-ID<tab>book-ID1<space>book-ID2<space>etc...
즉, 각 행은 사용자가 읽은 책의 기록입니다. 첫 번째 열은 사용자 ID이고 두 번째 열은 공백으로 구분 된 책 ID 목록입니다. "코끼리 조련사 스파크 rowsimilarity"를 실행하고 양식의 파일을 다시 얻을 것이다 :
user-ID<tab>user-ID5:strength<space>user-ID6:strength<space>etc...
이 각 사용자에 대한 유사한 사용자의 목록입니다. 목록이 정렬되고 강도는 사용자의 유사도에 대한 LLR (로그 우도 비율) 점수입니다. 여기
문서 : 자바에서 http://mahout.apache.org/users/recommender/intro-cooccurrence-spark.html
감사합니다 !! 그것은 내가하고 싶은 것과 똑같은 것 같습니다. – paskun
죄송합니다.하지만 지금까지 답변을 더 자세히 확인할 시간이 없었습니다. 당신이 내 질문에 완벽하게 대답 한 것 같았지만 실제로, 나는 문서를 보았고 스파크 사용법을 이해하지 못했습니다. 자바에서 어떻게 사용하는지에 대한 힌트를 주시겠습니까? 고마워요. – paskun
위에서 언급 한 작업은 프로그래밍 할 필요가 없으며 명령 행에서'''mahout spark-rowsimilarity'''로 실행됩니다. 그러면 명령 줄 옵션 목록이 표시됩니다. Mahout을 빌드하면'''mahout spark-rowsimilarity -ma local [4]'''또는 Spark에주고 자하는 많은 코어를 지정하여 Spark 클러스터를 생성하지 않고 로컬로 실행할 수 있습니다. Hadoop (Spark이 분산 파일 시스템 용으로 사용하는) 위에 Spark 클러스터를 만드는 것이 가장 좋은 질문입니다. 일부 자습서는 여기에 있습니다 : https://spark.apache.org/documentation.html – pferrel
당신이 이런 식으로 그것을 할 수 :
org.apache.mahout.cf.taste.model.DataModel dataModel;
...
UserSimilarity similarity = new PearsonCorrelationSimilarity(dataModel);
UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.75, similarity, dataModel);
UserBasedRecommender userBasedRecommender = new GenericUserBasedRecommender(dataModel, neighborhood, similarity);
long[] mostSimilarUserIDs = userBasedRecommender.mostSimilarUserIDs(...);
어떤 도움이나 아이디어하시기 바랍니다? – paskun