본문 바로가기

728x90

Data Science

[03. Feature Engineering] 002. Scaling 크기가 다른 여러 데이터를 분석할 때 스케일을 맞추지 않으면 동등비교가 되지 않고 모델에서 큰 값을 가진 데이터의 영향력이 커지게 되어 잘못한 분석결과를 도출할 수 있다. 또한 모델의 최적화 과정에서도 어려움을 겪게 된다. 1) 표준화(Standardization) 표준화는 데이터를 평균이 0이고 표준편차가 1인 분포로 변환해준다. (X – X의 평균) / X의 표준편차 2) 정규화(Normalization) 정규화는 범위가 0~1인 데이터로 변환해준다. (X – X의 Min) / (X의 Max – X의 Min) import FinanceDataReader as fdr if __name__ == '__main__': aapl = fdr.DataReader('AAPL', '2021-01-01') ssec .. 더보기
[03. Feature Engineering] 001. Aggregation 의미있는 정보 추출을 위해 데이터를 요약하는 방법과 다양한 통계치로 요약된 데이터를 한 번에 보는 방법에 대해 알아보자. 합, 최소값, 최대값, 중간값 등의 통계치를 한 번에 출력하는 방법은 다음과 같다. agg함수를 통하여 다양한 정보를 볼 수 있다. 아래는 전체기간 및 주간 단위로 그룹화하여 나타낸 결과이다. import FinanceDataReader as fdr if __name__ == '__main__': aapl = fdr.DataReader('AAPL', '2021-06-01') ssec = fdr.DataReader('005930', '2021-06-01') price = aapl[['Close']].merge(ssec[['Close']], how='outer', left_index=Tr.. 더보기
[02. Data Quality Assessment] 003. Duplicate values 중복된 데이터가 있는 경우는 어떻게 처리해야 할까? 그 데이터가 의미 있는 데이터이고 우연하게 중복된 값이 있는 것이라면 삭제해서는 안될 것이다. 하지만 주가 데이터 중에 휴일 데이터는 전 영업일 데이터를 가져오는 경우가 많기 때문에 삭제를 해야 할 것이다. 데이터의 의미를 잘 생각해보고 삭제 여부를 판단해야 한다. 아래는 휴일데이터가 없어 한국시장과 미국시장의 휴일이 다른 점을 이용하여 강제로 휴일 데이터를 만들어 삭제한 것이다. import FinanceDataReader as fdr import pandas as pd if __name__ == '__main__': aapl = fdr.DataReader('AAPL', '2020-11-21') ssec = fdr.DataReader('005930',.. 더보기
[02. Data Quality Assessment] 002. Outlier values 아웃라이어란 평균치에서 크게 벗어나서 다른 대상들과 확연히 구분 되는 값이다. 이는 정확한 모델링을 위해 처리를 해야 한다. 삭제를 하거나 Winsorizing 방법 등이 있다. 1) 삭제 값을 삭제를 하기 위해선 기준이 필요하다. 예를 들면 평균에서 2시그마를 벗어나는 값을 아웃라이어로 판단하고 삭제하는 것이다. import FinanceDataReader as fdr if __name__ == '__main__': aapl = fdr.DataReader('AAPL', '2020-10-01') aapl = aapl[['Change']] print(aapl[(aapl > (aapl[['Change']].mean() - 2 * aapl[['Change']].std())) & (aapl < (aapl[['C.. 더보기
[02. Data Quality Assessment] 001. Missing Values 모든 데이터가 다 있으면 좋겠지만 데이터를 수집하다보면 결측값들이 존재한다. 데이터가 많다면 비어있는 데이터를 삭제할 수 있다. 데이터셋의 크기가 작다면 결측값들을 평균, 최빈값 또는 중간값 등으로 채워 넣는다. 마지막으로 모델링을 통해 예측되는 값을 넣을 수도 있는데 이는 잘 사용하지 않는다. 정확하게 데이터간의 관계를 파악하고 있어야 가능하고, 이러한 예측값이 정확하다는 보장도 없다. 애플과 삼성전자의 주가데이터를 통해 결측값을 삭제 또는 평균 등의 값으로 채워 넣는 방법에 대해 알아보자. 우선 삼성전자와 애플의 주가를 불러오자. import FinanceDataReader as fdr if __name__ == '__main__': aapl = fdr.DataReader('AAPL', '2020-0.. 더보기
[01. 데이터] 001. 데이터 전처리 데이터 분석에 가장 많은 시간을 투자하는 부분이 바로 데이터 전처리이다. 즉, 매우 중요한 작업이다. garbage in, garbage out이란 말처럼 쓰레기를 넣으면 쓰레기가 나온다. 전처리 공정을 전체적으로 이해하려면 프로그래밍 언어에 관한 이해뿐만 아니라 통계학이나 머신러닝에 관한 기반 지식이 필요하다. 실제로 모델링을 하면서 모델의 성능을 높이기 위해 데이터 전처리를 반복적으로 수행한다. 더 좋은 품질의 데이터를 만들기 위해 노력해야 할 것이다. 데이터 전처리 과정의 첫 번째는 데이터의 품질을 평가하는 것이다. 결측치 데이터는 없는 지, 이상치 데이터는 없는 지, 중복된 데이터는 어떻게 처리할 것인지 등을 결정한다. 그리고 두 번째로는 데이터를 의미 있게 가공하여 보다 설명력이 높은 데이터를 .. 더보기
[05. 공공데이터포털 API] 007. 아파트 분양권전매 신고 자료 아파트 분양권전매 신고정보 API로 지역코드와 기간을 설정하여 해당지역, 해당기간의 아파트 분양권 전매 신고 자료를 조회할 수 있다. import pandas as pd import requests from bs4 import BeautifulSoup def get_purchase_right_resale_trade(api_key, LAWD_CD, DEAL_YMD): pageNo = 1 purchase_right_resale_trade = [] while True: url = 'http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcSilvTrade?serviceKey=%s&LAWD_CD=%s&DE.. 더보기
[05. 공공데이터포털 API] 006. 상업업무용 부동산 매매 신고 자료 상업업무용 부동산 매매 신고정보 API를 통하여 지역코드와 기간을 설정하여 해당지역, 해당기간의 상업업무용 부동산 매매 신고 자료를 조회할 수 있다. import pandas as pd import requests from bs4 import BeautifulSoup def get_business_property_trade(api_key, LAWD_CD, DEAL_YMD): pageNo = 1 business_property_trade = [] while True: url = 'http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcNrgTrade?serviceKey=%s&LAWD_CD=%s&DE.. 더보기
[05. 공공데이터포털 API] 005. 실거래가격지수 통계 조회 서비스 아파트 실거래가격지수를 조회해보자. 다양한 서비스가 제공되고 있으나 규모별 아파트 실거래가격지수 조회 API가 모든 것을 포괄하기 때문이 이에 대해 알아보자. 지역코드 및 규모코드 그리고 계약 타입 등을 통하여 다양하게 조회할 수 있다. 자세한 내용은 참고문서를 다운받아보도록 하자. 서울의 대형아파트 매매 가격지수를 조회하는 API를 작성해보자. import pandas as pd import requests from bs4 import BeautifulSoup def get_housing_value_index(api_key, startmonth, endmonth, region, size, contractType): housing_value_index = [] url = 'http://openapi.ka.. 더보기
[05. 공공데이터포털 API] 004. 공동주택가격정보서비스 공공주택가격정보를 조회하는 API에 대해 알아보자. 고유번호, 기준일자를 통해 공동주택가격에 대한 속성정보를 조회할 수 있다. 서울시 마포구 아현동의 공동주택가격정보를 조회해보자. import pandas as pd import requests import json def get_housing_value(api_key, pnu, stdrYear): pageNo = 1 housing_value = [] while True: url = 'http://apis.data.go.kr/1611000/nsdi/ApartHousingPriceService/attr/getApartHousingPriceAttr?serviceKey=%s&pnu=%s&stdrYear=%s&format=json&numOfRows=1000&pa.. 더보기
728x90