전체보기: 525개의 글
Python에서 데이터 분석을 위한 라이브러리 Pandas, Matplotlib, Numpy를 10분만에 익히는 방법 python에서 데이터 분석을 하기 위해서는 주로 사용하는 라이브러리가 있습니다. pandas, matplotlib, numpy입니다. 패키지들을 이용하는 이유는 데이터 분석을 용이하게 할 수 있도록, matrix연산과 시각화를 지원합니다. pandas는 DataFrame, Series의 데이터 객체를 이용해서 데이터를 쉽게 가공을 할 수 있습니다. 더나아가 평균, 분산, 최대, 최소 등을 쉽게 연산할 수 있습니다. 그 외에도 데이터 변수 사이에 연관성, 그룹, 선택, 조인 등의 다양한 함수를 통해 matrix를 효율적으로 쉽게 가공 할 수 있습니다. matplotlib은 데이터의 분포 ..
The Art of Feature Engineering Feature Engineering이란? 기존에 있는 데이터의 변수로 feature를 변경하거나, 새롭게 추가하여 모델링을 하거나, 예측을 할때 데이터를 더 유용하게 만드는 방법이라고 할 수 있습니다. feature engineering의 한 예를 들면, 데이터는 날짜별(date(dd-mm-yy))로 쇼핑몰에 얼마나 고객들이 방문하는지에 대한 내용을 담고 있다. 이제 이 데이터를 이용해 쇼핑몰에 고객들이 얼마나 방문하는지 예측을 할 것이다. 하지만 만약 날짜별 쇼핑몰 방문 수를 했을때, 날짜를 그대로 예측하는데 사용하면 어떻게 될까... 물론 그 날짜 그대로 사용하면 의미있는 결과는 나올 수 없다. 하지만 기존에 있는 변수를 이용해서 새로운 변수들을..
데이터 분석 머신러닝 예제 - Loan Prediction 데이터 분석에 대해서 학습을 할때, 매번 이론만 보니까 크게 와닿은 감이 없었습니다. 몇개의 유명한 사이트에서는 데이터 분석 주제를 던지고, 분석가들 사이에 서로 경쟁을 하는 사이트가 있습니다. 상금도 걸려 있으니 한번 시간이 나면 해보는것도 좋은 경험이 될 것 같습니다. 그 외에도 사이트에서는 data science에 대해서 학습할 수 있는 글 이나 예제을 주니 학습하는데는 좋은 사이트입니다. 실제 데이터 분석가들이 작성한 글이기 때문에 많은 도움이 될것입니다. 주요 사이트는 아래와 같습니다. http://datahack.analyticsvidhya.com/ https://www.kaggle.com/ 이번에 접해본 예제는 Loan Predict..
Outlier란? 잘못 평가된 값으로, 결과적으로 잘못된 분석결과를 초래할 수 있는 값들을 말합니다. 간단하게 말해서 샘플의 전체적인 패턴에서 벗어나게 관측되는 값을 말합니다. 아래 그림을 보면 고객들의 수입을 프로파일링 한 결과를 box-plot 그래프로 표현을 했습니다. 수입의 분포를 보면 $0.8million이 매년 수입의 평균을 나타냅니다. 그러나 두명의 고객은 매년 $4, $4.2 million의 수입이 있습니다. 전체적인 population을 볼때 이 두명의 고객은 상대적으로 많이 높은 수입을 갖고 있습니다. 이처럼 두명의 고객의 수입은 전체적인 수입 패턴에서 벗어나게 나타나는 outlier라고 말할 수 있습니다. Outliers의 종류 Outlier의 종류는 Univariate와 Multiv..
Missing Value Treatment 만약 우리가 input data로 사용하는 training data set에서 missing data가 있다면, 해당 데이터로 생성된 model은 biased되거나 power/fit을 감소시키는 문제를 발생합니다. 결과적으로 틀린 모델이 생성되고, 잘못된 예측 또는 분류를 하기 때문에 missing value를 어느 과정에서 생성이 될 수 있는지, 어떻게 다뤄야하는지에 대해서 학습을 해야합니다. Missing values가 발생하는 원인 그렇다면 어느 과정에서 missing values가 발생할까 알아보면, 두가지 data extraction, collection stages에서 발생할 수 있습니다. 1. Data Extraction 데이터를 추출하는 과정에서 ..
Data Exploration Guide Data Exploration, preparation, cleaning, 등의 데이터로 실제 모델을 만들기 전에 데이터 전처리에 종합적인 방법에 대해서 설명을 하려고 합니다. 일단 데이터를 통해 모델을 만들면, 정확도를 올리기 위해 많은 방법론 적인 내용이 있습니다. 그 데이터를 전처리 하는 과정은 아래와 같습니다. 1. Steps of Data Exploration and Preparation 2. Missing Value Treatment 3. Techniques of Outlier Detection and Treatment 4. The art of feature Engineering Steps of Data Exploration and Preparation ..
분산: 하나의 변수가 변수의 평균에서 얼마나 멀리 떨어져 있는지 계산 공분산: 두 변수가 각각의 평균에서 얼마나 멀리 떨어져 있는지 심슨의 역설: 혼재변수(confounding variables)가 누락되어 상관관계가 잘못 계산되는 심슨의 역설(simp son’s paradox)을 흔히 직면하게 된다. 예) 미국 서부, 동부 과학자 친구수 (석사, 박사에 따라 수가 다르고…) 베이즈 정리: 조건부 확률을 반대로 뒤집는 ‘베이즈 정리’ (조건부확률 ) 사건 E가 발생했다는 가정하에, 사건 F가 발생할 확률만 주어졌을때, (베이즈 정리) 사건 F가 발생했다는 가정하에, 사건 E가 발생할 확률은? P(E|F) = P(E,F)/P(F) = P(F|E)P(E)/P(F) 사건 F = 사건F와 사건 E가 모두 발생하..
이번에 다루어볼 내용은 몽고디비에서 데이터를 백업하고 복구하는 방법이다. 백업하기(덤프, dump) 몽고디비가 설치되어 있다면, mongodump라는 명령어로 몽고디비 데이터를 백업할 수 있다. > mongodump --host 127.0.0.1 --port 27017 위 명령으로 데이터를 백업한다면, 현재 디렉토리에 /dump 디렉토리가 생기고 이 디렉토리 밑에 데이터가 복구되어 있다.(DB 별로 폴더가 생겨있고, 그 폴더안에 BSON으로 데이터가 백업되어 있다.) > mongodump --out ~/mongo_backup --host 127.0.0.1 --port 27017 --out 옵션으로 데이터 백업의 디렉토리 위치를 정해줄 수 있다. > mongodump --out --host 127.0.0...
몽고디비 서버에서도 다른 대용량 분산 NoSQL DBMS처럼 맵리듀스 기능을 제공한다. 맵리듀스와 유사한 집계(Aggregations)기능도 제공하지만 더욱 복잡한 패턴의 분석은 맵리듀스 기능이 필요 할 수도 있다. 몽고디비의 맵리듀스는 자바스크립트 언어의 문법을 사용하여 구현한다. 즉, 내부적으로는 자바스크립트 엔진을 이용한다는 뜻이다. 몽고디비가 현재까지 SpiderMonkey, V8 등의 자바스크립트 엔진을 사용했지만 현재는 SpiderMonkey 엔진을 기본으로 사용한다. 두 엔진의 차이가 여기서 이야기할 내용은 아니지만 간단히 아래와 같은 차이를 갖는다. V8 엔진은 멀티 프로세스 방식이며, SpiderMonkey는 단일 프로세스 내에서 멀티 스레드로 작동한다. 어찌됬든 몽고디비에서 성능이 더 ..
MongoDB에서는 여러 명령을 하나의 트랜잭션으로 묶어서 사용할 수 없다. 그 이유는 몽고디비는 단일 문서 단위의 트랜잭션만 지원되기 때문이다. 이때문에 변경 직전이나 직후의 문서 데이터를 확인하기란 쉽지 않다. 사실 일반적으로 응용 프로그램에서 변경 직후의 데이터는 자신이 직접 변경한 데이터이므로 크게 필요없을 수 있지만, 변경 직전의 데이터를 확인하는 기능은 필요할 수 있다. 이러한 기능을 제공하기 위해서 몽고디비는 FindAndModify라는 명령을 제공한다. 해당 명령은 검색 조건에 일치하는 문서를 검색하고, 그 문서를 변경하거나 삭제하는 후속 오퍼레이션을 설정할 수 있다. > db.collection.findAndModify({ query:, sort:, remove:, update:, new..