AI 이론/Machine Learning 11

[prediction] Car_Purchasing_Data 실습

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns pd.read_csv('Car_Purchasing_Data.csv', encoding='ISO-8859-1') 1. X, y 분리 X = car_df.loc[ : , 'Gender':'Net Worth'] y = car_df['Car Purchase Amount'] from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X = scaler.fit_transform(X) y= y.values.reshape(500,1) 2. 모두 숫자로 변경되었으니, train / test..

XGBoost

XGBoost 알고리즘의 개념 이해 XGBoost는 Gradient Boosting 알고리즘을 분산환경에서도 실행할 수 있도록 구현해놓은 라이브러리이다. Regression, Classification 문제를 모두 지원하며, 성능과 자원 효율이 좋아서, 인기 있게 사용되는 알고리즘이다. XGBoost는 여러개의 Decision Tree를 조합해서 사용하는 Ensemble 알고리즘이다. 먼저 Decision Tree에 대한 개념을 보면 다음과 같다. 여러개의 이진 노드를 겹쳐서 피쳐별로 판단을 해서 최종 값을 뽑아내는 형태가 된다. Ensemble은 여러개의 모델을 조합해서 그 결과를 뽑아 내는 방법이다. 정확도가 높은 강한 모델을 하나 사용하는 것보다, 정확도가 낮은 약한 모델을 여러개 조합 하는 방식이..

[머신러닝] resample() 함수를 이용해서 데이터 분석하는 방법

그룹바이 함수로는 년단위, 월단위, 일단위, 시단위, 분단위, 초단위로의 데이터 통합은 할 수 없다. 따라서 먼저 Date컬럼을 인덱스로 만들어주면 resample함수를 통해서 이와같은 일들을 할 수가 있다. chicago_df.index = pd.DatetimeIndex(chicago_df['Date']) # 기존 Date 컬럼은 그대로 두고 인덱스를 Date로 설정 chicago_df = chicago_df.set_index('Date') # 기존 Date컬럼은 삭제하고 인덱스를 Date로 변경함 데이터를 주기별로 분석 # resample 함수를 이용해서 날짜별로 범죄 건수를 세어보자. # resamlpe 함수를 사용하려면 인덱스가 날짜 형식인 DatetimeIndex여야 한다. df_day = ch..

error_bad_lines=False 파라미터 사용법

몇개의 파일 에러 때문에 전체 데이터를 불러올 수 없을때 (예) Chicago_Crimes_2005_to_2007.csv Chicago_Crimes_2008_to_2011.csv Chicago_Crimes_2012_to_2017.csv 파일을 읽되, 각각 파라미터 error_bad_lines=False 추가 해준다. 파일을 읽으면 파서 에러가 난다. 이때는 이상한 데이터만 빼고 나머지 데이터는 다 살릴 수가 있다. (적용) pd.read_csv('Chicago_Crimes_2005_to_2007.csv',error_bad_lines=False, index_col=0

빅데이터 관련 홈페이지 모음

캐글 https://www.kaggle.com/ 국내판캐글 Dacon https://dacon.io/ 데이터스토어 https://www.datastore.or.kr/ 금융빅데이터 개방시스템 https://www.bigdata-finance.kr/main.do 보건의료빅데이터 개방시스템 https://opendata.hira.or.kr/home.do 한국데이터거래소 https://kdx.kr/main 통신빅데이터 플랫폼 https://bdp.kt.co.kr/invoke/SOKBP3002/ 문화빅데이터플랫폼 https://www.bigdata-culture.kr/bigdata/user/main.do 교통데이터거래소 https://www.bigdata-transportation.kr/ 헬스케어관련커넉트 htt..

[머신러닝] 타임시리즈 : Facebook의 Prophet() 활용

avocado_df.unique() avocado_df['region']=='West' avocado_df.loc[avocado_df['region']=='West'] avocado_df_sample = avocado_df.loc[avocado_df['region']=='West'] avocado_df_sample # 날짜컬럼은 ds로 데이터는 y로 컬럼명을 세팅하기 avocado_df_sample= avocado_df_sample.rename(columns={'Date':'ds', 'AveragePrice' :'y'}) # 365일치 예측해서, 위의 데이터와 비교 # 24주 데이터도 예측 from fbprophet import Prophet # 1. 변수로 만들기 prophet = Prophet() #..

Feature Scaling (StandardScaler, MinMaxScaler)

Feature Scaling Age 와 Salary 는 같은 스케일이 아니다. Age 는 27 ~ 50 Salary 는 40k ~ 90k # 유클리디언 디스턴스로 오차를 줄여 나가는데, 하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할때 편중되게 된다. # 따라서 값의 레인지를 맞춰줘야 정확히 트레이닝 된다. Feature Scaling 2가지 방법 표준화 : 평균을 기준으로 얼마나 떨어져 있느냐? 같은 기준으로 만드는 방법, 음수도 존재, 데이터의 최대최소값 모를때 사용. 정규화 : 0 ~ 1 사이로 맞추는 것. 데이터의 위치 비교가 가능, 데이터의 최대최소값 알떄 사용 1. Standardisation 스케일링

[머신러닝, 딥러닝] 레이블인코딩 or 원핫인코딩, Training & Test

df = pd.read_csv('Data.csv') df Country Age Salary Purchased France 44.0 72000.0 No Spain 27.0 48000.0 Yes Germany 30.0 54000.0 No Spain 38.0 61000.0 No Germany 40.0 NaN Yes France 35.0 58000.0 Yes Spain NaN 52000.0 No France 48.0 79000.0 Yes Germany 50.0 83000.0 No France 37.0 67000.0 Yes NaN 처리 (NaN에 평균값 대입) df.fillna(df.mean(), inplace=True) X, Y 데이터 분리 : 즉 학습할 변수와 레이블링 변수로 분리 # x를 종속변수 # y를 ..