달력

3

« 2019/3 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  
  •  

1. 프로젝트 구조
Mahout 소스코드는 SVN으로 관리하고 있다. svn checkout http://svn.apache.org/repos/asf/mahout/trunk mahout/trunk  으로 접속하여 소스코드를 받아 볼수 있다. 프로젝트 구성은 Maven을 이용하고 있고, 서브모듈 프로젝트로 buildtools, eclipse, math, core, taste-web, examples, utils가 있다. 이중 가장 핵심적인것은, core 프로젝트로 각종 알고리즘 구현체가 존재한다. 주요 의존성은, hadoop-core, hbase, lucene-core,lucene-analyzers,watchmaker-framework 등이 있고, 동 프로젝트에 직접적인 의존성 프로젝트는 mahout-math 프로젝트이다.




2. Core 프로젝트

Core 프로젝트는 현재, 다음과 같은 알고리즘을 구현해 놨으며, 점점 추가되고 있다.

Clustering

Classification

Genetic Programming

Decision Forest

Recommendation mining

This package comes with four examples based on netflix data, bookcrossing, grouplens and jester data.


각각의 알고리즘은, mahout-examples 프로젝트에서 테스트 할수 있다. 비주얼한 Recommendation 테스트는 mahout-taste-webapp 서브 프로젝트에서 테스트할수 있다. (참고 : Apache Mahout Taste-Web 설치하기) 앞으로 학습할 기준은 바로 이 알고리즘들을 이해하고, 구현이 어떻게 되었는지 학습하고, 테스트를 통해 성능을 확인할 것이다. 이후 개선점과 야생에서 사용할때 주의점들을 관찰할 것이다.


3. 앞으로의 학습방법

위에 언급된 알고리즘 중 가장 학습곡선이 낮고, 테스트가 용이하며, 흥미를 끌수 있는 녀석을 골라야 한다. 그것으로 부터 학습을 시작하는 것이 좋은 시작일듯 하다. 나는 GA에 관심이 많다. 궁극적으로 그것을 알기 위한 열망이 강한다. 하지만, 바로 접근하지 않고 가장 쉬운 접근인 Recommendation을 시작접으로 할 것이다. 이유는 다행스럽게도 mahout-taste-web 서브 프로젝트가 그것을 쉽게 도와줄 것이라는 희망에서이다. 내가 처음볼 프로젝트는 이프로젝트에서부터 시작이다. taste-web 프로젝트는 core 기능을 실무에서 충분히 활용할수 있을 정도로 확장성을 고려해서 진행중인 프로젝트이다. Mahout을 계속하려면, 이에 대해 좀더 알아볼 필요가 있다.

아래는 mahout-taste-web 프로젝트 구조 화면이다.
(대부분의 구성파일은, Core 프로젝트에 있고, taste-web은 단순히 servlet호출에 관한 3가지 클래스 뿐이다.)
TAG
Posted by summerwars