Python

[Python] 서울특별시 행정구역 시각화

18 August 2019

전국 행정구역을 시각화한 지난 포스팅에 이서 서울만 따로 작업해보았다. 서울의 경우 서울 열린 데이터 광장에서 제공하는 자료를 통해 시각화할 데이터들이 많아 활용도가 높다. 전국 시각화 : https://mkjjo.github.io/python/2019/08/18/korea_population.html 필요한 라이브러리 import...

[Python] 전국 인구 현황 지도 시각화

18 August 2019

folium를 활용해 지도에 지역구 영역을 표시하고 인구 현황을 시각화해보자. 해당 포스트에서 커버되는 내용 대한민국 행정구역 시각화 인구 버블맵 표현 인구 히트맵 표현 필요한 라이브러리 import requests import json import pandas...

[Python] 네이버API를 활용한 위치 정보 수집

11 August 2019

네이버 클라우드 플랫폼 서비스 가입을 통해 주소별 위치 정보(위도, 경도)를 수집해올 수 있다. 단, 유료화 정책에 유의하자! https://www.ncloud.com/product/applicationService/maps map 서비스에 대해, 2019년 한정적으로 무료 이벤트를 추진중이다. '무료 이용량 프로모션'은 2019년...

[Python] folium를 활용한 지도 활용

11 August 2019

위도 경도를 알면 folium를 활용해 지도에 쉽게 표시해볼 수 있다. 필요한 라이브러리 import requests import json import pandas as pd from pandas.io.json import json_normalize import os import folium from folium...

[Python] 파이썬 모듈을 활용한 암호화/복호화

04 August 2019

업무를 하다보면 민감한 문서를 다뤄야할 때가 있다. 이럴때 암호화/복호화 기술을 활용하면 용이하다. 파이썬 모듈을 활용해 쉽게 적용할 수 있다. 우선 암호화 기술에 대해 알아보자. 암호블록체인(Cipher-block chainingm CBC) 방식은 1976년 IBM에...

[Python] Korean preprocessing

09 July 2019

한국어에 대한 자연어 처리는 영문과 유사하지만 조금 더 특별한 전처리를 갖는다. 불필요한 심볼을 제거한 후 한국어 분석에 대표적인 라이브러리 konlpy를 사용하여 형태소를 분석한다. 이중에서 데이터 분석에 가장 큰 의미를 갖는...

[Python] English preprocessing

09 July 2019

영어에 대한 전처리는 대표적으로 nltk를 사용한다. 이중에서 데이터 분석에 가장 큰 의미를 갖는 형태소인 명사만을 추출해 실제로 데이터 분석에 활용한다. 사용 목적이나 데이터 처리 상태에 따라 다른 형태소를 포함해볼수도 있을...

[Python] 파이썬 유용 코드 & Tips

03 May 2019

1. 타입변경 데이터프레임 문자타입변경 df.iloc[1][1].astype(str) 날짜 타입변경 start_date.strftime("%Y%m%d") 2. 통계값 확인 print(stockReturn.describe()) print('skeness: ', stockReturn.skew(axis=0)) print('kurtosis: ', stockReturn.kurtosis(axis=0)) print('autocorrelation: ', stockReturn.autocorr()) 3. 변경 str(1).zfiil(2) # 숫자앞에 영으로 채우기 '2011.01.01'.replace('.', '-')...

[Python] Pandas 활용 기본

03 May 2019

pandas는 데이터 분석에 용이한 파이썬 패키지이다. 테이블과 유사한 형태인 DataFrame 위주의 유용한 코드를 정리해본다. 1. DataFrame 생성 1) 리스트로 생성하기 import pandas as pd df = pd.DataFrame({"a" : list1,"b" :list2})...

[Python] 어떤 스케일러를 쓸 것인가?

10 January 2019

데이터를 모델링하기 전에는 반드시 스케일링 과정을 거쳐야 한다. 스케일링을 통해 다차원의 값들을 비교 분석하기 쉽게 만들어주며, 자료의 오버플로우(overflow)나 언더플로우(underflow)를 방지 하고, 독립 변수의 공분산 행렬의 조건수(condition number)를 감소시켜 최적화 과정에서의...

[Python] 아웃라이어 제거하는 방법

10 January 2019

표준화 변환시에는 “이상치, 특이값 (outlier)이 없어야 한다” 는 가정사항이 있다. 표준정규분포로 변환하는 공식이 z = (x - 평균)/표준편차 이며, 평균(mean)은 이상치, 특이값에 엄청 민감 하기 때문이다. 스케일 전 아웃라이어를 제거해야하는...

[Python] 학습 데이터 가져오기

09 January 2019

모델링에 주로 사용되는 학습데이터가 있다. 1. mnist mnist는 0~9까지의 숫자 모음 으로 비교적 많은 이미지 학습 예제에서 다뤄지고 있다. MNIST 학습데이터는 28x28 사이즈에 총 784개의 픽셀로 이루어진 흑백이미지이다. 각 픽셀마다...

[Python] 데이터 전처리 과정

08 January 2019

데이터는 Kaggle의 home credit default risk 를 사용했다. 1. 데이터 가져오기 Kaggle Data 보러가기 application_train.csv파일 다운로드 data = pd.read_csv('./datas/kaggle_homecredit/application_train.csv') 2. 변수 정보 확인 # 컬럼별 type 확인 및 결측치 확인...

[Python] SMOTE를 통한 데이터 불균형 처리

04 January 2019

데이터 분석시 쉽게 마주하게 되는 문제 중 하나가 데이터의 불균형이다. 우리가 찾고자하는 데이터의 타겟의 수가 매우 극소수인 케이스가 많다. 예를 들어 부도예측시 부도는 전체 기업의 3% 내외로 극소수이다. 이러한 비대칭...

[Python] 변수중요도(Feature Importances) 추출

04 January 2019

1. 모델 가져오기 먼저 나무유형 머신러닝 모델이 필요하다. 작업 후 pickle 변수 저장 후 사용하였다. [저장하기 코드 참고] import pickle pickle.dump(models, open('./models/models.pkl','wb')) [가져오기 코드 참고] with open('./models/models.pkl', 'rb') as file:...

[Python] 보루타 알고리즘을 통한 변수선택

04 January 2019

보루타알고리즘은 랜덤포레스트(RandomForest)를 기반으로하는 변수선택기법이다. 랜덤포레스트는 다수의 의사결정나무를 앙상블 배깅하는 모델로, 분류작업을 위한 모든 의사결정나무들은 정확도 손실 계산의 평균과 표준편차를 갖는다. 이를 활용한 Z-score값은 변수선택에 있어 직접적인 통계적유의성을 갖지는 않는다. 더구나...

[Python] Pearson 상관관계 파악

02 January 2019

데이터 모델링시, 변수선정시 결정적인 변수가 포함되어있지는 않은지 확인할 필요가 있다. 예를 들어 Label값과 거의 일치하는 변수가 포함되어 있을 경우, 성능은 당연히 높아질 수 밖에 없으나 모델로써의 가치는 떨어지게 된다. 사전에...

[Python] 버블차트로 모델 성능 표현하기

01 January 2019

모델의 성과를 비교하고 싶을 때 버블차트를 이용해보면 좋다. 최종 output 활용 이미지는 다음과 같다. 1. 데이터 가져오기 모델 성능을 미리 csv파일로 작성해두었다. models = pd.read_csv("./datas/model_result_pivot.csv") 아래와 같은 포맷이다. (샘플) dataset...

[Python] DNN 모델링시 학습곡선 체크하기

28 December 2018

같은 데이터에 같은 모델을 적용하더라도 설계를 얼마나 잘하느냐에 따라 결과가 매우 달라진다. 설계를 할때 아래와 같은 주요변수(요인)들이 있다. - Batchsize 한번에 학습할 데이터량을 결정한다. 클수록 한번 볼때 크게 보는 효과가...