mahout: 시스템 입문 학습 추천 (1)
5618 단어 Mahout
최근 에 회사 프로젝트 의 수요 로 인해 mahout 에 관 한 학습 에 들 어 갔 습 니 다. hadop 포럼 에서 입문 급 의 학습 자 료 를 찾 았 습 니 다. 각 포럼 에서 mahout 판 에 대한 소개 가 상당히 적 고 잡담 을 많이 하지 않 으 며 바로 본론 으로 들 어 갔습니다.
Mahout Hadoop 을 바탕 으로 각종 기계 학습 과 데이터 발굴 을 실현 하 는 알고리즘 라 이브 러 리 로 Lucene 의 몇 가지 코드 기여 자 에 의 해 설립 되 었 고 전체 프로젝트 는 Taste 라 는 프로젝트 에서 발 전 된 것 이다. 현재 Mahout 은 0.6.0 최신 버 전 을 발표 하여 분포 식 협동 여과, 집합, 분류 등 알고리즘 을 실현 하여 Hadoop 과 통합 되 었 다.강력 한 분포 식 데이터 발굴 도구 가 되다.
코드 를 실현 하고 실행 하려 면 apache 공식 에서 mahout 패 키 지 를 다운로드 하고 이 클립 스 자바 프로젝트 에 가 져 와 야 합 니 다. 다운로드 주 소 는: http://labs.mop.com/apache-mirror//mahout/0.6/ 이 고 apache mahout 홈 페이지 주 소 는: http://mahout.apache.org/ 입 니 다.
아래 코드 는 본인 이 mahout 를 배 우 는 과정 에서 처음으로 작성 한 프로그램 이 고 첨부 파일 이 있 으 며 데이터 배열 형식 에 도 설명 이 있 습 니 다.이것 은 간단 한 실례 이다. 실제 추천 시스템 의 훈련 데이터 세트 는 모두 대량의 것 이기 때문에 기계 학습 을 통 해 더욱 신뢰 할 만 한 결 과 를 얻 을 수 있다.
1,101,5.0 // ID, ID,
1,102,3.0 // 1 ,5 , 1--5
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.5
3,104,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0
package com.loogn.chart02;
import org.apache.mahout.cf.taste.impl.model.file.*;//FileDataModel
import org.apache.mahout.cf.taste.model.*;//DAtaModel
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.neighborhood.*;
import org.apache.mahout.cf.taste.similarity.*;
import org.apache.mahout.cf.taste.recommender.*;
import java.io.*;
import java.util.*;
public class RecommenderIntro {
public static void main(String[] args) throws Exception{
DataModel model = new FileDataModel(new
File("E:\\my own task\\mahout\\intro.csv")); //A
/**
* A
*/
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2,similarity,model);
Recommender recommender = new GenericUserBasedRecommender(
model,neighborhood,similarity); // B
List<RecommendedItem> recommendations = recommender.recommend(1, 2); //C
/**
* C 1,
*/
for(RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);// mapreduce /
}
}
}
마지막 실행 결 과 는 다음 과 같 습 니 다.
RecommendedItem[item:104, value:4.257081]
RecommendedItem[item:106, value:4.0]
이 운행 결 과 를 분석 한 결과 사용자 에 게 1 추천 item 107 을 주지 않 은 것 은 사용자 1 의 역사 구 매 기록 과 사용자 4, 사용자 5 와 더 높 은 싱크로 율 을 가 진 것 을 고려 한 것 으로 107 호 물품 은 사용자 3 만 선 호 했 고 과거 취향 으로 볼 때 사용자 1 과 3 에 큰 차이 가 있 음 을 고려 하여 4.0 과 4.5 수 치 를 가 진 item 104 를 선택 했다.추천 되 는 우선 순위 가 106 보다 높 은 것 도 알 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.