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