본문 바로가기

ml12

VAR(Vector Auto Regression)을 이용한 다변량 시계열 분석 및 예측 너무나 당연한 이야기이지만 일변량 시계열 데이터는 단일 시간 종속 변수만 포함하고, 다변량 시계열 데이터는 다중 시간 종속 변수로 구성된다. 다변량 분석에서 예측할 변수의 과거의 데이터를 고려해야할 뿐만 아니라 여러 변수들 사이의 의존성을 고려해야 한다. 다변량 시계열 모델은 특정 주어진 데이터에 대해 더 신뢰성 있고 정확한 예측을 제공하기 위해 의존성을 이용해야 한다. 이번 글에서는 실제 데이터셋에 VAR(Vector Auto Regression)이라는 다변량 시계열 모델을 다뤄보자. 혼자 공부하고 이해할 때는 영어 그 자체로 충분했던 것들이 글을 쓰기 시작하면서 어떻게 한글로 써야 할까? 라는 의문이 들어서 중요한 용어들만 집고 넘어가고, 애매한 것들은 영어 원문으로 쓰기로 했다. univaritat.. 2020. 9. 26.
Python Prophet - 자동차 판매량 시계열 데이터 예측하기(Time Series Forecasting) 이번 글에서는 시계열 예측을 위해 Facebook의 Prophet 라이브러리를 알아보자. 시계열 예측은 사용할 수 있는 방법들이 다양하고 각각의 방법마다 하이퍼 파라미터들이 매우 다양하기 때문에 어려울 수도 있다. Prophet 라이브러리는 일변량 시계열 데이터셋(univariate time series datasets)을 예측하기 위해 설계된 오픈소스 라이브러리이다. 기본 적으로 추세나 계절적 구조를 가진 데이터에 대해 모델에 적합한 하이퍼 파라미터들을 자동으로 찾을 수 있도록 설계되었고 사용하기 쉽다. 이번 글에서는 다룰 내용은 다음과 같다. Prophet의 전반적인 이해 Prophet 모델의 학습 방법, 입출력 형태 Prophet 모델을 평가하는 방법 이제 시작해보자. Prophet Forecast.. 2020. 8. 28.
kaggle 주택 가격 예측(4) - 모델 앙상블으로 등수 올리기(상위 13%) 저번 글에는 regression 4종으로 예측해보고, 결과가 가장나은 ElasticNet의 결과로 제출 해보았다. 이번글에는 조금더 핫하고 자주쓰이는 모델 중 LightGBM, XGBoost, GradientBoost 그리고 꼽사리로 RandomForest와 앙상블 기법으로 등수를 올려보자. prediction with ensemble algorithms¶ 임포팅, 데이터 로딩 In [1]: # Imports import pandas as pd import numpy as np from sklearn.model_selection import cross_val_score, train_test_split, KFold from sklearn.preprocessing import StandardScaler, R.. 2020. 8. 21.
kaggle 주택 가격 예측(3) - 간단한 regression으로 예측하기(상위 30%) 저번 글에는 데이터를 전처리하고 저장했었다면 이번 글에서는 전처리 데이터로 학습하고 kaggle에 제출해 볼 예정이다. 복잡한 알고리즘 이전에 간단한 머신러닝으로 돌린 성능을 확인하기 위해, 이번 글에서는 우선 Linear regression, ridge regression, rasso regression, elasticnet 네 가지로 실습을 해보자. 그나저나 노트북을 그대로 옮겨오면 사이즈 때문에 별로 예쁘지도 않고, 작성 후 재수정시, html구조가 깨져 노트북 테마가 다 사라져 버린다. 다른 방법을 강구해봐야겠다. 4 kinds of regression¶ In [1]: # Imports import pandas as pd import numpy as np from sklearn.model_sele.. 2020. 8. 20.
비대칭(skewed) 데이터를 처리하는 3가지 방법 / Skewed Data 실세계의 데이터는 복잡하다. 완벽하지도 않다. 그렇기 때문에 일부 학습 데이터셋은 모델링에 사용되기 전에 전처리가 필요하다. Linear regression 모델을 예로 들어 보자. Linearity : 선형성. 예측 변수와 목표 변수 간의 관계가 선형이라고 가정한다. No noise : 특이치(outlier)가 없어야 한다. No collinearity : 상관관계가 높은 예측 변수가 있는 경우 과적합(overfit)이 될 가능성이 높다. Normal distribution : 예측 변수와 목표 변수가 정규 분포를 따를 때 더 신뢰할 수 있는 예측이 이루어진다. Scale : 거리 기반의 알고리즘이므로 표준 scaler처럼 모델을 스케일링해야 한다. 오늘은 네 번째 요점에 초점을 맞추고자 한다. 예측 .. 2020. 8. 13.
Skew(왜도) 와 Kurtosis(첨도) - 데이터 과학에서 알아야 할 두가지 중요한 통계 용어 오늘은 Skew와 Kurtosis, 즉 왜도와 첨도에 대해서 알아보자. Skewness / 왜도 symmetrical bell curve 혹은 normal distribution에서 왜곡 정도를 말한다. 데이터 분포의 대칭성이 얼마나 결핍되었는지를 측정한다. 완전히 대칭인 분포는 skewness가 0이다. 두 가지 종류의 Skewness가 있다. Positive와 Negative Positive Skewness는 오른쪽 꼬리가 왼쪽보다 더 길 때를 의미한다. 평균(Mean)과 중위수(Median)가 Mode보다 크다. Negative Skewness 왼쪽 꼬리가 오른쪽보다 더 길 때를 의미한다. 평균(Mean)과 중위수(Median)가 Mode보다 작다. 그래서, 언제 Skewness(왜도)가 과도하게 .. 2020. 8. 12.
데이터 과학자가 꼭 알아야 할 5분 통계학 왜도와 첨도의 개념을 정리하려고 했는데, 그전에 좋은 글을 한 가지 발견해서 정리해놓고자 한다. “Facts are stubborn things, but statistics are pliable.”― Mark Twain 데이터 과학자들의 목표는 표본에 대한 결론을 도출하는 것이 아니라 제공된 샘플에서 모집단에 대한 결론을 도출하는 것이다. 따라서 데이터 과학자들은 표본에 대한 통계를 사용하여 모집단의 값에 대해 유추해야 한다. 모집단의 이러한 값을 모수라고 한다. 모수는 모집단 평균과 중위수와 같이 전체 모집단의 알 수 없는 특성이다. 표본 통계량은 표본으로 추출되는 모집단의 일부 특성을 설명한다. 표본 평균(mean)과 중위수(median)는 고정값이다. Sampling Error / 표본 오차 예를 .. 2020. 8. 11.
kaggle 주택 가격 예측(1) - 포괄적인 데이터 탐색 분석 / EDA xgboost를 활용한 실전 실습을 무엇으로 해볼까 kaggle을 구경하다가 많은 사람들의 튜토리얼 compete으로 이용되고 있는 주택 가격 예측으로 진행하기로 결정했다. House Prices: Advanced Regression Techniques Predict sales prices and practice feature engineering, RFs, and gradient boosting www.kaggle.com 우선 머신러닝이나 딥러닝을 시작하기 전에는 학습과 예측할 데이터 분석부터 시작해야 한다. 처음부터 모든 데이터 분석을 내가 하면 좋겠지만, 정석으로 불려도 좋을 만큼 좋은 예시가 kaggle에 있기에 몇몇 노트북을 따라 하는 것으로 대체한다. 이번 글에서는 번역한 수준으로 해당 노트북.. 2020. 8. 10.
Docker (4) - 3줄로 간단히 머신러닝/딥러닝 환경 구축하기(docker kaggle image 설치/활용하기) 이번 글은 내가 도커를 학습한 이유이다. 환경이 바뀔 때마다 매번 ML/DL 환경을 구축하는 게 귀찮았고, 타 개발자들이랑 서버를 섞어 쓰다 보면 내 의지가 아니더라도 환경이 꼬이는 경우가 있다. 그런 상황들이 싫어서 docker를 활용하고자 했고, 예상보다 훨씬 간편하게 환경 구축을 할 수 있어서 놀랐다. 이번 글은 내가 진행한 3줄짜리 환경 구축과 간단한 활용까지 진행해 볼 예정이다. 개발환경 Docker가 설치된 리눅스 환경(설치가이드) 왜 Kaggle 이미지를 사용하는가? Kaggle-kernel 전용 대회에서 머신러닝을 진행하고 싶다면 단순히 이미지를 rebuild 함으로써 최신 상태로 유지할 수 있다. GPU 지원이 빵빵하다. XGBoost 등 유명 Boosting 계열의 패키지를 지원한다. .. 2020. 7. 20.
XGBoost (4) - 머신러닝으로 부동산 가격 예측 실습하기 / Tutorial 지루한 이론과 설치가 끝나고 드디어 실습이다. 이번 글에서는 sklearn에서 제공하는 보스턴 주택 가격 데이터를 이용해 xgboost 모델을 학습시키고 예측하기까지 해 볼 예정이다. 개발 환경 설치가 완료된 이상 대부분 개발환경의 제약은 받지 않으나 내가 개발한 환경은 다음과 같다. AWS Linux python 3.6.10 준비하기 이전 글에서 설치한 xgboost용 python을 활성화해준다. source /bin/activate sklearn, pandas, matplotlib, graphviz를 설치하지 않은 경우 설치해준다. pip install sklearn pandas matplotlib graphviz 앞에 sudo를 붙이거나 가상 환경을 활성화시키지 않은 상태로 설치하는 실수는 하지 말.. 2020. 7. 14.
XGBoost (3) - Python 가상 환경에 설치하기 저번 글에서는 파라미터와 개념 등 이론적인 면에 대해서 글을 썼다면 이번 글부터는 실습 위주의 포스팅이다. 나는 sw는 실행해보면서 이해하는 부분이 크기 때문에, 첫 이론 학습은 간략히, 실습은 세세하게, 이후 다시 이론을 학습하는 편을 선호한다. 이번 글은 실습의 시작인 설치 편이다. 각 환경에 따라 모두 설치 과정을 보여주고 싶었으나 너무 귀찮기에, 내 환경에서만 진행한다. 앞으로는 docker를 배워서 사용해볼까 생각 중이다. 20200721 업데이트 잠깐. docker 환경에 익숙하거나 사용해볼 의향이 있다면 아래 글을 참고해서 환경 구축을 하는 것을 추천한다. 사용해보니 너무 간단한다. 3줄로 간단히 머신러닝/딥러닝 환경 구축하기(docker kaggle image 설치/활용하기) 사전 필요 지.. 2020. 7. 13.
XGBoost (1) - 입문용 예제로 개념 쉽게 이해하기 요즘 현업에서 자주 사용하는 모델 중 하나가 XGBoost이다. 개인적으로 내 업무는 Data Scientist보다 Data Engineer에 가까워서 모델에 관해 심도 깊은 이해는 필요 없지만, 어느 정도의 이해는 필요하다고 생각된다. 그래서 겉핥는 정도의 이론 부분을 포함하여 사용법 예제, 시행착오 등을 순차적으로 포스팅할 예정이다. 사전 필요 지식 XGBoost 학습을 위해서는 다음에 관한 지식이 필요하다. 추후 기회가 되면 포스팅 할 예정. Gradient Boost Regression Regularization XGBoost란? [XGBoost: A Scalable Tree Boosting System] 논문에서 소개된 "Extreme Gradient Boosting"을 의미하며, 여기서 "Gr.. 2020. 7. 8.