TF-IDF를 이용하여 문서의 크기를 구하는 방법을 앞 강의에서 살펴봤다. 이번에는 이 문서들에서 대해 검색어를 처리하는 부분을 알아보기로 한다. 다음과 같은 검색어가 주어졌다고 해보자. 검색어 "new new york"에 대한 쿼리 벡터를 구하면 다음과 같다. 0.584란 값이 값자기 어디에서 나왔는지 궁금할수도 있을 듯 하다. 이전 강의에서 살펴본 각각의 단어의 IDF를 생각해보면 된다. new의 IDF값은 0.584이고, 전체 문서에서 2번 중 검색어도 2번 나왔으므로 2/2가 된다. 문서의 크기와 마찬가지로 검색어의 크기도 제곱하고 더한 후, 루트를 구하면 0.652가 나온다. 이제 유사도를 구하기위해서 문서와 검색어의 거리를 측정해보자. 거리를 구할 때는 유클리드 거리나 코사인 거리를 주로 사용..
텍스트 문서를 기반으로 벡터 모델에 대해서 정리해 보려고 한다. 문서의 텍스트를 처리할 때 특정 단어가 몇 번 나왔는지를 주로 세어본다. 많이 나온 단어일수록 중요하기 때문이다. 그러나 "그리고", "the", "a"와 같이 모든 문서에서 많이 나오는 단어들은 실제로 의미가 없다. 그래서 TF-IDF라는 가중치를 사용하게 된다. TF(Term Frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내고, DF(Document Frequency)는 단어가 문서내에서 흔하게 등장한다는 것을 나타낸다. 그래서 DF의 역수인 IDF(Inverse Document Frequency) 구해서 TF와 IDF를 곱한 값인 TF-IDF를 가중치로 사용한다. 다음과 같은 텍스트로 구성된 3개의 문서가 ..
데이터 모델링이란 무엇일까? 먼저 데이터를 기반으로 모델을 만드는 것을 생각해 볼 수 있다. 그러나 처음부터 모델을 만드는 것에 집착하는 것은 바람직하지 않다. 너무 추상적이기도 하고, 어떤 모델을 어떻게 만들어야 할지 막막하기만 하다. 다른 측면에서 데이터 모델링을 정의해 보면, 데이터 모델링은 데이터의 속성을 설명할 수 있고 이해하는 것이라 할 수 있다. 흔히 데이터 분석을 이야기할 때, 먼저 데이터의 특성을 파악하라고 한다. 데이터의 특성을 파악하기 위해서는 다음 세 가지 항목을 알아야 한다. 데이터 구조, 데이터 연산, 그리고 데이터 제약조건이다. 특히 데이터 제약조건은 데이터 의미를 파악하는데 유용하게 활용할 수 있다. 데이터 구조 데이터 구조는 정형(structued), 반정형(semi-str..
이제 본격적으로 빅데이터 가치 창출을 위한 5단계의 프로세스를 살펴보기로 한다. 이것은 일반적인 빅데이터 분석 과정인 "데이터 획득 - 데이터 준비 - 데이터 분석 - 시각화 - 활용"을 의미한다. 데이터 획득 (Acquire) 데이터 획득은은 단순히 데이터를 수집하는 것만을 의미하지 않는다. 먼저 데이터 셋을 명확하게 정의해야 한다. 어떤 데이터들이 있고, 해당 데이터의 특성이 무엇인지를 명확하게 설정해야 한다. 그리고 나서 데이터를 검색해보거나 쿼리를 할 수 있어야 한다. 개인적으로는 이 단계에서 데이터 속성을 파악하는 것이 중요하다고 생각한다. 데이터에 어떤 항목들이 포함되어 있고, 그것이 무엇을 의미하는 지를 알아야 올바른 가설 또는 문제를 정의할 수 있다. 데이터 준비 (Prepare) 데이터 ..
빅데이터는 초기의 개념 정의, 그리고 기술 적용의 단계를 넘어 활용으로 나아가고 있다. 가치 창출을 위한 빅데이터 활용 측면에서 빅데이터 모델링에 대해 살펴보고자 한다. 알리스테어 크롤과 벤저민 요스코비치가 쓴 린 분석(Lean Analytics)에 보면, "행동을 변화시키지 않는다면 잘못된 지표이다" 라는 이야기가 나온다. 빅데이터 분석만 하고 아무런 행동도 하지 않는다면 무의미하다는 것이다. 즉, 빅데이터 분석의 최종 목표는 반드시 실행이어야 한다. 다양하고 수많은 데이터에서 인사이트를 찾고 이를 실행에 옮기는 것이야말로 진정한 빅데이터의 활용이자 데이터 과학이라 할 수 있다. 그러나 빅데이터에서 인사이트를 찾아내는 것 자체가 어려울 수 있다. 인사이트를 찾기 위해서는 무엇을 해야 할까? 당연히 분석..
선형 회귀 분석에서 분석 데이터의 적합성 여부를 항상 고려해야 한다. 적합성 여부를 확인하는 방법 중 먼저 "결정계수(Coefficient of Determination, R-Square, R-제곱값, R2, R^2)"를 알아보자~ 결정계수는 "수식이 얼마나 X와 Y의 관계를 잘 표현하고 있는지" 나타내는 기준이다. 결정계수 (r-square) 일반적으로 결정계수는 0과 1사이의 값을 갖는데, 관계가 높을 수록 1에 가까운 값을 갖는다. 즉, 0에 가까워질수록, 수식에 데이터 분포를 제대로 표현하지 못하는 것이며, 1에 가까워지면 모든 데이터가 해당 수식에 접근한다는 것을 나타낸다. 결정계수를 나타내는 수식을 보면 다음과 같다. SSR, SST, SSE?? 처음 접할 경우, 용어를 모르기 때문에 어렵게 ..
엑셀을 활용하여 선형 회귀 분석을 만드는 방법을 살펴봤다. 분산형 차트를 통해 선형 그래프를 그릴 수 있었다. 아래 그림을 보면, y= 0.002x - 0.6 이라는 수식이 보인다. 이것이 선형 회귀 분석에서 가장 필요로 하는 기본 수식이다. 선형 회귀 분석은 새로운 X 값이 주어졌을 때, Y 값을 예측하는 용도로 주로 사용한다. 위 예제는 "노출에 따른 클릭 수"로서 "만약 노출이 1500번 일어났다면, 클릭은 몇번 일어날까?" 같은 질문에 답을 줄 수 있다. 위 수식에서 x 대신 1500을 대입하면 된다. y = 0.002 x 1500 - 0.6 = 2.4 즉, 1500번 노출이 발생하면 2.4의 클릭이 일어날 것이라고 할 수 있다. 이런 수식을 선형 회귀 분석에서는 어떻게 구할까? "최소 자승법"이..
엑셀은 장부 정리와 같은 기본적인 스타일시트 툴로 잘 알려져 있지만, 분석(Analysis) 측면에서도 정말 괜찮은 프로그램이다. 오늘은 엑셀을 이용해서 선형 회귀 분석을 수행하는 방법을 정리해 보려고 한다. 선형 회귀 분석(Linear Regression)… 말이 어려워 보일 뿐, 중고등학교 시절 수학 시간에 배운 X축, Y축의 선형 그래프를 생각해 보면 된다. 엑셀로 선형 회귀 분석을 하기 위해서 간단한 데이터를 만들어 보자. 광고 노출과 클릭간의 관계를 살펴볼 수 있는 데이터를 가상으로 구성한다. (다음 글에서 실제 광고 노출/클릭 데이터를 가지고 회귀분석을 해 볼 계획이다.) 다음과 같은 결과를 만드는 것이 최종 목표이다. 분산형 차트 활용 먼저 엑셀에서 출력할 위 데이터를 모두 선택한 후, "삽..
카프카(Kafka)는 대용량 실시간 처리를 위해 사용하는 메시징 시스템으로 Pub-Sub 구조로 되어 있다. LinkedIn, Twitter, Netflix, Tumblr, Foursquare 등 대용량을 다루는 업체들이 주로 카프카를 사용하고 있다. 물론 카프라 단독으로 실시간 처리를 구성하지 않고, 스톰(Storm) / 하둡(Hadoop) / HBase 등과 연동해서 활용하는 것이다. 아직까지 국내에서 카프카를 실제 서비스에 많이 활용하고 있지는 않고 오히려 레디스(Redis)와 같은 메모리(In-Memory) 기반의 메시지 큐나 멤캐쉬(memcached)를 더 많이 사용하는 것 같다. 하지만 전세계 40여개가 넘는 대용량을 다루는 업체들이 어떻게 카프카(Kafka)를 사용하고 있는지 한번 정리해 보..
현재 빅데이터 관련 기술로 Hadoop이 주로 활용되고 있습니다. 그러나 최근 실시간 처리에 대한 요구가 늘어나면서 점차 In-Memory 기술에 대한 관심도 증가하고 있습니다. 과거 실시간 처리를 위한 OLTP로서 데이터베이스를 주로 사용했지만, 빅데이터 환경에서는 빠르게 생성되는 데이터 스트림을 처리하기 위해서 새로운 접근법이 필요한 것이죠. 빅데이터 분석 기술에 대한 정리 에서도 Hadoop이외의 다른 기술들을 살펴보면서, 구글에서는 Dremel을 통해 짧은 시간내에 수많은 데이터를 처리하기도 한다고 이야기했었습니다. 처리하는 영역은 조금씩 다르지만 실시간이라는 이슈를 위해 주로 사용되는 기술들에 대해서 정리해 보도록 하겠습니다. Redis Redis는 "Remote dictionary System..