전체 글 255

빅데이터와 하둡 사이의 적정 거리는?

요즘 얘기되는 빅데이터는 하둡이 나오지 않았으면 가능하지 않았습니다. 전부터 필요성은 있었지만 이런 분산처리 구조를 만드는데 드는 "공구리 골조" 공사가 보통이 아닐뿐더러 성공사례도 찾기 힘들었을 터인데 구글이 이렇게 한다니닌까 불이 지펴진게 아니겠습니까? 앞으로 빅데이터를 하둡을 떼어놓고 생각할 수 있을까요? 거의 10년전 구글이 MapReduce를 막 발표했을 때 그 처리 스타일을 간단히 시뮬레이트 해 보는 프로그램을 만들었습니다. 많은 사람들이 그랬을 것입니다. 1주 정도 걸렸는데 색인에 필요한 태스크들은 Mapping과 Reducing 하기에 원천적으로 적절하지만 내가 관심있는 분석/Machine Learning을 해보려니 힘들 것 같았습니다. 지금도 그렇지 않을까 생각합니다. 빅데이터가 항상 필..

rpart 패키지를 이용해 decision tree 만들기

> library(rpart) # rpart 패키지 로드> library(rattle) # rattle 패키지를 이용 > weatherDS = new.env() # decision tree를 담을 environment 생성> class(weatherDS) [1] "environment weather dataset을 읽음. "weather.csv" 파일이 e: 드라이브에 있다고 가정 > weather = read.csv("e:/weather.csv") > dim(weather) # weather : decision tree 적용 대상 dataset [1] 366 24 > names(weather) [1] "Date" "Location" "MinTemp" "MaxTemp" "Rainfall" "Evapora..

오픈소스와 명품과의 거리

R 과 Hadoop을 갖고 놀다가 이런 생각이 든다. 왜 오픈소스와 같은 개념이 명품 핸드백, 구두, 옷, 유모차 같은 것에는 출현하지 않는 것일까? "이 핸드백은 말야, 샤넬 핸드백 만든 사람보다 더 전문가가 실비로 좋은 뜻으로 만든 것인데 퍽 괜찮아. 그렇지만 이 것을 들면 너 돈 많다고 다른 사람들이 여겨진 않을거야" 이런 이유 때문인가?만약 오픈소스가 나오지 않았다면 어떻게 되었을까? 소프트웨어에도 브랜드가 힘을 쓰게 되었을까?

Big Data 단어 유감

빅데이터를 보통 기존의 DBMS나 파일 방식으로 처리하기 곤란한 매우 크고 복잡한 데이터를 처리하는 IT 방식이라 말한다. Tera, Peta 바이트 규모를 넘어 Exa 레벨의 데이터처리도 생각하고 있다 한다. 필요도 공감되고 더욱 좋은 기술이나 방법도 나올 것이라 생각한다. 하지만 빅데이터라는 낱말은 여전히 어색하게 들린다. 마케팅과 세일즈 필요에 의해 이 단어을 만들었다고 이해하려고 해도 그렇다. 컴퓨터가 원래 대용량 데이터를 처리하기 위해 탄생했고 지금껏 IT 발전의 가장 큰 동기가 더 크고 복잡한 데이터처리를 가능하게 함에 있었는데 새삼 빅테이터는 무슨 뒷북 치는 말인지. 낱말의 뜻 자체부터 오리무중이다. Teradata는 30년 전에 생겼고 구글은 Googol을 생각하다 Google이 되었는데...

R 데이터 cleaning

R로 로딩한 데이터를 깨끗이 정리하는 연습.앞서 로딩한 데이터를 "data"로 명명해서 햇갈리니 이름을 바꾸자.> weatherData = data # dim(weatherData) [1] 20 22 # 즉 row/record/observation 이 20개이고, column/field/variable 이 22개> class(weatherData) [1] "data.frame" # weatherData는 data.frame 즉 dataset 임. > names(weatherData) // weatherData data.frame이 아래 22개의 variable로 구성됨 [1] "" "Date" [3] "Minimum temperature (캜)" "Maximum temperature (캜)" [5] "R..

연습할 데이터 만들기

R을 이용해 어떤 데이터에 대해 통계작업을 하거나 데이터 마이닝을 하려면 그 작업 대상인 데이터가 당연히 있어야한다. 이 테이터를 data set이라 한다. R을 설치하면 퍽 많은 data set들이 함께 따라와 그것들을 이용해 R 연습을 할 수 있다. 또한 패키지를 깔면 함께 data set들이 따라 오는 경우도 많다. 그렇지만 실제 환경에서 R을 활용함은 실제 data set을 대상으로 하고 이것들을 R로 갖고와야 한다. 외부에서 데이터를 갖고오기를 연습해보자. 이런 데이터 import/export 설명 자료는 R 사이트 (http://www.r-project.org)의 Manuals/R Data Import/Export 에 가서 구한다.> today today [1] "201301"> dataSou..

Machine Learning과 데이터마이닝을 조금 더 심각하게...

10년이 더 되었지, WEKA와 R 이 막 나온 초기에 맛을 보고는 오랜만에 써 본다. 그동안 세월이 많이 흘러 Machine Learning이나 Data Mining이 전보다는 더 심각하게 받아드려지는 것 같다. Hype도 가라앉고. 그동안 R에 무척 많은 패키지들이 생겼다. Windows에서도 돌아가고, GUI 환경도 있고, 세상 좋아졌다. R 패키지 중 Rattle이 생겨 Data Mining할 때 편리하다고 하니 WEKA 대신 Rattle로 기계학습과 데이터마이닝 연습을 해 보자. 학교 다닐 때 몰랐던 VC theory/Dimension에 근거한 SVM Classification 도 알게되었고, 무엇보다 Classification Learning Algorithm의 능력에 대해서 엄격한 측정이 가..

간단한 C++ 전략 패턴

#include #include // typeid 를 사용하기 위해서 using namespace std; // 문제 : 디바이스 타입별로 읽기, 쓰기가 다르고 앞으로도 계속 새로운 디바이스 타입들이 나올텐데 어떻게 하면 기존 프로그램의 수정을 최소로 하고 기계적으로 // 새로운 디바이스를 지원할 수 있을까? // 해결책 : 디바이스 타입별로 다른 읽기/쓰기를 독립된 각각 독립된 객체로 만들고 이 것을 이용하는 client에 이 객체들을 담을 수 있는 추상클래스를 갖도록 하고 // 전체 디바이스를 아우르는 Device 추상 클래스를 만들고 구체적인 디바이스 타입별 클래스는 이 녀석을 상속한다. Client는 추상클래스(인터페이스)에 대해 프로그래밍한다. // Client는 추상클래스에 대해 읽기/쓰기를 ..