UOMOP

배치 경사 하강법 using keras (boston) 본문

Ai/DL

배치 경사 하강법 using keras (boston)

Happy PinGu 2022. 2. 1. 18:34

1. 데이터 불러와서 feature, target 분리하기

import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from sklearn.datasets import load_boston
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
from tensorflow.keras.optimizers import Adam

boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns = boston["feature_names"])
feature_df = boston_df[["RM", "LSTAT"]]
target_df  = boston.target

2. feature 전처리 (Scaling)

mms = MinMaxScaler()

scaled_feature_df = mms.fit_transform(feature_df)

3. model 생성 및 layer 추가

model = Sequential()

model.add(Dense(1, input_shape = (2, ), activation = None, kernel_initializer = "zeros", 
                                                                           bias_initializer = "ones"))
input_shape : 특성이 2가지 이므로 특성에 대한 data 2개가 입력이 될 것이다. 
activation    : '분류' 확률로 바꿔줘야해서 sigmoid, unit step, tanh 등을 사용. 해당 예제에서는 사용 안함.
kernel_initializer : 초기 선형식의 가중치(weight)를 설정
bias_initializer : 초기 선형식의 절편(bias)를 설정

4. 모델 설정

model.compile(optimizer = Adam(learning_rate = 0.01), loss = "mse", metrics = ["mse"])
최적화 방법, 손실함수, 성능지표 등을 설정

5. 모델 훈련

model.fit(scaled_feature_df, target_df, epochs = 1000)


6. 위 모델로 에측 진행

predict = model.predict(scaled_feature_df)

boston_df["PRICE"] = boston.target
boston_df["PREDICT_using_keras"] = predict

 

 

 

 

 

 

 

 

 

 

Comments