728x90
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense
from keras import optimizers
import numpy as np
# x_data, y_data 설정하고 상관계수 확인
x_data = [1.,2.,3.,4.,5.]
y_data = [1.2,2.0,3.0,3.5,5.5]
print('상관계수 : ', np.corrcoef([x_data, y_data]))
# 모델 입력, 컴파일
model = Sequential()
model.add(Dense(units = 1, input_dim = 1, activation = 'linear' ))
model.compile(optimizer = 'sgd', loss='mse', metrics= ['mse'])
model.fit(x_data, y_data, batch_size = 1, epochs= 100, verbose=2)
print(model.evaluate(x_data, y_data))
Dense의 주요 인자
units : 출력 뉴런의 수를 설정
input_dim : 입력 뉴런의 수를 설정
Activation : 활성화 함수를 설정 (linear, sigmoid, softmax, relu
compile의 주요 인자
optimizer (정규화기) : 최적화 알고리즘 설정 (adam, sgd, rmsprop, adagrad)
loss function (손실함수) : mse, categorical_crossentropy, binary_crossentropy
metric (평가지표) : 분류에서는 accuracy, 회귀에서는 mse, rmse, r2, mae, mspe, mape, msle
epochs : 학습 횟수
batch_size : 1epchs를 batch_size만큼 쪼개서 학습한다?
verbose : 상세한 정보를 내보낼것인가?
# 모델 예측, 설명력 확인
pred = model.predict(x_data)
print('pred:', pred.flatten())
print('read:', y_data)
from sklearn.metrics import r2_score
print('설명력:',r2_score(y_data, pred))
# 새로운 값 예측
new_x = [3.5, 9.0]
print('새로운 에측 결과:', model.predict(new_x).flatten())
# 예측 값 시각화
import matplotlib.pyplot as plt
plt.plot(x_data, y_data, 'ro', label='real')
plt.plot(x_data, pred, 'b-', label='pred')
plt.xlabel('w')
plt.ylabel('cost')
plt.show()
728x90
'데이터분석 > Tensorflow' 카테고리의 다른 글
TensorBoard (0) | 2022.05.19 |
---|---|
단순선형회귀모델 세 가지 방법으로 작성 (0) | 2022.05.19 |
Tensorflow : 단순선형회귀 모델 (0) | 2022.05.19 |
Tensorflow 와 Keras (0) | 2022.05.19 |
Tensorflow Basic (0) | 2022.05.18 |