AI/DeepLearning

딥러닝_선형회귀(Linear Regression), Sequential API, Functional API

oaho 2023. 2. 28. 10:42
반응형

 

선형회귀

 

 

 

=>  Input(shape=(3,))

      Dense(1)

 

 

🌟 sequential API 사용

model.add( keras.layers.Input(shape=(3,)))
model.add( keras.layers.Dense(1, activation='linear'))

 

 

 

🌟 Functional API 사용

input_layer(il) = keras.layers.Input(shape=(3,))

output_layer(ol) = keras.layers.Dense(1)(il)

 

 


 

 

1. 모듈 불러오기

import tensorflow as tf
from tensorflow import keras
import numpy as np

 

2. x, y 값 지정

x = np.array(range(20))
y = x * 2 - 1

 

3. 이미 만들어진 모델 있으면 지우기

keras.backend.clear_session()

 

 

< 모델링 >

 

4. 모델 선언 ⭐

model = keras.models.Sequential()

 

5. 모델 블록 조립 ⭐

Input(shape=(변수개수, ))

x.shape => (569, 30)이라면 Input(shape=(30, ))

model.add( keras.layers.Input(shape=(1,)))
model.add( keras.layers.Dense(1, activation='linear'))

선형회귀는 activation='linear' 생략 가능

 

 

6. 컴파일 ⭐

output layer activation : X (or linear)

loss : 'mse'

model.compile(loss='mse', optimizer='adam')

 


 

🌟 sequential API 사용해서 모델링 하면

keras.backend.clear_session()

# 레이어들을 사슬로 연결하 듯이 연결!
input_layer = keras.layers.Input(shape=(1,))
output_layer = keras.layers.Dense(1)(input_layer)

# 모델의 시작과 끝을 지정
model = keras.models.Model(inputs=input_layer, outputs=output_layer)

# 컴파일
model.compile(loss='mse', optimizer='adam')

 


7. 학습하기

model.fit(x, y, epochs=10, verbose=1)

epochs10번 학습

=> 결과 :

 

 

8. 예측하기

y_predict= model.predict(x)

 

 

 

 

 

 

반응형