대용량 데이터 마이닝 메모

인터넷에서 이런 저런 자료들을 찾아보면서 메모를 해본다.

메모리보다 큰 데이터를 다루기 위해서 가장 편리한 툴은 역시 SAS라고 한다. 어떤 사용자는 20GB의 데이터를 가지고 분석하는데 흡사 20MB의 데이터를 가지고 처리하는것과 별반 다를게 없는 퍼포먼스를 보여준다고 한다.  그런데 20GB보다 큰 데이터는 SAS로도 힘들다고 한다.

 

만일 그것보다 큰 데이터라면 R과 Hadoop이 결합된 Rhipe라는 프로젝트가 도움이 될거 같다는 생각을 해본다.  

기회봐서 Hadoop 머신을 셋업해보고 한번 돌려볼 기회를 봐야 겠다.

 

RPy2를 사용한 데이터 분석도 해볼만 한데, 이를 이용하면 Python이 제공하는 데이터 처리의 간편함과 더불에 R이 제공하는 여러 분석함수들을 사용할 수 있는 장점이 있다. scipy라는 훌륭한 프로젝트도 있지만 아직 R만큼 성숙되지 않은 관계로 이런 방식으로 R을 결합해서 쓰는거 같다.

그렇지만 이 경우에도 대용량 파일 처리가 문제인데…. 해결 방법이 있다. 바로 ipython 을 사용하는건데, 이 라이브러리를 사용하면 여러대의 서버에 담긴 데이터를 분산처리할 수 있다. 몇몇 페이스북의 데이터 엔지니어들도 이런 방법으로 데이터 분석을 한다는데 간단히 메뉴얼만 봐도 얼마나 편할지 감이 오긴 한다.

 

역시 가장 땡기는 방법은 python + ipython + RPy2 조합이네..

0 0 votes
Article Rating
Subscribe
Notify of
guest

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
baku

RPy2는 단순히 Python + R은 아닌 것 같은게 R에서 가장 힘든 부분이 데이터를 처리할 수있는 행태로 만들어 주는 과정일 것입니다. 그런데 RPy2를 사용하면 python처럼 다양한 형태로 데이터를 조작할 수 있는데 정작 통계를 사용하는 R함수를 불러오면 R이 가지고 있는 강력한 기능을 python과 조합하면서 상당히 조잡한 느낌을 받게 됩니다. RPy2를 사용하려다가 이런 것에 흠칫해서 아직 손을 못대고 python과 R을 오가면서 사용중입니다. 아주 불편하네요. 좀더 직관적으로 RPy2에 접근할 방법은 무엇일까요?

Anonymous

제 경험으로 다른 언어간의 인터페이싱을 아주 깔끔하게 수행하는 그런 어떠한 사례도 보지못했었습니다.

다른 언어와 연동이 쉽다던 Python의 경우도 그랬고 Java와 C코드 연동도 그랬습니다.

그나마 RPy2는 굉장히 편한 경우라고 생각이 드네요.

질문의 답변이 될지는 모르겠지만 Python으로는 인풋받은 텍스트 전처리와 R에서 나온 결과물 처리는 하는 쪽을 담당하고 R에서는 다양한 통계 모듈을 사용하는 방식으로 사용하는게 어떨까 합니다.
이런 정도의 역할 분담을 미리 생각해 놓으면 좀더 체계적으로 RPy2사용을 할 수 있지 않을까 하네요.

Sang Rok Mun

파이썬은 정말 귀에걸면 귀걸이 코에걸면 코걸이 같아요ㅋㅋ 데이터에 관해 검색해서 좋은 글이다 싶어 들어오면 어김없이 고감자님 블로그네요 ^^ 잘 보고갑니다