-
TensorFlow 기초 10 - 선형회귀분석 예제(예측, 결정계수)TensorFlow 2022. 11. 30. 10:10
import tensorflow as tf from keras.models import Sequential from keras.layers import Dense from keras import optimizers import numpy as np x_data = [1.,2.,3.,4.,5.] # feature y_data = [1.2,2.0,3.0,3.5,5.5] # label print('상관계수 :', np.corrcoef([x_data, y_data])) # 0.97494708 model = Sequential() model.add(Dense(units=1, input_dim=1, activation='linear')) model.compile(optimizer='sgd', loss='mse', metrics=['mse']) # MSE(Mean Squared Error) = 평균 제곱 오차, 연속형 데이터를 사용할 때 주로 사용 (주식 가격 예측 등) model.fit(x_data, y_data, batch_size=1, epochs=100, verbose=0) print(model.evaluate(x_data, y_data)) pred = model.predict(x_data) print('예측값 :', pred.flatten()) print('실제값 :', y_data) # 결정계수(설명력, R2) from sklearn.metrics import r2_score print('결정계수(설명력) :', r2_score(y_data, pred)) # 0.9499884 import matplotlib.pyplot as plt plt.plot(x_data, y_data, 'ro') plt.plot(x_data, pred, 'b') plt.show() # 새로운 값으로 예측 new_x = [1.5, 2.5, 3.3] print('예측결과 :', model.predict(new_x).flatten()) <console> 상관계수 : [[1. 0.97494708] [0.97494708 1. ]] 1/1 [==============================] - ETA: 0s - loss: 0.1144 - mse: 0.1144 1/1 [==============================] - 0s 125ms/step - loss: 0.1144 - mse: 0.1144 [0.1144152283668518, 0.1144152283668518] 1/1 [==============================] - ETA: 0s 1/1 [==============================] - 0s 71ms/step 예측값 : [1.0985825 2.1144216 3.130261 4.1461 5.161939 ] 실제값 : [1.2, 2.0, 3.0, 3.5, 5.5] 결정계수(설명력) : 0.9466943593865802 1/1 [==============================] - ETA: 0s 1/1 [==============================] - 0s 29ms/step 예측결과 : [1.6065022 2.6223412 3.4350126]
tensorflow에서는 결정계수를 구하는 함수가 없으므로 sklearn을 활용하여 r2_score 함수를 사용하여야한다.
실제값과 예측값의 시각화(추세선) MSE(Mean Squared Error) = 평균 제곱 오차, 연속형 데이터를 사용할 때 주로 사용 (주식 가격 예측 등)
'TensorFlow' 카테고리의 다른 글
단순선형회귀 방법 1, 방법 2 예제(Sequential api, Function api) (0) 2022.11.30 TensorFlow 기초 11 - 단순선형회귀모델 작성 : 방법 3가지(다중 입출력 모델) (0) 2022.11.30 TensorFlow 기초 9 - 선형회귀 모형 작성 = 수식 사용(Keras 없이 tensorflow만 사용) - GradientTape (0) 2022.11.29 TensorFlow 기초 8 - cost와 w(기울기) 구하기(함수 사용 x - 원리 이해) (0) 2022.11.29 TensorFlow 기초 7 - Keras XOR(복수의 뉴런(노드)를 사용) (0) 2022.11.29