[텐서플로우] 선형회귀분석(Linear Regression) 기본 구조 파이썬 코드
2020. 4. 14. 11:13ㆍ노트/Python : 프로그래밍
★설치 환경
pip install tensorflow==1.15.0
tensorboard 2.0.2
tensorflow 1.15.0
tensorflow-estimator 2.0.1
버젼
tensorboard 1.15.0
tensorflow 1.15.0
tensorflow-estimator 1.15.1
Python 3.7.4
텐서플러우로 예측분석
데이터
코드
# 데이터 읽기
path = "C:\\Users\\student\\Desktop\\DY\\★ 데이터\\306. carsdata"
cars=pd.read_csv(path + "\\cars.csv")
# 사용할 데이터 칼럼 및 xtrain , ytrain
data=cars[[' cylinders',' hp']]
xtrain = list(data[' cylinders'])
ytrain = list(data[' hp'])
# w, b random 변수 설정
import tensorflow as tf
w = tf.Variable(tf.random_normal([1]))
b = tf.Variable(tf.random_normal([1]))
# 가설함수 설정
hf = xtrain*w + b
sess = tf.Session()
sess.run(tf.global_variables_initializer())
cost = tf.reduce_mean(tf.square(hf - ytrain)) # (예상값 - 실제값 ) 합의 제곱에 대한 평균
opt = tf.train.GradientDescentOptimizer(0.0001) # alpha 값
train = opt.minimize(cost) # 경사 하강 알고리즘
# cost , w, b 출력
sess.run(train)
print(sess.run(cost), sess.run(w), sess.run(b))
# 임의의 실린더 값 입력했을 때 예측값 출력
for x in [10,12,16]:
yhat = sess.run(w)[0] * x + sess.run(b)[0]
print("실린더가 {}일때 예상되는 hp값은 {}".format(x,yhat))
>>>
12264.211 [0.49276823] [0.22389925]
실린더가 10일때 예상되는 hp값은 5.151581525802612
실린더가 12일때 예상되는 hp값은 6.137117981910706
실린더가 16일때 예상되는 hp값은 8.108190894126892
코스트함수 시각화
# cost함수 그래프 시각화
xtrain = list(data[' cylinders'])
ytrain = list(data[' hp'])
W = tf.placeholder(tf.float32)
# 선형모델의 가설
hypothesis = xtrain * W
# 비용함수
cost = tf.reduce_mean(tf.square(hypothesis - ytrain))
# session 설정
sess = tf.Session()
# 비용함수 점찍기위한 함수
W_history = []
cost_history = []
for i in range(-30, 70):
curr_W = i
curr_cost = sess.run(cost, feed_dict={W: curr_W})
W_history.append(curr_W)
cost_history.append(curr_cost)
# Show the cost function
plt.plot(W_history, cost_history)
plt.show()
모델비교
2020/04/20 - [노트/Python : 프로그래밍] - [텐서플로우] 소프트맥스 회귀 (Softmax Regression) 분류 파이썬 코드
2020/04/18 - [노트/Python : 프로그래밍] - [텐서플로우] 다중 선형 회귀를 이용한 당뇨병 분류기 파이썬 코드
2020/04/17 - [노트/Python : 프로그래밍] - [텐서플로우] 다중회귀분석 (Multi-variable Linear Regression) 파이썬 코드
2020/04/16 - [노트/Python : 프로그래밍] - [텐서플로우] 로지스틱 회귀(Logistic Regression) 분류 파이썬 코드
'노트 > Python : 프로그래밍' 카테고리의 다른 글
[텐서플로우] 다중회귀분석 (Multi-variable Linear Regression) 파이썬 코드 (0) | 2020.04.17 |
---|---|
[텐서플로우] 로지스틱 회귀(Logistic Regression) 분류 파이썬 코드 (0) | 2020.04.16 |
[파이썬] 데이터변형 | 정규화와 표준화 (0) | 2020.04.14 |
[파이썬기초] 데이터 합치기(병합) (0) | 2020.04.13 |
[파이썬기초] 문자열(str) 데이터 다루기 (0) | 2020.04.13 |