π μΌλΌμ€ μ°½μμμκ² λ°°μ°λ λ₯λ¬λ (νλμμ μλ , λ°ν΄μ , κΈΈλ²) μ°Έκ³
νκ·λ μ°μμ μΈ κ°μ μμΈ‘νλ κ²μ΄λ€.
보μ€ν΄ μ£Όν κ°κ²© λ°μ΄ν°μ μ 1970λ μ€λ° 보μ€ν΄ μΈκ³½ μ§μμ λ²μ£μ¨, μ§λ°©μΈμ¨ λ±μ ν¬ν¨ν λ°μ΄ν°μ μΌλ‘ μ΄ 506κ°μ λ°μ΄ν°ν¬μΈνΈλ₯Ό κ°μ§κ³ μλ€.
from keras.datasets import boston_housing
(train_data, train_targets), (X_test, y_test) = boston_housing.load_data()
κ° νΉμ±λ€μ μ€μΌμΌμ΄ μλ‘ λ€λ₯΄λ€. 0 ~ 1 μ¬μ΄μ λΉμ¨μ λνλ΄λ νΉμ±λ μκ³ 1 ~ 12 μ¬μ΄μ κ°μ κ°κ±°λ 1 ~ 100 μ¬μ΄μ κ°μ κ°λ νΉμ±λ μλ€. μ΄λ κ² μ€μΌμΌμ΄ λ€λ₯΄λ©΄ κ²½μ¬ νκ°λ²μ κ²½λ‘κ° μ€μΌμΌμ΄ ν° νΉμ±μ μν₯μ λ§μ΄ λ°κΈ° λλ¬Έμ νμ΅μ λ μ΄λ ΅κ² λ§λ λ€. λ°λΌμ νΉμ±μ μ κ·νν΄μ£Όμ΄μΌ νλ€. μ΄λ²μλ νμ€νλ₯Ό ν΅ν΄ νΉμ±μ μ κ·ν ν κ²μ΄λ€.
Standardization, νμ€νλ μ λ ₯ λ°μ΄ν°μ μλ κ° νΉμ±μ λν΄ νΉμ±μ νκ· μ λΉΌκ³ νμ€ νΈμ°¨λ‘ λλλ κ²μ΄λ€.
mean = train_data.mean(axis = 0)
std = train_data.std(axis = 0)
train_data = train_data - mean
train_data = train_data / std
X_test = X_test - mean
X_test = X_test / std
from sklearn.model_selection import train_test_split
X_train, X_valid, y_train, y_valid = train_test_split(train_data,
train_targets,
test_size = 0.2,
random_state = 2045)
from keras import models
from keras import layers
boston = models.Sequential(name = 'Regression')
boston.add(layers.Dense(64, activation = 'relu', input_shape = (13,)))
boston.add(layers.Dense(64, activation = 'relu'))
boston.add(layers.Dense(1))
boston.compile(loss = 'mse', optimizer = 'rmsprop', metrics = ['mae'])
λ§μ§λ§ μΈ΅μ νλμ μ λμ κ°κ³ νμ±ν ν¨μκ° μλ€. νλμ μ°μμ μΈ κ°μ μμΈ‘νλ μ€μΉΌλΌ νκ·λ₯Ό μν ꡬμ±μ΄λ€.
mseλ νκ· μ κ³± μ€μ°¨λ‘ νκ· λ¬Έμ μμ λ리 μ¬μ©λλ μμ€ν¨μμ΄λ€. νλ ¨νλ λμ λͺ¨λν°λ§μ μν΄ mae, νκ· μ λ μ€μ°¨λ₯Ό μΈ‘μ νλ€.
history = boston.fit(X_train, y_train,
epochs = 500,
batch_size = 1,
validation_data = (X_valid, y_valid))
test_mse_score, test_mae_score = boston.evaluate(X_test, y_test)