실습 - 캐글 : bike-sharing-demand자전거 데이터 확인import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt%matplotlib inlineimport warningswarnings.filterwarnings("ignore", category=RuntimeWarning)bike_df = pd.read_csv('./train.csv')print(bike_df.shape)bike_df.head(3) bike_df.info()년,월,일,시 각각 분해# 문자열을 datetime 타입으로 변경. bike_df['datetime'] = bike_df.datetime.apply(pd.to_date..
로지스틱 회귀로지스틱 휘귀는 선형 회귀 방식을 분류에 적용한 알고리즘. 즉, 분류에 사용로지스틱 회귀가 선형 회귀와 다른 점은 학습을 통해 선형 함수의 회귀 최적선을 찾는 것이 아니라 시그모이드 함수 최적선을 찾고 이 시그모이드 함수의 반환 값을 확률로 간주해 확률에 따라 분류를 결정한다는 것입니다. 로지스틱 회귀에서 예측 값은 예측 확률을 의미하며, 예측 값 즉 예측 확률이 0.5 이상이면 1로, 0.5 이하이면 0으로 예측합니다. 로지스틱 회귀의 예측 확률은 시그모이드 함수의 출력값으로 계산됩니다.시그모이드를 이용한 로지스틱 회귀 예측로지스틱 회귀는 가볍고 빠르지만, 이진 분류 예측 성능도 뛰어납니다. 이 때문에 로지스틱 회귀를 이진 분류의 기본 모델로 사용하는 경우가 많습니다. 또한 로지스틱 회귀는..
선형 회귀 모델을 위한 데이터 변환선형 회귀의 데이터 인코딩은 일반적으로 레이블이 아니라 원-핫 인코딩을 적용합니다.실습데이터 전처리(정규화, 로그변환)을 해주는 함수 정의from sklearn.preprocessing import StandardScaler, MinMaxScaler, PolynomialFeatures# method는 표준 정규 분포 변환(Standard), 최대값/최소값 정규화(MinMax), 로그변환(Log) 결정# p_degree는 다향식 특성을 추가할 때 적용. p_degree는 2이상 부여하지 않음. def get_scaled_data(method='None', p_degree=None, input_data=None): if method == 'Standard': ..
규제 선형 회귀(릿지, 라쏘, 엘라스틱넷)과대 적합을 방지하기 위해서 규제는 필요하다.회귀 모델은 적절히 데이터에 적합하면서도 회귀 계수가 기하급수적으로 커지는 것을 제어할 수 있어야 합니다.최초 목표는 RSS(오차)를 최소화 하는 것이었지만, 그러다보니 회귀 계수가 커져서 과대적합이라는 문제를 만나게 되었다.그래서 RSS와 더불어 회귀 계수 크기를 밸런스 있게 제어하는 것이 필요하게 되었다.→ 비용 함수의 목표가 밸런스 조절(RSS값 최소화, 회계 계수 값 제어)이 됨알파값으로 비용 함수의 회귀 계수 조절비용함수에 alpha 값으로 페널티를 부여해 회귀 계수 값의 크기를 감소시켜 과적합을 개선하는 방식을 규제라고 부릅니다.규제는 크게 L2 방식과 L1 방식으로 구분됩니다.L2규제는 위에서 설명한 바와 ..
다항 선형 회귀다중 선형 회귀 : 일차 방정식 다중 선형 회귀 : 2차, 3차 방정식 선형회귀와 비선형 회귀의 구분 사이킷 런에서 다항회귀사이킷런은 다항회귀를 바로 API 로 제공하지 않습니다.대신 polynomialFeatures 클래스로 원본 단항 피처들을 다항 피처들로 변환한 데이터 세트에 LinearRegression 객체를 적용하여 다항회귀 기능을 제공합니다. 실습from sklearn.preprocessing import PolynomialFeaturesimport numpy as np# 다항식으로 변환한 단항식 생성, [[0,1],[2,3]]의 2X2 행렬 생성X = np.arange(4).reshape(2,2)print('일차 단항식 계수 feature:\\n',X )# degree = ..
예제1 ) 키, 몸무게 / 당뇨병인간의 키와 몸무게 학습키가 165일때 몸무게 예측import matplotlib.pylab as pltfrom sklearn import linear_modelreg = linear_model.LinearRegression()X = [[174],[152],[138],[128],[186]]y = [71,55,46,38,88]reg.fit(X,y)print(reg.predict([[165]]))# 학습 데이터와 y 값을 산포도로 그린다.plt.scatter(X, y, color = 'black')# 학습 데이터를 입력으로 하여 예측값을 계산한다.y_pred = reg.predict(X)# 학습 데이터와 예측값으로 선 그래프를 그린다.# 계산된 기울기와 y 절편을 가지는 직선..
회귀의 개요회귀는 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아내는 것입니다. 회귀의 유형회귀 계수의 선형/비선형 여부, 돌립변수의 개수, 종속변수의 개수에 따라 여러가지 유형으로 나눌 수 있습니다.회귀에서 가장 중요한 것은 바로 회귀 계수입니다. 이 회귀 계수가 ‘선형니냐 아니냐’ 에 따라 선형 회귀와 비선형 회귀로 나눌 수 있습니다.그리고 독립변수의 개수가 한 개인지 여러 개인지에 따라 단인 회귀, 다중 회귀로 나뉩니다.선형 회귀의 종류일반 선형 회귀 : 예측 값과 실제 값의 RSS(Resicual Sum of Sauares)를 최소화 할 수 있도록 회귀 계수를 최적화 하며..
# 인구 조사 자료를 바탕으로 소득이 $ 50,000 / 년을 초과하는지 예측합니다import pandas as pdimport numpy as npimport seaborn as snsnames=['age','workclass', 'fnlwgt', 'education', 'education-num', 'marital-status', 'occupation', 'relationship', 'race', 'sex', 'capital-gain', 'capital-loss', 'hours-per-week', 'native-country','target']df_adult = pd.read_csv('adult.data.csv',names=names)df_adult.head(5)df_adult.shape # 데이터..
앙상블(Ensemble) Learning앙상블 학습을 통한 분류는 여러 개의 분류기(Classifier)를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법을 말합니다.어려운 문제의 결론을 내기 위해 여러 명의 전문가로 위원회를 구성해 다양한 의견을 수렴하고 결정하듯이 앙상블 학습의 목표는 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것입니다.앙상블 Learning 유형보팅(Voting), 배깅(Bagging), 부스팅(Boosting)으로 구분할 수 있으며, 이외에 스태킹(Stacking) 등의 기법이 있다.대표적인 배깅은 랜덤포레스트(Random Forest) 알고리즘이 있으며, 부스팅은 에이다 부스팅, 그래디언트 부스팅, XGBoost,..