[텐서플로우] 다중회귀분석 (Multi-variable Linear Regression) 파이썬 코드
2020. 4. 17. 09:40ㆍ노트/Python : 프로그래밍
★실행 환경
tensorboard 1.15.0 Python 3.7.4
|
가설함수
$H(x_1,x_2) = w_1x_1 + w_2x_2 + b $
$H(x) = W^T X$
비용함수
$cost(W,b) = { 1 \over m} \sum_{i=1}^m (H(x^(i))-y^(i))^2 $
예제 데이터
x1data = [73,93,90,95,72] # 모의고사 점수
x2data = [80,88,92,98,66] # 모의고사 점수
x3data = [75,92,90,100,70] # 모의고사 점수
ydata = [152,185,180,195,140] # 수능 점수
변수 선언
x1 = tf.placeholder(tf.float32)
x2 = tf.placeholder(tf.float32)
x3 = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
w1 = tf.Variable(tf.random_normal([1]))
w2 = tf.Variable(tf.random_normal([1]))
w3 = tf.Variable(tf.random_normal([1]))
b = tf.Variable(tf.random_normal([1]))
가설함수 및 비용함수 정의 후 트레이닝
# 가설함수
hf = x1*w1 + x2 * w2 + x3 * w3 + b
# 비용함수
cost = tf.reduce_mean(tf.square( hf - y))
# 트레이닝
opt = tf.train.GradientDescentOptimizer(1e-5)
train = opt.minimize(cost)
트레이닝 결과
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for step in range(2001):
cv, hfv, _ = sess.run([cost, hf, train], feed_dict={x1:x1data, x2:x2data, x3:x3data , y:ydata})
if step%200==0:
print(step,"cost:",cv, "\n prediction:",hfv)
>>>
0 cost: 90945.16
prediction: [-113.759026 -138.50868 -136.33804 -150.4062 -105.08135 ]
200 cost: 4.6141977
prediction: [153.92111 182.20943 183.0842 193.7376 139.3021 ]
400 cost: 4.3903937
prediction: [153.81433 182.28526 183.04729 193.7235 139.38766]
600 cost: 4.186384
prediction: [153.71259 182.35735 183.01184 193.71077 139.46892]
800 cost: 4.0003786
prediction: [153.6156 182.42583 182.97781 193.69928 139.546 ]
1000 cost: 3.830584
prediction: [153.52313 182.49092 182.94513 193.68901 139.61917]
1200 cost: 3.675536
prediction: [153.43495 182.55275 182.91373 193.67986 139.6886 ]
1400 cost: 3.5337787
prediction: [153.35092 182.61153 182.88353 193.67181 139.75449]
1600 cost: 3.404105
prediction: [153.27072 182.66733 182.85448 193.66475 139.81697]
1800 cost: 3.285336
prediction: [153.19427 182.72038 182.82654 193.65869 139.87628]
2000 cost: 3.1764889
prediction: [153.12132 182.77075 182.79964 193.65352 139.93251]
모델비교
2020/04/20 - [노트/Python : 프로그래밍] - [텐서플로우] 소프트맥스 회귀 (Softmax Regression) 분류 파이썬 코드
2020/04/18 - [노트/Python : 프로그래밍] - [텐서플로우] 다중 선형 회귀를 이용한 당뇨병 분류기 파이썬 코드
2020/04/14 - [노트/Python : 프로그래밍] - [텐서플로우] 선형회귀분석(Linear Regression) 기본 구조 파이썬 코드
2020/04/16 - [노트/Python : 프로그래밍] - [텐서플로우] 로지스틱 회귀(Logistic Regression) 분류 파이썬 코드
'노트 > Python : 프로그래밍' 카테고리의 다른 글
[파이썬] 데이터변형 | 이항변수화 , 이산화 (0) | 2020.04.17 |
---|---|
[케라스] Keras 모델 생성 기본 구조 (0) | 2020.04.17 |
[텐서플로우] 로지스틱 회귀(Logistic Regression) 분류 파이썬 코드 (0) | 2020.04.16 |
[텐서플로우] 선형회귀분석(Linear Regression) 기본 구조 파이썬 코드 (0) | 2020.04.14 |
[파이썬] 데이터변형 | 정규화와 표준화 (0) | 2020.04.14 |