전체 글 107

sklearn - GradientBoostingClassifier

GradientBoostingClassifier Gradient Boosting Model sklearn.ensemble.GradientBoostingClassifier 지도학습 - 그래디언트 부스팅 2.3.6 결정 트리의 앙상블, 텐서 플로우 블로그 GradientBoosting 모델은 RandomForest 모델과 달리 learning_rate를 통해 오차를 줄여나가는 학습 방식을 사용한다. RandomForest 모델은 말그대로 Random하게 Bagging, Tree를 생성한다. 하지만 GradientBoosting 모델은 Tree를 생성할 때마다 이전 Tree보다 오차를 줄이게 된다. 또한 개별 Tree의 깊이는 얕게 만들어내면서 오차가 줄어든 Tree를 계속해서 연결해나가는 구조다.(때문에, ..

파이썬 퀀트 분석 패키지 - ffn(Financial Functions for Python)

https://github.com/pmorissette/ffn GitHub - pmorissette/ffn: ffn - a financial function library for Python ffn - a financial function library for Python. Contribute to pmorissette/ffn development by creating an account on GitHub. github.com Python ffn 패키지는 퀀트 분석을 편하게 하도록 작성된 라이브러리다. 유용한 함수들을 많이 제공하고 있는데, 그중에서도 어렵지 않게 써먹을만한 함수들을 빠르게 익혀보자. Step 1. 데이터 추출 기본적으로 야후 파이낸스를 통해 데이터를 가져오게 되어있고, 데이터 로드 속도..

K-Nearest Neighbor Algorithm

K-Nearest Neighbor Algorithm(최근접 이웃 알고리즘) Reference : K-NN 알고리즘(K-최근접이웃) 개념 파이썬 라이브러리를 활용한 머신러닝, 한빛미디어 Classification Regression 1. Classification (n = 1) 기존에 분포하는 값 중 가장 가까운 값의 label을 현재 Test값의 label로 지정한다. (n > 1) 기존에 분포하는 값 중 가장 가까운 순서대로 n개의 값을 찾고, 가장 많이 나오는 label을 현재 Test값의 label로 지정한다. ex. N = 3일 때, 탐색 방식 ex. N = 3일 때, 코드 예시 from sklearn.model_selection import train_test_split X, y = mglear..

Precision vs Recall

Precision and Recall in an anomaly detection situation reference : Classification : Precision and Recall 분류성능평가지표 - Precision(정밀도), Recall(재현률) and Accuracy(정확도) Examples : Anomaly Detection 실제 이상 징후 : 1 실제 정상 징후 : 0 Timeseries1112131415161718192022232425 Actual-Anm 0 0 0 0 0 0 0 0 0 1 0 1 1 1 threshold > Detect_Anm 0 0 0 0 0 0 0 0 0 0 0 1 1 1 True-Pstv T T T False-Ngtv F True-Ngtv T T T T T T T..

파이썬으로 최적의 포트폴리오 비율 찾기 (한국 주식,국채 + 미국 주식,국채)

주식 시장의 난이도가 올라가면서 개인 투자자들도 자산 배분을 고려하고 있다. 자산 배분의 방식에는 여러 가지가 있겠지만 이번에는 미국과 한국 2개의 시장에만 투자하고, 각 시장에 대해 채권과 주식을 고르게 배분하는 전략으로 전개하고자 한다. 안전자산인 채권과 위험자산 주식을 어떤 비율로 분배하는 것이 가장 효율적일까? Step 1. 야후 파이낸스 데이터 추출 Step 2. 일일 수익률 및 최종 수익률 확인 Step 3. 일일 수익률간 상관관계 시각화 Step 4. 변동성(위험) 대비 수익률 시각화 Step 5. 샤프 지수에 따른 포트폴리오 비율 시각화 Step 6. 사프 지수에 따른 포트폴리오 수익률 및 변동성 시각화 Step 7. 최적의 포트폴리오 비율 Step 1. 야후 파이낸스 데이터 추출 데이터는..

sklearn - RFE

RFE (recursive feature elimination) Reference : Python 데이터 분석 실무 04-06.모델 성과 개선 (WikiDocs) Simple, yet, Powerful Bankrupt Prediction Model sklearn.feature_selection.RFE, scikit-learn.org RFE는 주요 Feature를 선별해내는 기법 중 하나로 이름(Recursive feature elimination) 그대로 '반복적으로 feature를 제거해나가는' 방식이다. 대표적인 머신러닝 라이브러리 sklearn에서는 feature_selection 모듈을 제공한다. RFE는 아래와 같이 해당 모듈에서 import 할 수 있다. from sklearn.feature_..

sklearn - RandomForestClassifier

Random Forest reference: Random Forest(랜덤 포레스트) 개념 정리 sklearn.ensemble.RandomForestClassifier Bagging(Bootstrap aggregating) 모집단(데이터셋)에서 부분집합 형태로 임의의 N개를 추출하여 트리 하나를 만든다. 추출한 N개는 다시 넣어서 모집단 원본을 만들고, 또 다시 임의의 N개 데이터를 추출하여 두 번째 트리를 만든다.(실제로 데이터를 다시 넣지는 않는다. 중복을 허용한다는 의미로 서술) max_features 파라미터를 통해 feature는 최대 몇개를 샘플링하여 트리를 구성할 지 정의할 수 있다. 전체 트리 결과값이 나오면 가장 분포가 많은 값이 RandomForestClassifier 모델의 최종 결과..

pandas - melt()

pandas.melt reference document : pandas.melt melt() 함수는 표현처럼 데이터프레임을 마치 '녹이는' 것처럼 재구성한다. 기존의 열(columns) 이름을 값(values)으로 내려 각각의 행(index)에 열 이름과 각각 해당하는 값을 나열해서 보여준다. import pandas as pd df = pd.DataFrame({ 'id': ['201','873','385','505'], 'type':['A','B','C','D'], 'count':[8,8,6,2] }) print(df) idtypecount 0 201 A 8 1 873 B 8 2 385 C 6 3 505 D 2 위 데이터프레임에서 type 컬럼은 A,B,C,D 라는 4가지 값을 가지고 있다. melt(..

pandas - forward fill

df.ffill() reference: pandas.DataFrame.ffill(pandas.pydata.org) Python pandas - 결측값 채우기 ... Python | Pandas dataframe.ffill() Pandas DataFrame ffill() Method 머신러닝 모델은 결측치가 존재하는 데이터프레임을 받아들이지 못한다. 따라서 데이터 전처리 과정에서는 반드시 NaN 값을 체크하고 해당 결측치를 특정 값으로 대체하거나 해당 결측치가 포함된 열 혹은 행을 제거해야 한다. 그러나 열 혹은 행을 제거한다면 중요한 데이터 소스를 잃어버리게 된다. 이를 감수할 만큼 해당 데이터 열 혹은 행이 유의미하지 않다면 무관하나 유의미하다면 제거하기보다 새로운 값으로 대체하는 것이 좋겠다. 결측치..

파이썬을 활용한 코스피, 달러 환율정보 수집부터 차트 시각화까지

Step 0. XHR 이란 XHR은 XMLHttpRequest의 약자로, Ajax처럼 페이지 리로드 없이 서버의 데이터를 불러올 수 있는 통신 방식이다. 브라우저 상에서 제공하는 객체 형태의 API라고 이해하면 좀 더 와닿겠다. 그래서 이 XHR은 기본적으로 브라우저가 웹서버와 통신하기 위한 수단이지만, 우리가 직접 사용해 웹 서버에서 직접 원하는 데이터를 호출할 수도 있다. 방식은 크게 2가지로, POST와 GET 방식이 있다. 여기서 두 케이스를 모두 경험해보기 위해 코스피 정보는 krx정보데이터시스템에서, 달러 정보는 yahoofinance에서 긁어보도록 하겠다. 참고로 이렇게 사이트마다 데이터를 호출하는 방식이 다르기 때문에 데이터를 수집하고자 한다면 어떤 형태로 서버와 통신하는지 사전에 확인해야..