Machine Learning
1.회귀문제_1_오존
- -
layout: single
title: "jupyter notebook 변환하기!"
categories: coding
tag: [python, blog, jekyll]
toc: true
author_profile: false
AirQuality를 이용한 오존농도 예측 문제
import warnings
warnings.filterwarnings(action='ignore')
1. Pandas는 데이터 분석을 위해 널리 사용되는 파이썬 라이브러리입니다.
Pandas를 사용할 수 있도록 별칭(alias)을 pd로 해서 불러오세요.
# 여기에 답안코드를 작성하세요.
import pandas as pd
2. 모델링을 위해 분석 및 처리할 데이터 파일을 읽어오려고 합니다.
Pandas함수로 데이터 파일을 읽어 데이터프레임 변수명 df에 할당하는 코드를 작성하세요.
# 데이터 읽어오기
path = 'https://raw.githubusercontent.com/khw11044/csv_dataset/master/air2.csv'
df = pd.read_csv(path)
df.head()
Ozone | Solar.R | Wind | Temp | Date | |
---|---|---|---|---|---|
0 | 41 | 190.0 | 7.4 | 67 | 1973-05-01 |
1 | 36 | 118.0 | 8.0 | 72 | 1973-05-02 |
2 | 12 | 149.0 | 12.6 | 74 | 1973-05-03 |
3 | 18 | 313.0 | 11.5 | 62 | 1973-05-04 |
4 | 19 | NaN | 14.3 | 56 | 1973-05-05 |
3. Date 컬럼을 통해 Month와 Day 컬럼을 추가하세요
먼저 Date 컬럼에서 pd.to_datetime 를 통해 날짜 형식으로 변환해주세요
df['Date'] = pd.to_datetime(df['Date']) # 날짜 형식으로 변환
df['Month'] = df['Date'].dt.month
df['Day'] = df['Date'].dt.day
df.head()
Ozone | Solar.R | Wind | Temp | Date | Month | Day | |
---|---|---|---|---|---|---|---|
0 | 41 | 190.0 | 7.4 | 67 | 1973-05-01 | 5 | 1 |
1 | 36 | 118.0 | 8.0 | 72 | 1973-05-02 | 5 | 2 |
2 | 12 | 149.0 | 12.6 | 74 | 1973-05-03 | 5 | 3 |
3 | 18 | 313.0 | 11.5 | 62 | 1973-05-04 | 5 | 4 |
4 | 19 | NaN | 14.3 | 56 | 1973-05-05 | 5 | 5 |
4. 모델링 성능을 제대로 얻기 위해서 결측치 처리는 필수입니다.
아래 가이드를 따라 결측치 처리하세요.
- 대상 데이터프레임: df_temp
- 결측치를 확인하는 코드를 작성하세요.
- 결측치를 선형보간법을 통해 채워주세요
- 전처리 반영된 결과를 새로운 데이터프레임 변수명 df_na에 저장하세요
# 결측치 확인
df.isna().sum()
Ozone 0
Solar.R 7
Wind 0
Temp 0
Date 0
Month 0
Day 0
dtype: int64
# 선형보간법으로 결측치 채우기
df_na = df.interpolate(method='linear')
# 확인
df_na.isna().sum()
Ozone 0
Solar.R 0
Wind 0
Temp 0
Date 0
Month 0
Day 0
dtype: int64
5. 각 컬럼의 상관관계를 알아 보려고 합니다.
상관관계 히트맵을 그리세요.
# 여기에 답안코드를 작성하세요.
import seaborn as sns
import matplotlib.pyplot as plt
# 상관관계 시각화
sns.heatmap(df_na.corr(numeric_only=True),
annot=True,
cmap='Blues',
cbar=False, # 옆에 칼라 바 제거
square=True,
fmt='.3f', # 소수점
annot_kws={'size':9}
)
6. 월별 Ozone, Wind, Temp의 평균을 구하세요.
df_na.groupby('Month', as_index = False)[['Ozone', 'Wind','Temp' ]].mean()
Month | Ozone | Wind | Temp | |
---|---|---|---|---|
0 | 5 | 22.677419 | 11.622581 | 65.548387 |
1 | 6 | 40.133333 | 10.266667 | 79.100000 |
2 | 7 | 56.870968 | 8.941935 | 83.903226 |
3 | 8 | 59.000000 | 8.793548 | 83.967742 |
4 | 9 | 31.166667 | 10.180000 | 76.900000 |
7. 오존의 데이터 분포를 시각화하세요. - 히스토그램 그래프를 그리세요
- Seaborn을 활용하세요.
- histplot 함수를 사용하세요
- 구간을 20개로 나누어 표기하세요
sns.histplot(x='Ozone', data = df_na, bins = 20)
plt.show()
8. 오존의 밀도함수를 시각화하세요.
- Seaborn을 활용하세요.
- kdeplot 함수를 사용하세요
sns.kdeplot(x='Ozone', data = df_na)
plt.show()
9. 오존의 밀도함수와 히스토그램을 함께 그려보세요
- Seaborn을 활용하세요.
- histplot 함수를 사용하세요
sns.histplot(x='Ozone', data = df_na, kde = True)
plt.show()
10. 오존과 온도를 시간별 그래프로 나타내세요
- Matplotlib을 활용하세요
- Date별 오존과 온도를 나타내세요
- 오존은 초록색, 온도는 빨간색으로 나타내세요
- X 라벨을 Date로 나타내세요
- legned를 나타내세요
df_na.head()
Ozone | Solar.R | Wind | Temp | Date | Month | Day | |
---|---|---|---|---|---|---|---|
0 | 41 | 190.000000 | 7.4 | 67 | 1973-05-01 | 5 | 1 |
1 | 36 | 118.000000 | 8.0 | 72 | 1973-05-02 | 5 | 2 |
2 | 12 | 149.000000 | 12.6 | 74 | 1973-05-03 | 5 | 3 |
3 | 18 | 313.000000 | 11.5 | 62 | 1973-05-04 | 5 | 4 |
4 | 19 | 308.333333 | 14.3 | 56 | 1973-05-05 | 5 | 5 |
plt.plot('Date', 'Ozone', 'g-', data=df_na, label = 'Ozone')
plt.plot('Date', 'Temp', 'r-', data=df_na, label = 'Temp')
plt.xlabel('Date')
plt.legend()
plt.show()
11. 모델링 성능을 제대로 얻기 위해서 불필요한 변수는 삭제해야 합니다.
아래 가이드를 따라 불필요 데이터를 삭제 처리하세요.
- 대상 데이터프레임: df_na
- 'Date', 'Month', 'Day' 3개 컬럼을 삭제하세요.
- 전처리 반영된 결과를 새로운 데이터프레임 변수명 df_del에 저장하세요.
# 변수 제거
drop_cols = ['Date','Month','Day']
df_del = df_na.drop(drop_cols, axis=1)
# 확인
df_del.head()
Ozone | Solar.R | Wind | Temp | |
---|---|---|---|---|
0 | 41 | 190.000000 | 7.4 | 67 |
1 | 36 | 118.000000 | 8.0 | 72 |
2 | 12 | 149.000000 | 12.6 | 74 |
3 | 18 | 313.000000 | 11.5 | 62 |
4 | 19 | 308.333333 | 14.3 | 56 |
12. 훈련과 검증 각각에 사용할 데이터셋을 분리하려고 합니다.
Ozone 컬럼을 label값 y로, 나머지 컬럼을 feature값 X로 할당한 후 훈련데이터셋과 검증데이터셋으로 분리하세요.
- 대상 데이터프레임: df_del
- 훈련과 검증 데이터셋 분리
- 훈련 데이터셋 label: y_train, 훈련 데이터셋 Feature: X_train
- 검증 데이터셋 label: y_valid, 검증 데이터셋 Feature: X_valid
- 훈련 데이터셋과 검증데이터셋 비율은 80:20
- random_state: 42
- Scikit-learn의 train_test_split 함수를 활용하세요.
- 스케일링 수행
- sklearn.preprocessing의 MinMaxScaler 함수 사용
- 훈련데이터셋의 Feature는 MinMaxScaler의 fit_transform 함수를 활용하여 X_train 변수로 할당
- 검증데이터셋의 Feature는 MinMaxScaler의 transform 함수를 활용하여 X_valid 변수로 할당
# 여기에 답안코드를 작성하세요.
from sklearn.model_selection import train_test_split
target = 'Ozone'
x = df_del.drop(target, axis=1)
y = df_del[target]
X_train, X_valid, y_train, y_valid = train_test_split(x,y, test_size=0.2, random_state=42)
print(X_train.shape, X_valid.shape, y_train.shape, y_valid.shape)
(122, 3) (31, 3) (122,) (31,)
from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_valid = scaler.transform(X_valid)
13. Ozone을 예측하는 머신러닝 모델을 만들려고 합니다.
아래 가이드에 따라 다음 모델을 만들고 학습을 진행하세요.
- 의사결정나무(Decisiontree)
- 트리의 최대 깊이: 5로 설정
- 노드를 분할하기 위한 최소한의 샘플 데이터 수(min_sample_split): 3으로 설정
- random_state: 120으로 설정
- 의사결정나무(decision tree) 모델을 dt 변수에 저장해주세요.
- 랜덤포레스트(RandomForest)
- 트리의 최대 깊이: 5로 설정
- 노드를 분할하기 위한 최소한의 샘플 데이터 수(min_sample_split): 3으로 설정
- random_state: 120으로 설정
- 랜덤포레스트(RandomForest) 모델을 rf 변수에 저장해주세요.
- 선형회쉬(LinearRegression)
- 선형회쉬(LinearRegression)모델을 lr 변수에 저장해주세요.
- K최근접(KNeighborsRegressor)
- 가장 가까운 이웃의 'K'개의 값(n_neighbors): 5로 설정
- weights를 'distance'로 설정 # distance와 uniform이 있음
- K최근접(KNeighborsRegressor)모델을 kr 변수에 저장해주세요.
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import KNeighborsRegressor
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor
dt = DecisionTreeRegressor(max_depth=5, min_samples_split=3, random_state=120)
rf = RandomForestRegressor(max_depth=5, min_samples_split=3, random_state=120)
lr = LinearRegression()
kr = KNeighborsRegressor(n_neighbors=5, weights='distance')
# XGBRegressor(max_depth=5, random_state=120)
# LGBMRegressor(random_state=120,verbose=-1)
dt.fit(X_train, y_train)
rf.fit(X_train, y_train)
lr.fit(X_train, y_train)
kr.fit(X_train, y_train)
KNeighborsRegressor(weights='distance')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
KNeighborsRegressor(weights='distance')
14. 위 모델들의 성능을 평가하려고 합니다.
예측 결과의 mae(Mean Absolute Error)를 구하세요.
- 성능 평가는 검증 데이터셋 (X_valid, y_valid)을 활용하세요.
- 의사결정나무(Decisiontree) 모델
- 11번 문제에서 만든 의사결정나무(decision tree) 모델로 y값을 예측(predict)하여 y_pred_dt에 저장하세요.
- 검증 정답(y_valid)과 예측값(y_pred_dt)의 mae(Mean Absolute Error)를 구하고 dt_mae 변수에 저장하세요.
- 랜덤포레스트(RandomForest) 모델
- 11번 문제에서 만든 랜덤포레스트(RandomForest) 모델로 y값을 예측(predict)하여 y_pred_rf에 저장하세요.
- 검증 정답(y_valid)과 예측값(y_pred_rf)의 mae(Mean Absolute Error)를 구하고 rf_mae 변수에 저장하세요.
- 선형회쉬(LinearRegression) 모델
- 11번 문제에서 만든 선형회쉬(LinearRegression) 모델로 y값을 예측(predict)하여 y_pred_lr에 저장하세요.
- 검증 정답(y_valid)과 예측값(y_pred_lr)의 mae(Mean Absolute Error)를 구하고 lr_mae 변수에 저장하세요.
- K최근접(KNeighborsRegressor) 모델
- 11번 문제에서 만든 K최근접(KNeighborsRegressor) 모델로 y값을 예측(predict)하여 y_pred_kr에 저장하세요.
- 검증 정답(y_valid)과 예측값(y_pred_kr)의 mae(Mean Absolute Error)를 구하고 kr_mae 변수에 저장하세요.
- 훈련시킨 모델들에 대한 mae 성능평가 결과를 확인하여 가장 성능이 좋은 모델 이름을 답안14 변수에 저장하세요
- 예. 답안14 = 'Decisiontree' 혹은 'RandomForest' 혹은 'LinearRegression' 혹은 'KNeighborsRegressor'
# 여기에 답안코드를 작성하세요.
from sklearn.metrics import mean_absolute_error
y_pred_dt = dt.predict(X_valid)
dt_mae = mean_absolute_error(y_valid, y_pred_dt)
print('dt MAE:', dt_mae)
y_pred_rf = rf.predict(X_valid)
rf_mae = mean_absolute_error(y_valid, y_pred_rf)
print('rf MAE:', rf_mae)
y_pred_lr = lr.predict(X_valid)
lr_mae = mean_absolute_error(y_valid, y_pred_lr)
print('lr MAE:', lr_mae)
y_pred_kr = kr.predict(X_valid)
kr_mae = mean_absolute_error(y_valid, y_pred_kr)
print('kr MAE:', kr_mae)
dt MAE: 12.29453700421442
rf MAE: 12.94114137044728
lr MAE: 14.73719993089999
kr MAE: 12.058007490582737
답안14 = 'KNeighborsRegressor'
다음 문항을 풀기 전에 아래 코드를 실행하세요.
import tensorflow as tf
from tensorflow.keras.models import Sequential, load_model
from tensorflow.keras.layers import Dense, Activation, Dropout, BatchNormalization
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint
from tensorflow.keras.utils import to_categorical
# 규제를 위해 필요한 함수 불러오기
from tensorflow.keras.regularizers import l1, l2
tf.random.set_seed(1)
15. Ozone을 예측하는 딥러닝 모델을 만들려고 합니다.
아래 가이드에 따라 모델링하고 학습을 진행하세요.
- Tensoflow framework를 사용하여 딥러닝 모델을 만드세요.
- 히든레이어(hidden layer) 2개이상으로 모델을 구성하세요.
- dropout 비율 0.2로 Dropout 레이어 1개를 추가해 주세요.
- 손실함수는 MSE(Mean Squared Error)를 사용하세요.
- 하이퍼파라미터 epochs: 100, batch_size: 16으로 설정해주세요.
- 각 에포크마다 loss와 metrics 평가하기 위한 데이터로 X_valid, y_valid 사용하세요.
- 학습정보는 history 변수에 저장해주세요
# 여기에 답안코드를 작성하세요.
model = Sequential()
nfeatures = X_train.shape[1]
model.add(Dense(32, activation='relu', input_shape=(nfeatures,), kernel_regularizer = l1(0.01)))
model.add(Dropout(0.2))
model.add(Dense(16, activation='relu', kernel_regularizer = l1(0.01)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse',metrics=['mae','mse'])
# es = EarlyStopping(monitor='val_loss', patience=4, mode='min', verbose=1) # val_loss
history = model.fit(X_train, y_train,
batch_size=16,
epochs=100,
# callbacks=[es],
validation_data=(X_valid, y_valid),
verbose=1).history
Epoch 1/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m1s[0m 21ms/step - loss: 2471.7454 - mae: 41.6068 - mse: 2447.3618 - val_loss: 2287.0576 - val_mae: 38.9255 - val_mse: 2309.4189
Epoch 2/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 6ms/step - loss: 2458.5261 - mae: 41.4313 - mse: 2434.1829 - val_loss: 2276.3562 - val_mae: 38.7870 - val_mse: 2298.6663
Epoch 3/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2448.8069 - mae: 41.3211 - mse: 2424.5120 - val_loss: 2265.9033 - val_mae: 38.6519 - val_mse: 2288.1677
Epoch 4/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2437.0881 - mae: 41.1577 - mse: 2412.8540 - val_loss: 2254.9160 - val_mae: 38.5067 - val_mse: 2277.1257
Epoch 5/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2423.0544 - mae: 40.9810 - mse: 2398.9897 - val_loss: 2242.3418 - val_mae: 38.3411 - val_mse: 2264.4783
Epoch 6/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2407.4854 - mae: 40.8084 - mse: 2383.3989 - val_loss: 2227.6177 - val_mae: 38.1465 - val_mse: 2249.6626
Epoch 7/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2394.5747 - mae: 40.6314 - mse: 2370.6738 - val_loss: 2210.3550 - val_mae: 37.9193 - val_mse: 2232.3091
Epoch 8/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2376.5583 - mae: 40.3937 - mse: 2352.6990 - val_loss: 2190.2778 - val_mae: 37.6503 - val_mse: 2212.1335
Epoch 9/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2349.9756 - mae: 40.0584 - mse: 2326.1685 - val_loss: 2166.3604 - val_mae: 37.3263 - val_mse: 2188.1033
Epoch 10/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2323.3774 - mae: 39.6995 - mse: 2299.2659 - val_loss: 2138.0391 - val_mae: 36.9408 - val_mse: 2159.6396
Epoch 11/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2287.0645 - mae: 39.2814 - mse: 2263.5532 - val_loss: 2103.7749 - val_mae: 36.4790 - val_mse: 2125.1777
Epoch 12/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2248.6108 - mae: 38.7950 - mse: 2225.4500 - val_loss: 2063.3953 - val_mae: 35.9298 - val_mse: 2084.5527
Epoch 13/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2203.8369 - mae: 38.1241 - mse: 2180.5049 - val_loss: 2017.1940 - val_mae: 35.2917 - val_mse: 2038.0652
Epoch 14/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2148.4883 - mae: 37.5230 - mse: 2125.7366 - val_loss: 1965.1649 - val_mae: 34.5583 - val_mse: 1985.7117
Epoch 15/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2092.5540 - mae: 36.6536 - mse: 2070.2405 - val_loss: 1907.2902 - val_mae: 33.7227 - val_mse: 1927.4657
Epoch 16/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 2018.6066 - mae: 35.6688 - mse: 1996.1760 - val_loss: 1843.2681 - val_mae: 32.7750 - val_mse: 1863.0284
Epoch 17/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1959.4742 - mae: 34.8062 - mse: 1937.8960 - val_loss: 1773.3943 - val_mae: 31.7253 - val_mse: 1792.6866
Epoch 18/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1880.7133 - mae: 33.6327 - mse: 1859.4009 - val_loss: 1697.8884 - val_mae: 30.6179 - val_mse: 1716.6453
Epoch 19/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1783.0098 - mae: 32.2669 - mse: 1761.2437 - val_loss: 1617.6189 - val_mae: 29.3975 - val_mse: 1635.7839
Epoch 20/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 1725.5332 - mae: 31.4321 - mse: 1704.9125 - val_loss: 1534.4395 - val_mae: 28.2151 - val_mse: 1551.9633
Epoch 21/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1600.8696 - mae: 29.8260 - mse: 1580.4774 - val_loss: 1448.3348 - val_mae: 27.0960 - val_mse: 1465.1594
Epoch 22/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1489.1721 - mae: 28.1909 - mse: 1468.9417 - val_loss: 1360.9324 - val_mae: 25.9509 - val_mse: 1377.0057
Epoch 23/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1440.4375 - mae: 27.2709 - mse: 1419.8097 - val_loss: 1275.3347 - val_mae: 24.8065 - val_mse: 1290.6228
Epoch 24/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1337.4573 - mae: 25.9696 - mse: 1317.4351 - val_loss: 1192.5978 - val_mae: 23.6371 - val_mse: 1207.0697
Epoch 25/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1218.5095 - mae: 24.3919 - mse: 1199.8225 - val_loss: 1112.9113 - val_mae: 22.4599 - val_mse: 1126.5334
Epoch 26/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1157.8435 - mae: 23.6885 - mse: 1138.7198 - val_loss: 1038.2139 - val_mae: 21.5959 - val_mse: 1050.9700
Epoch 27/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 1103.4355 - mae: 23.1460 - mse: 1084.0613 - val_loss: 970.6506 - val_mae: 21.0679 - val_mse: 982.5405
Epoch 28/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 997.2303 - mae: 21.7231 - mse: 977.5377 - val_loss: 910.8970 - val_mae: 20.6360 - val_mse: 921.9253
Epoch 29/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 954.1262 - mae: 21.5259 - mse: 935.1857 - val_loss: 859.4791 - val_mae: 20.3898 - val_mse: 869.6627
Epoch 30/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 906.4983 - mae: 21.3084 - mse: 888.2979 - val_loss: 817.6138 - val_mae: 20.2967 - val_mse: 827.0013
Epoch 31/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 864.3246 - mae: 20.4171 - mse: 847.3692 - val_loss: 783.5047 - val_mae: 20.2959 - val_mse: 792.1306
Epoch 32/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 806.3094 - mae: 20.8207 - mse: 789.6545 - val_loss: 756.4587 - val_mae: 20.4206 - val_mse: 764.3532
Epoch 33/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 799.8016 - mae: 20.8335 - mse: 783.3344 - val_loss: 736.5907 - val_mae: 20.5742 - val_mse: 743.8320
Epoch 34/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 802.4982 - mae: 21.4759 - mse: 786.8198 - val_loss: 722.5132 - val_mae: 20.8002 - val_mse: 729.2004
Epoch 35/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 807.1265 - mae: 21.5893 - mse: 791.7241 - val_loss: 712.1293 - val_mae: 21.0546 - val_mse: 718.3146
Epoch 36/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 804.8024 - mae: 21.3985 - mse: 789.9974 - val_loss: 704.5294 - val_mae: 21.2609 - val_mse: 710.2787
Epoch 37/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 753.9949 - mae: 21.1735 - mse: 737.5042 - val_loss: 698.6873 - val_mae: 21.4188 - val_mse: 704.0649
Epoch 38/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 804.9308 - mae: 21.9728 - mse: 786.8815 - val_loss: 694.0466 - val_mae: 21.5229 - val_mse: 699.1304
Epoch 39/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 723.5405 - mae: 21.0274 - mse: 706.1252 - val_loss: 689.6453 - val_mae: 21.5693 - val_mse: 694.5129
Epoch 40/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 768.8055 - mae: 21.7737 - mse: 753.4985 - val_loss: 685.1896 - val_mae: 21.5766 - val_mse: 689.8925
Epoch 41/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 738.8964 - mae: 21.3199 - mse: 722.1785 - val_loss: 680.5773 - val_mae: 21.5552 - val_mse: 685.1561
Epoch 42/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 724.5547 - mae: 20.6587 - mse: 709.8459 - val_loss: 675.9733 - val_mae: 21.5262 - val_mse: 680.4359
Epoch 43/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 685.6252 - mae: 20.7115 - mse: 670.0287 - val_loss: 671.5093 - val_mae: 21.4992 - val_mse: 675.8511
Epoch 44/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 733.0292 - mae: 21.4355 - mse: 718.4153 - val_loss: 666.8091 - val_mae: 21.4486 - val_mse: 671.0640
Epoch 45/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 702.4475 - mae: 20.7538 - mse: 687.2123 - val_loss: 662.3983 - val_mae: 21.4126 - val_mse: 666.5440
Epoch 46/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 681.6859 - mae: 20.1986 - mse: 670.2672 - val_loss: 658.1625 - val_mae: 21.3843 - val_mse: 662.1851
Epoch 47/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 685.4198 - mae: 20.2897 - mse: 669.0028 - val_loss: 653.7343 - val_mae: 21.3449 - val_mse: 657.6456
Epoch 48/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 701.5966 - mae: 20.6767 - mse: 686.3491 - val_loss: 648.4091 - val_mae: 21.2529 - val_mse: 652.2877
Epoch 49/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 678.2482 - mae: 21.1009 - mse: 665.4862 - val_loss: 642.6116 - val_mae: 21.1423 - val_mse: 646.4748
Epoch 50/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 695.9203 - mae: 20.5178 - mse: 682.8566 - val_loss: 637.1818 - val_mae: 21.0552 - val_mse: 640.9892
Epoch 51/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 678.0592 - mae: 20.2903 - mse: 663.8317 - val_loss: 631.9290 - val_mae: 20.9763 - val_mse: 635.6680
Epoch 52/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 729.4705 - mae: 21.1296 - mse: 716.0181 - val_loss: 626.1664 - val_mae: 20.8727 - val_mse: 629.8683
Epoch 53/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 624.8073 - mae: 19.3278 - mse: 609.8587 - val_loss: 620.8671 - val_mae: 20.7956 - val_mse: 624.4874
Epoch 54/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 646.5231 - mae: 19.7286 - mse: 633.2775 - val_loss: 615.6303 - val_mae: 20.7232 - val_mse: 619.1567
Epoch 55/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 621.0331 - mae: 19.1164 - mse: 606.3734 - val_loss: 610.6844 - val_mae: 20.6603 - val_mse: 614.1026
Epoch 56/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 632.9469 - mae: 19.0451 - mse: 618.1815 - val_loss: 605.6520 - val_mae: 20.5873 - val_mse: 608.9783
Epoch 57/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 604.3569 - mae: 19.2102 - mse: 589.6671 - val_loss: 600.4417 - val_mae: 20.5043 - val_mse: 603.6890
Epoch 58/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 606.0801 - mae: 19.4735 - mse: 590.1766 - val_loss: 594.9202 - val_mae: 20.4109 - val_mse: 598.0968
Epoch 59/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 674.6667 - mae: 19.8161 - mse: 659.4501 - val_loss: 589.4034 - val_mae: 20.3175 - val_mse: 592.5053
Epoch 60/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 605.5357 - mae: 19.0682 - mse: 591.5666 - val_loss: 584.3049 - val_mae: 20.2413 - val_mse: 587.3049
Epoch 61/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 588.9374 - mae: 18.7950 - mse: 573.2072 - val_loss: 579.1965 - val_mae: 20.1708 - val_mse: 582.0954
Epoch 62/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 600.4180 - mae: 19.1727 - mse: 583.8657 - val_loss: 573.5798 - val_mae: 20.0743 - val_mse: 576.4054
Epoch 63/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 571.4789 - mae: 18.6082 - mse: 557.1839 - val_loss: 567.0450 - val_mae: 19.9291 - val_mse: 569.8579
Epoch 64/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 586.9166 - mae: 18.8777 - mse: 570.8711 - val_loss: 561.0787 - val_mae: 19.8064 - val_mse: 563.8549
Epoch 65/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 590.5322 - mae: 18.9607 - mse: 575.9197 - val_loss: 554.9014 - val_mae: 19.6725 - val_mse: 557.6520
Epoch 66/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 543.3912 - mae: 18.0259 - mse: 528.5292 - val_loss: 549.0470 - val_mae: 19.5533 - val_mse: 551.7519
Epoch 67/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 549.9990 - mae: 18.2299 - mse: 536.4832 - val_loss: 543.5844 - val_mae: 19.4549 - val_mse: 546.2140
Epoch 68/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 534.3226 - mae: 17.7803 - mse: 520.2534 - val_loss: 538.3687 - val_mae: 19.3669 - val_mse: 540.9081
Epoch 69/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 524.2202 - mae: 17.6844 - mse: 510.6124 - val_loss: 533.4833 - val_mae: 19.2864 - val_mse: 535.9271
Epoch 70/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 560.1623 - mae: 18.0334 - mse: 545.1251 - val_loss: 528.1306 - val_mae: 19.1825 - val_mse: 530.5051
Epoch 71/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 512.7339 - mae: 17.5499 - mse: 497.5250 - val_loss: 522.1185 - val_mae: 19.0466 - val_mse: 524.4611
Epoch 72/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 536.0077 - mae: 18.0777 - mse: 521.7362 - val_loss: 515.3058 - val_mae: 18.8744 - val_mse: 517.6566
Epoch 73/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 543.9917 - mae: 18.2739 - mse: 532.2925 - val_loss: 509.6407 - val_mae: 18.7519 - val_mse: 511.9383
Epoch 74/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 498.9126 - mae: 17.1789 - mse: 486.4869 - val_loss: 504.4792 - val_mae: 18.6516 - val_mse: 506.6884
Epoch 75/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 498.9419 - mae: 16.9361 - mse: 485.1379 - val_loss: 499.2326 - val_mae: 18.5457 - val_mse: 501.3540
Epoch 76/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 497.6572 - mae: 17.2125 - mse: 483.7888 - val_loss: 493.9214 - val_mae: 18.4387 - val_mse: 495.9464
Epoch 77/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 481.8527 - mae: 17.1633 - mse: 466.6866 - val_loss: 488.2953 - val_mae: 18.3136 - val_mse: 490.2493
Epoch 78/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 487.7524 - mae: 16.9176 - mse: 472.3710 - val_loss: 483.7028 - val_mae: 18.2248 - val_mse: 485.5562
Epoch 79/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 480.9921 - mae: 16.9920 - mse: 468.2575 - val_loss: 477.0353 - val_mae: 18.0536 - val_mse: 478.8772
Epoch 80/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 470.1606 - mae: 16.7160 - mse: 456.3624 - val_loss: 469.9681 - val_mae: 17.8616 - val_mse: 471.8190
Epoch 81/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 451.9859 - mae: 16.0340 - mse: 440.5867 - val_loss: 463.7012 - val_mae: 17.6956 - val_mse: 465.5353
Epoch 82/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 459.3307 - mae: 16.6549 - mse: 444.7310 - val_loss: 458.0677 - val_mae: 17.5547 - val_mse: 459.8501
Epoch 83/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 479.5816 - mae: 16.7392 - mse: 468.5044 - val_loss: 452.8948 - val_mae: 17.4305 - val_mse: 454.6013
Epoch 84/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 441.3228 - mae: 15.7927 - mse: 428.1316 - val_loss: 448.4078 - val_mae: 17.3282 - val_mse: 450.0150
Epoch 85/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 418.6978 - mae: 15.1416 - mse: 406.4257 - val_loss: 444.3689 - val_mae: 17.2345 - val_mse: 445.8782
Epoch 86/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 450.2900 - mae: 16.1076 - mse: 438.3808 - val_loss: 439.5246 - val_mae: 17.1060 - val_mse: 440.9811
Epoch 87/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 431.9310 - mae: 15.9829 - mse: 418.0289 - val_loss: 434.9044 - val_mae: 16.9837 - val_mse: 436.2955
Epoch 88/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 428.0606 - mae: 15.8841 - mse: 416.5483 - val_loss: 429.1478 - val_mae: 16.8177 - val_mse: 430.5237
Epoch 89/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 393.0312 - mae: 14.6127 - mse: 379.5073 - val_loss: 424.0719 - val_mae: 16.6719 - val_mse: 425.4153
Epoch 90/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 6ms/step - loss: 401.1909 - mae: 14.7422 - mse: 388.8247 - val_loss: 419.7145 - val_mae: 16.5493 - val_mse: 420.9957
Epoch 91/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 422.2583 - mae: 15.5166 - mse: 408.5646 - val_loss: 415.8507 - val_mae: 16.4548 - val_mse: 417.0475
Epoch 92/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 443.8898 - mae: 15.8156 - mse: 428.0425 - val_loss: 409.6369 - val_mae: 16.2631 - val_mse: 410.8427
Epoch 93/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 423.6766 - mae: 15.3180 - mse: 407.9467 - val_loss: 404.8575 - val_mae: 16.1247 - val_mse: 406.0381
Epoch 94/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 447.1212 - mae: 16.3846 - mse: 435.6866 - val_loss: 400.1184 - val_mae: 15.9864 - val_mse: 401.2701
Epoch 95/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 391.9873 - mae: 15.3155 - mse: 377.3471 - val_loss: 394.2315 - val_mae: 15.7917 - val_mse: 395.4008
Epoch 96/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 361.1278 - mae: 13.9063 - mse: 344.7204 - val_loss: 391.3076 - val_mae: 15.7265 - val_mse: 392.3937
Epoch 97/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 385.6114 - mae: 14.7795 - mse: 371.4785 - val_loss: 389.9957 - val_mae: 15.7227 - val_mse: 390.9541
Epoch 98/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 380.5091 - mae: 14.3100 - mse: 364.7888 - val_loss: 389.8226 - val_mae: 15.7976 - val_mse: 390.6163
Epoch 99/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 367.7597 - mae: 14.3185 - mse: 352.7252 - val_loss: 388.1194 - val_mae: 15.7902 - val_mse: 388.8055
Epoch 100/100
[1m8/8[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 410.1052 - mae: 15.2689 - mse: 396.5170 - val_loss: 382.8743 - val_mae: 15.6210 - val_mse: 383.5655
16. 위 딥러닝의 성능을 평가하려고 합니다.
Matplotlib 라이브러리를 활용해서 학습 mse와 검증 mse를 그래프로 표기하세요.
- 1개의 그래프에 학습 loss와 검증 loss 2가지를 모두 표기하세요.
- 위 2가지 각각의 범례를 'loss'와 'val_loss'로 표기하세요.
- 그래프의 타이틀은 'Model Loss'로 표기하세요.
- X축에는 'Epochs'라고 표시하고 Y축에는 "Loss'라고 표기하세요.
- 1개의 그래프에 학습 mse와 검증 mse 2가지를 모두 표기하세요.
- 위 2가지 각각의 범례를 'mse'와 'val_mse'로 표기하세요.
- 그래프의 타이틀은 'Model MSE'로 표기하세요.
- X축에는 'Epochs'라고 표시하고 Y축에는 "MSE'라고 표기하세요.
- 위 딥러닝 모델에 대해 검증 정답(y_valid)과 예측값(y_pred_dl)의 mae(Mean Absolute Error)를 구하고 dl_mae 변수에 저장하세요.
# 함수로 만들어서 사용합시다.
def dl_history_plot(history):
plt.figure(figsize=(16,4))
plt.subplot(1,2,1)
plt.plot(history['loss'], label='loss', marker = '.')
plt.plot(history['val_loss'], label='val_loss', marker = '.')
plt.ylabel('Loss')
plt.xlabel('Epochs')
plt.legend()
plt.grid()
plt.subplot(1,2,2)
plt.plot(history['mse'], label='mse', marker = '.')
plt.plot(history['val_mse'], label='val_mse', marker = '.')
plt.ylabel('MSE')
plt.xlabel('Epochs')
plt.legend()
plt.grid()
plt.show()
dl_history_plot(history)
y_pred_dl = model.predict(X_valid, verbose=1)
dl_mae = mean_absolute_error(y_valid, y_pred_dl)
print('DL MAE:', dl_mae)
WARNING:tensorflow:5 out of the last 9 calls to .one_step_on_data_distributed at 0x000001D878E3AF20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.
[1m1/1[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 36ms/step
DL MAE: 15.62097647882277
MAE와 MAPE 그리고 R2도 나타내세요
from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error, r2_score
pred = model.predict(X_valid)
print('MAE : {:.2f}'.format(mean_absolute_error(y_valid, pred)))
print('MAPE: {:.2f}'.format(mean_absolute_percentage_error(y_valid, pred)))
print('R2 : {:.4f}'.format(r2_score(y_valid, pred)))
[1m1/1[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 14ms/step
MAE : 15.62
MAPE: 0.68
R2 : 0.5179
'Machine Learning' 카테고리의 다른 글
1.회귀문제_3_따릉이 (0) | 2024.06.02 |
---|---|
1.회귀문제_2_보스턴 (0) | 2024.06.02 |
keras 모델학습 과정 안 보이게 하기, verbose=0 (0) | 2024.03.21 |
4.2 성능평가 - 분류 모델 성능 평가 (0) | 2024.03.12 |
4.1 성능평가 - 회귀 모델 성능 평가 (0) | 2024.03.12 |
Contents
소중한 공감 감사합니다