본문 바로가기

카테고리 없음

[패스트캠퍼스 수강 후기] 데이터분석 인강 100% 환급 챌린지 34회차 미션

31. ch05. sklearn - 회귀 - 03. 회귀 평가지표(MSE, MAE, RMSE) - 34. ch05. sklearn - 회귀 - 06. 규제에 대한 이해 (I1, I2 규제)

31. ch05. sklearn - 회귀 - 03. 회귀 평가지표(MSE, MAE, RMSE)


MSE(Mean Squared Error)

예측값과 실제값의 차이에 대한 제곱에 대하여 평균을 낸 값
오차 제곱의 평균. MAE보다 크다.

MAE (Mean Absolute Error)

예측값과 실제값의 차이에 대한 절대값에 대하여 평균을 낸 값
오차에 대한 절대값. MSE보다 크겠구나

RMSE (Root Mean Squared Error)

예측값과 실제값의 차이에 대한 제곱에 대하여 평균을 낸 뒤 루트를 씌운 값
제곱을 하면 값이 너무 커져서.

평가 지표 만들어 보기

import numpy as np

pred = np.array([3, 4, 5]) 예측값
actual = np.array([1, 2, 3]) 실제값

def my_mse(pred, actual):
return ((pred - actual)**2).mean()

my_mse(pred, actual)

def my_mae(pred, actual):
return np.abs(pred-actual).mean()
abs는 절대값 absolute

my_mae(pred, actual)

def my_rmse(pred, actual):
return np.sqrt(my_mse(pred, actual))

sqrt 스퀘어루트

my_rmse(pred, actual)


32. ch05. sklearn - 회귀 - 04. 평가지표를 활용한 모델의 성능평가


sklearn의 평가지표 활용하기


from sklearn.metrics import mean_absolute_error, mean_squared_error

my_mae(pred, actual), mean_absolute_error(pred, actual)

my_mse(pred, actual), mean_squared_error(pred, actual)



33. ch05. sklearn - 회귀 - 05. 선형회귀모델 (Linear Regression)


LinearRegression


from sklearn.linear_model import LinearRegression

model = LinearRegression()

n_jobs: CPU코어의 사용

n_jobs=-1 모든 코어를 활용하겠다.

몇개로 가정할 것인지. 코어 많이 활용할수록 학습속도가 빨라짐.

model.fit(x_train, y_train)

pred = model.predict(x_test)

mse_eval('LinearRegression', pred, y_test)

pred = model.predict(x_test)

mse_eval('LinearRegression', pred, y_test)


34. ch05. sklearn - 회귀 - 06. 규제에 대한 이해 (L1, L2 규제)

규제 (Regularization)

학습이 과대적합 되는 것을 방지하고자 일종의 penalty를 부여


34. ch05. sklearn - 회귀 - 07. 릿지(Ridge)

L2규제를 활용

from sklearn.linear_model import Ridge

# 값이 커질 수록 큰 규제입니다.
alphas = [100, 10, 1, 0.1, 0.01, 0.001, 0.0001]


for alpha in alphas:
ridge = Ridge(alpha=alpha)
ridge.fit(x_train, y_train)
pred = ridge.predict(x_test)
mse_eval('Ridge(alpha={})'.format(alpha), pred, y_test)

x_train.columns

ridge.coef_


ridge_100 = Ridge(alpha=100)
ridge_100.fit(x_train, y_train)
ridge_pred_100 = ridge_100.predict(x_test)

ridge_001 = Ridge(alpha=0.001)
ridge_001.fit(x_train, y_train)
ridge_pred_001 = ridge_001.predict(x_test)


plot_coef(x_train.columns, ridge_100.coef_)

plot_coef(x_train.columns, ridge_001.coef_)


패스트캠퍼스 데이터분석 강의 링크
bit.ly/3imy2uN