데이터분석 36

sklearn - GridSearchCV

GridSearchCV reference : sklearn.model_selection.GridSearchCV(scikit-learn.org) 모형최적화, 데이터사이언스스쿨 [Chapter 4. 분류] 랜덤포레스트(Random Forest) 머신러닝 모델의 하이퍼파라미터를 조정하는 일은 매우 까다롭다. 아주 미묘한 파라미터 값 변화가 모델의 성능을 좌우하고, 모델마다 다양한 파라미터들이 유기적으로 얽혀있기 때문이다. GridSearchCV를 통하면 다양한 하이퍼파라미터 값을 미리 입력하고, 최적의 값과 해당 값으로 표현된 모델 정확도를 돌려받을 수 있다. from sklearn.model_selection import GridSearchCV params = {'n_estimators' : [10, 100..

파이썬 퀀트 분석 패키지 - 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. 데이터 추출 기본적으로 야후 파이낸스를 통해 데이터를 가져오게 되어있고, 데이터 로드 속도..

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

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

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 값을 체크하고 해당 결측치를 특정 값으로 대체하거나 해당 결측치가 포함된 열 혹은 행을 제거해야 한다. 그러나 열 혹은 행을 제거한다면 중요한 데이터 소스를 잃어버리게 된다. 이를 감수할 만큼 해당 데이터 열 혹은 행이 유의미하지 않다면 무관하나 유의미하다면 제거하기보다 새로운 값으로 대체하는 것이 좋겠다. 결측치..

pandas - reset_index()

reset_index(drop=True) 자꾸 까먹어서 적어놓는다. 데이터전처리가 끝난 후, 혹은 중간에 데이터 정리가 필요한 경우 reset_index()는 유용하게 사용된다. reset_index() 는 마치 엑셀, 구글스프레드시트의 고정된 index 번호처럼 0부터 순서대로 index를 정리해주는 함수다. 아래와 같은 과일의 특징을 정리한 데이터프레임이 있다고 해보자. print(df) x1 x2 x3 x4 Apple 1 1 0 0 Banana 1 0 1 1 Kiwi 0 1 1 0 reset_index() 함수를 사용해보면, 인덱스가 다시 정리되고 기존의 index는 새로운 '열'로 추가된다. print(df.reset_index()) index x1 x2 x3 x4 0 Apple 1 1 0 0 1..

Elastic Stack 활용 서울시 상권 매출 대시보드 구축 - (1) beats, logstash

Step 0. 실습 전 확인 사항 Elastic Stack은 Elastic Search를 중심으로 Beats, Logstash, Kibana를 활용해 데이터파이프를 구축하는 일련의 설계 방식이다. 이번 실습은 아래의 순서로 진행된다. 서울시 상권 추정 매출 데이터를 Beats로 읽어들여서, Logstash로 보내 문자열 처리를 거친 다음, Elastic search로 적재하고, Kibana로 대시보드를 그려보는 것 먼저, 실습 전에 나의 작업 환경은 아래와 같다. 동일하게 세팅할 필요는 없으며, 클라우드를 사용하지 않고 개인 로컬 환경에서도 충분히 실습이 가능하다. 작업 환경: Macbook Pro 2019 - i9, 16GB GCP 가상 머신 4대 할당(e2-small 3대 + e2-medium 1대)..

과거 주가 데이터로 미래 주가를 예측할 수 있을까? - 파이썬 시계열 패턴 검색

Step 0. 패턴 검색 이번에는 현재 차트와 유사한 차트를 찾아서 매매에 활용하는 패턴 검색을 파이썬으로 구현해보자. 패턴 검색은 과거 주가에서 현재 주가와 유사한 패턴을 관측한 다음, 과거 주가 이후의 흐름을 확인하는 것을 통해 앞으로의 주가를 예상해보는 방식이다. Step 1. 코스피 종가 가져오기 2010년부터 현재까지의 데이터를 스크리닝한다. 즉, 유사한 패턴을 관측하는 가장 먼 시점은 2010년이다. Step 2. 기준 구간 확인 종가만 추출해서 검색하고자 하는 현재 주가의 패턴을 확인한다. 여기서 현재 주가는 6월 2일까지만 확인한다. 마지막에 6월 2일 이후 주가를 그려보면서 패턴 검색 방식의 예측을 검증해보기 위함이다. 코스피는 올해 1월에 급락 후 횡보하는 모습을 보인다. 이와 유사한 ..

1 2 3 4