¾ÕÀå¿¡¼ Äɶ󽺸¦ ±×´ë·Î ¹«ÀÛÁ¤ µû¶ó ÇßÁö¸¸ ½ÇÁ¦°ª°ú ¿¹Ãø°ªÀÇ Â÷ÀÌ°¡ ³Ê¹« Å©°Ô ³ª¿Ô´Ù. ¹«ÀÛÁ¤ µû¶óÇÑ °Í - keras basics :tutorial04.html ºñ½ÁÇÑ°ª Ãâ - keras basics :tutorial05.html À̹øÀå¿¡¼´Â Á¤È®µµ¸¦ ³ô¿© º¸ÀÚ. Me 1. µ¥ÀÌÅÍ Àüó¸® 2. ¸ðµ¨ ±¸¼º 3. ¸ðµ¨ ÈÆ·Ã 4. ¸ðµ¨ Æò°¡ ¿¹Ãø # 1. µ¥ÀÌÅÍ Àüó¸®
from keras.models import Sequential from keras.layers import Dense import numpy as np x = np.linspace(1, 10, 10) y = x # 2. ¸ðµ¨ ±¸¼º model = Sequential() model.add(Dense(10, input_dim=1, activation='linear')) model.add(Dense(10, activation='linear')) model.add(Dense(8, activation='linear')) model.add(Dense(1)) # 3. ¸ðµ¨ ÈÆ·Ã model.compile(optimizer='adam', loss='mse', metrics=['mae']) model.fit(x, y, epochs=100, verbose=0) # 4. ¸ðµ¨ Æò°¡ ¿¹Ãø loss_met = model.evaluate(x, y, batch_size=1) print(loss_met) predict = model.predict(x) print('y', y, ' predict: \n', predict) # RMSE ±¸Çϱâ from sklearn.metrics import mean_squared_error def RMSE(y_test, y_predict): return np.sqrt(mean_squared_error(y_test, y_predict)) print('RMSE : ', RMSE(y, predict)) # R2 ±¸Çϱâ from sklearn.metrics import r2_score r2_predict = r2_score(y, predict) print('R2 : ', r2_predict) 1. µ¥ÀÌÅÍ Àüó¸®models, layers ¶óÀ̺귯¸®¿¡¼ Sequential, Dense ¿ÀºêÁ§Æ®¸¦ ÀÓÆ÷Æ® ÇÑ´Ù.numpyµµ ÀÓÆ÷Æ® ÇÑ´Ù. numpy linspace¸¦ ÀÌ¿ëÇØ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÑ´Ù. x = np.linspace(1, 10, 10) 2. ¸ðµ¨ ±¸¼ºmodel = Sequential()
model.add(Dense(10, input_dim=1, activation='linear')) model.add(Dense(10, activation='linear')) model.add(Dense(8, activation='linear')) model.add(Dense(1)) activationÀ» 'relu'¿¡¼ 'linear'·Î º¯°æÇÑ´Ù. 3. ¸ðµ¨ ÈÆ·Ãmodel.compile(optimizer='adam', loss='mse', metrics=['mae'])
model.fit(x, y, epochs=100, verbose=0) Metrics¿¡¼ 'accuracy'´Â ºÐ·ù(Classification)¸¦ ÃøÁ¤ÇÒ¶§ »ç¿ëµÈ´Ù. ¼±Çü Ç׸ñÀÇ ÃøÁ¤¿¡´Â ÀûÀýÇÏÁö ¾Ê´Ù. ¼±Çü Ç׸ñÀÇ ÃøÁ¤¿¡´Â Æò±Õ Àý´ë ¿ÀÂ÷(Mean Absolute Error, MAE)¸¦ »ç¿ëÇÑ´Ù. ÀÌ´Â ½ÇÁ¦°ª°ú ¿¹Ãø°ª »çÀÌÀÇ Â÷À̸¦ ³ªÅ¸³½´Ù. °ªÀÌ ÀÛÀ»¼ö·Ï ÁÁ´Ù 4. ¸ðµ¨ Æò°¡ ¿¹Ãøloss_met = model.evaluate(x, y, batch_size=1)
print(loss_met) predict = model.predict(x) print('y', y, ' predict: \n', predict) °á°ú) 10/10 [==============================] - 0s 3ms/step - loss: 0.0059 - mae: 0.0659 ÄÚµå º¯°æ½Ã loss, mae, RMSE, R2 °ªÀÇ º¯È¸ðµ¨±¸¼º¿¡¼ Àº´ÐÃþÀÇ È°¼ºÈ ÇÔ¼ö¸¦ ÁöÁ¤ ¾ÈÇÒ¶§# 2. ¸ðµ¨ ±¸¼º
model = Sequential() model.add(Dense(10, input_dim=1, activation='linear')) model.add(Dense(10)) model.add(Dense(8)) model.add(Dense(1)) loss: 0.0546 - mae: 0.1946 # 2. ¸ðµ¨ ±¸¼º
model = Sequential() model.add(Dense(10, input_dim=1, activation='relu')) model.add(Dense(10, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='relu')) loss: 1.9510 - mae: 1.1420¸ðµ¨±¸¼º¿¡¼ Àº´ÐÃþÀÇ 'relu' È°¼ºÈ ÇÔ¼ö¸¦ ÁöÁ¤ ¾ÈÇÒ¶§ # 2. ¸ðµ¨ ±¸¼º
model = Sequential() model.add(Dense(10, input_dim=1, activation='relu')) model.add(Dense(10)) model.add(Dense(8)) model.add(Dense(1)) loss: 0.1180 - mae: 0.2844 # 3. ¸ðµ¨ ÈÆ·Ã
...... model.fit(x, y, epochs=1000, verbose=0) ¿¡Æ÷Å©¸¦ 100¿¡¼ 200À¸·Î ¿Ã¸®¸é È¿°ú°¡ Àִ°ÇÁö, ¾ø´Â°ÇÁö ¾Ö¸ÅÇß´Ù. 1000À¸·Î ¿Ã¸®¸é È®½ÇÇÏ°Ô È¿°ú°¡ ³ªÅ¸³µ´Ù. Á¦ÀÏ ÁÁÀº ÄÉÀ̽ºÀÇ °á°úÀÌ´Ù. loss: 3.0484e-09 - mae: 4.6343e-05 Âü°í) Metrics¿¡¼ 'accuracy'´Â ºÐ·ù(Classification)¸¦ ÃøÁ¤ÇÒ¶§ »ç¿ëµÈ´Ù. ¼±Çü Ç׸ñÀÇ ÃøÁ¤¿¡´Â ÀûÀýÇÏÁö ¾Ê´Ù. https://stackoverflow.com/questions/51181393/simple-linear-regression-using-keras Keras Classification Metrics https://machinelearningmastery.com/custom-metrics-deep-learning-keras-python/ |