달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 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
  •  
  •  
  •  
  •  
  •  
2010.08.13 17:53

Apache Mahout 설치하기 Mahout2010.08.13 17:53

(원문 https://cwiki.apache.org/MAHOUT/quickstart.html를 참조하여 설정하는 과정을 기록했다)

인터넷을 잘 뒤져 보면, 기계학습관련된 알고리즘 구현체가 꽤 많이 있다. 이런 알고리즘은 수학적으로는 이해하기 힘들지 모르지만, 프로그래밍되어 있는건 상대적(?)으로 이해가 쉬운편이다. 아마 수학이라는 또다른 언어를 배우는 과정이 쉽지 않아서 그럴수 있겠다. 어쨌든 오픈소스를 비롯해서 많이 존재 하는데, 그중 하나가 바로 Mahout 프로젝트이다. 굳이 대량의 데이터를 테스트 하지 않더라도, 그 가능성이 가장 좋아 보여서 이걸로 테스트 하기로 했다.


1. 환경 설정하기

1.1 기본 빌드 환경 : JDK1.6 + Maven 2.0.9 이상

1.2 Subversion에서 소스 체크아웃 받기
     - svn co http://svn.apache.org/repos/asf/mahout/trunk
     - 또는 릴리즈 버전 받기(http://www.apache.org/dyn/closer.cgi/mahout/) 

1.3 컴파일 : mvn install
여기서 주의할께 있다. 반약 윈도우를 사용해서 설치한다면, 도스창에서 메이븐 명령을 실행할텐데, 이럴경우 대부분 에러를 발생시킨다. 이놈도 결국 Cygwin를 통해서 설치해야 한다. (이부분이 까다롭다고 나와 있는데, 난 언제 설치했는지 모를 Cygwin이 있어서 그냥 잘 설치할수 있었다. 메뉴얼엔 이것저것를 참조해서 Cygwin를 설치하라고 나왔는데, 차라리 구글링해서, 한글문서를 참조하는게 좋을수도 있겠다.)  


또한, 윈도우 계정에 특수문자(공백같은)가 있어도 오류를 발생시킬수 있다고 한다.(나는 다행히 없었다.) 여기까지 되었다면, Mahout Core와 몇가지 예제를 빌드할 준비가 잘된 것이다. 이제 Core와 예제들을 빌드해 보자.

1.4 Install Core
core 디렉토리로 이동 후, mvn compile (compile 대신 mvn install 해도 된단다.)

1.5 Compile Examples
examples 디렉토리 이동 후, mvn compile (반드시 '14번 Install Core'을 해야 메이븐 모듈 의존성이 인식된다)

1.6 Compile Taste Web(Taste는 일종의 예제 프로젝트)
taste-web 디렉토리 이동 후, recommender.properties 파일 제일 하단에 주석을 하나 풀어라, (아마도 추천자(Recommender.java)클래스를 구현 했다면, 해당 클래스를 연결시키면 될것이지만, 지금은 구현한게 없으니, 예제 것을 그대로 쓴다.) 그리고, mvn package를 실행한다.

그러니까, 앞으로 구현체를 만들어 jar로 lib 디랙토리에 추가하고, recommender.properties에 한줄 추가해주고, mvn package를 실행하면, war로 빌들되어 테스트해볼수 있다는 말이 된다.


2. 예제실행하기

이미 빌드된 taste-web의 target 디렉토리에 mahout-taste-webapp-0.4-SNAPSHOT.war라는 war파일이 생성되어 있고, 적당한 서버(tomcat 같은)에 넣어서 예제를 실행시켜 볼수 있다. 아마 위와 같이 따라 했아면, http://localhost:8080/mahout/RecommenderService.jws 으로 접근할수 있다. WSDL 형태로, Recommender를 학습시키고, 그 결과를 볼수 있는 것 속성들로 구성되어 있다.(mvn jetty:run-war 또는 mvn tomcat:run-war 해도 된다)



3. 이클립스로 보기

체크아웃 받은 /trunk를 이클립스에서 Import 시키면 간단히 이클립스에서 볼수 있다.


4. Next?

https://cwiki.apache.org/MAHOUT/quickstart.html 에 보면, 각종 알고리즘을 구현한 예제와 Tip들이 있다. 내가 관심 있는 GA는 구현된것 같은데 예제엔 없는것 같다. https://cwiki.apache.org/confluence/display/MAHOUT/Algorithms 를 보면, EA와 GA에 대해서 개발중에 있고, SVM도 보인다, 관련 문서가 빈약하긴 한데, 있는것만으로도 감지덕지다. 관련해서 https://cwiki.apache.org/MAHOUT/mahout-wiki.html 를 보면, 읽을만한게 꽤 있다. 관심있으면, 봐 두자.

TAG ,
Posted by summerwars