importnumpyasnpfromsklearn.metricsimportmean_squared_errordefrmse(y_true,y_pred):"""Root Mean Squared Error"""returnnp.sqrt(mean_squared_error(y_true,y_pred))y_true=[3,-0.5,2,7]y_pred=[2.5,0.0,2,8]print(f"RMSE: {rmse(y_true,y_pred):.4f}")
시각화로 이해하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
importnumpyasnpimportmatplotlib.pyplotasplt# 데이터 생성
errors=np.linspace(-5,5,100)mse_values=errors**2mae_values=np.abs(errors)# 시각화
plt.figure(figsize=(10,6))plt.plot(errors,mse_values,label='MSE',linewidth=2)plt.plot(errors,mae_values,label='MAE',linewidth=2)plt.xlabel('Error')plt.ylabel('Loss')plt.title('MSE vs MAE')plt.legend()plt.grid(True)plt.show()
fromsklearn.linear_modelimportLinearRegressionfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportmean_squared_error,mean_absolute_errorimportnumpyasnp# 샘플 데이터 생성
np.random.seed(42)X=np.random.rand(100,1)*10y=2*X+1+np.random.randn(100,1)*2# 학습/테스트 분할
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)# 모델 학습
model=LinearRegression()model.fit(X_train,y_train)# 예측
y_pred=model.predict(X_test)# 평가
mse=mean_squared_error(y_test,y_pred)mae=mean_absolute_error(y_test,y_pred)rmse=np.sqrt(mse)print(f"MSE: {mse:.4f}")print(f"MAE: {mae:.4f}")print(f"RMSE: {rmse:.4f}")