mahout 를 이용 하여 추천 엔진 demo 1 실현
5314 단어 Mahout
==========================================================
이런 고 급 스 러 운 것들 을 배 우 는 것 은 때때로 정말 어떻게 운행 하 는 지도 모 르 고 코드 만 있다.
이 실험 을 하려 면 eclipse 에서 자바 프로젝트 를 만 든 다음 자바 파일 을 쓰 고 src 에서 mahout 을 만 듭 니 다.data. txt 데이터 파일 (코드 에서 지정 한 경로).그리고 mahout 버 전. tar. gz 압축 해제 디 렉 터 리 에 있 는 jar 패 키 지 를 가 져 오 면 실 행 됩 니 다.
실행 할 때 run as - > 자바 application 을 선택 하면 로 컬 디 렉 터 리 에 결과 파일 을 생 성 합 니 다. run as - > run on hadop 을 선택 하면 hdfs 에서 파일 을 생 성 합 니 다.
이 예 는 mahout in action 의 2.2.1 장 에 상세 하 게 소개 되 어 있다.제 블 로그 mahout in action 중국어 버 전에 있 을 거 예요. 먼저 보고 이 걸 하 는 게 좋 을 것 같 아 요.
==========================================================
필요 한 메타 데이터: (이 메타 데 이 터 는 보통 로그 파일 에서 나 와 야 합 니 다. 수량 이 많 을 수 있 습 니 다. 가끔 은 클 러 스 터 처리 가 필요 할 수도 있 습 니 다. 시간 이 있 으 면 다시 토론 하 겠 습 니 다.) 이 데 이 터 를 모 인터넷 서점 의 추천 엔진 으로 생각하면 첫 번 째 열 데 이 터 는 사용자 ID 로, 두 번 째 열 은 책 ID 로, 세 번 째 열 은 취향 정도 로 이해 할 수 있다.추천 엔진 은 메타 데 이 터 를 학습 하여 추천 능력 을 달성 하 는 것 입 니 다. 구체 적 으로 프로 그래 밍 에서 바로 DataMode 입 니 다. DataMode 에 대한 분석 을 통 해 합 리 적 인 결 과 를 얻 었 습 니 다. mahout 자체 에 복잡 한 통계학, 인공 신경 망, 기계 학습 관련 알고리즘 을 밀봉 하 였 습 니 다! 가설 C: \ \ \ mahoutdata. txt 의 내용 은 다음 과 같 습 니 다. 이 데 이 터 는 이번 데모 의 메타 데이터 입 니 다. 1,101,5.0 1,102,3.0 1,103,2.5 2,101,2.0 2,102,2.0 2,103,5.0 2,104,2.0 3,101,2.5 3,104,4.4 3,105,4.5 3,107,5.0 4,101,5.0 4,102,3.0 4,103,4.5 4,105,4.0 5,101,4.0 5,102,4.0 5,103,2.0 5,104,4.0 5,105,4.5 5,106,4.0 다음은 코드.
import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;
import java.io.*;
import java.util.*;
class RecommenderIntro {
public static void main(String[] args) throws Exception {
DataModel model = new FileDataModel(new File("C:\\mahout_data.txt")); // ,
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);// / ,
UserNeighborhood neighborhood =new NearestNUserNeighborhood(2, similarity, model);
Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity); // 、、 recommender
List<RecommendedItem> recommendations =recommender.recommend(1, 1); // ID 1
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
}
프로그램 출력 결과 2011-1-27 11:41:21 org.slf4j.impl.JCLLoggerAdapter info 정보: 파일 에 대한 FileDataModel 만 들 기 C: \ mahoutdata.txt 2011-1-27 11:41:21 org.slf4j.impl.JCLLoggerAdapter info 정보: 파일 정보 읽 기... 2011-1-27 11:41:21 org.slf4j.impl.JCLLoggerAdapter info 정보: Read lines: 21 2011-1-27 11:41:21 org.slf4j.impl.JCLLoggerAdapter info 정보: 파일 정보 읽 기... 2011-1-27 11:41:21 org.slf4j.impl.JCLLoggerAdapter info 정보: Read lines: 21 2011-1-27 11:41:21 org.slf4j.impl.JCLLoggerAdapter info 정보: 처 리 된 5 명의 사용자 RecommendedItem[item:104, value:4.257081] 결 과 는 마지막 문장 을 읽 어야 합 니 다. 다른 것 은 로그 정보 입 니 다. 1 에 id 104 의 책 을 추 천 했 습 니 다. 추천 도 는 value: 4.257081 입 니 다. 여러분 은 이곳 이 추천 하 는 의 미 를 알 아야 합 니 다. 전체 과정 은 이렇게 이해 할 수 있다. 이곳 의 추천 은 분명히 다른 사람 에 게 그들 이 접촉 하지 않 은 것 을 소개 하 는 것 이다. 그러나 어떻게 추천 하 는 지, 그 와 같은 취 미 를 가 진 사람들 이 어떤 책 을 읽 었 는 지, 그 와 같은 취 미 를 가 진 사람들 이 읽 은 책 을 보 는 것 이 야 말로 추천 의 미 를 가진다. mahout 에서 추천 하 는 과정 은 아마 이렇게 설명 할 것 이다. 물론 이것 은 추천 하 는 방식 일 뿐이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
mahout 원본 분석의 Decision Forest 3부작의 3Test Forest먼저 TestForest를 호출하는 코드를 붙입니다. mahout 원본이 Job 작업 실행이 끝난 후에 마퍼의 출력을 삭제하고 파일을 저장한 것을 볼 수 있다(이것은 원본에서 볼 수 있다).그 다음은 정확도입니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.