Mahout
※ 처음에는 대충 느낌 상 Maven Dependency만 추가하면 사용 가능하다고 생각하고 삽질을 함.
※ 하지만 자세히 보니 설치 필요
|
※ 그래서 최신 버젼인 0.13.0을 대충 아무데나 받아서 압축품
|
※ 그리고 환경변수 추가
#vi /etc/profile
|
※ Maven은 설치 되어 있어야 하며 이클립스 플러그인은 Default로 있으니 이클립스 최신버젼 다운
※ Maven 프로젝트 생성 후
※ Pom.xml에 추가
<dependency> |
※ 사용할 샘플 데이터
유저아이디, 상품번호, 선호도 1,10,1.0 |
※ 테스트
import java.io.*; //파일을 읽고 DataModel model = new FileDataModel(new File("/home/ksu/Downloads/workspace/mahout/data/dataset.csv")); //유저 기준 유사성 //0.1보다 큰 유사성을 가진 모든 것을 사용. 그리고 ThresholdUserNeighborhood를 통해 구현 UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model); //유저 기준 추천 모델 UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity); //2번 유저에게 1개 아이템 추천 => (2, 1) List<RecommendedItem> recommendations = recommender.recommend(2, 1);
|
※ 결과 (Console Result)
● User based recommendations
입력 데이터를 보면 2번 유저는 12번 상품과 상관이 없다. 하지만 비슷한 물건을 산 유저들의 구입 상품들 중에서 하나 추천받음 RecommendedItem[item:12, value:4.8328104]
|
끝~~
'데이터 분석' 카테고리의 다른 글
MSE, RMSE (0) | 2017.05.19 |
---|---|
Spark - Naive Bayes (단어를 이용한 문서 구별) (0) | 2017.05.12 |
Spark - Collaborative Filtering (영화 추천) (0) | 2017.05.10 |
Spark - Gaussian Mixture Model Example (0) | 2017.05.01 |
Spark - K-means (0) | 2017.05.01 |