TensorFlow深度学习作业一----多元回归

下表是某种商品的需求量(y,吨)、价格(x1,元/千克)和消费者收入(x2,元)观测值。

序号

X1

X2

y

1

5

1000

100

2

7

600

75

3

6

1200

80

4

6

500

70

5

8

30

50

6

7

400

65

7

5

1300

90

8

4

1100

100

9

3

1300

110

10

9

300

60

请用线性回归模型实现对如下数据的预测:

序号

X1

X2

y

1

8

900

 

2

7

1000

 

3

5

900

 

4

4

1500

 

5

8

130

 

要预测的为表2的y值

import tensorflow as tf
import numpy as np
import pylab as plt

x1 = np.float32([5,7,6,6,8,7,5,4,3,9])
x2 = np.float32([1000,600,1200,500,30,400,1300,1100,1300,300])
y1 = np.float32([100,75,80,70,50,65,90,100,110,60])
plt.scatter(x1,y1)
#tf.truncated_normal()产生正态分布的随机数
w1 = tf.Variable(tf.truncated_normal([]),name = 'w1')
w2 = tf.Variable(tf.truncated_normal([]),name = 'w2')
b = tf.Variable(tf.truncated_normal([]),name = 'b')

#两个矩阵中的元素对应相乘
price = tf.multiply(w1,x1) + tf.multiply(w2,x2) + b

loss = tf.reduce_mean(tf.square(price - y1))

optimizer = tf.train.AdamOptimizer(0.2)

train = optimizer.minimize(loss)

init = tf.global_variables_initializer()

sess = tf.Session()
sess.run(init)
for i in range(20000):
    sess.run(train)
    if i % 1000 == 0:
        print('loss:',sess.run(loss))
w1_v,w2_v,b_v = sess.run([w1,w2,b])
sess.close()
yu_x1 = np.float32([8,7,5,4,8])
yu_y1 = np.float32([900,1000,900,1500,130])
print("w1_v:",w1_v,"w2_v:",w2_v,"b_v:",b_v)
print("函数表达式为:y = ",w1_v,"×x1+",w2_v ,"×x2+",b_v)
for i in range(5):
    yu_y = yu_x1[i]*w1_v + yu_y1[i]*w2_v + b_v
    print(yu_y)
y = w1_v * x1 + w2_v + b_v
plt.plot(x1,y)
plt.show()

输出:

loss: 427720.06
loss: 138.73581
loss: 121.563866
loss: 97.33757
loss: 70.15316
loss: 47.760784
loss: 37.459503
loss: 33.808277
loss: 31.81664
loss: 31.200138
loss: 30.957703
loss: 30.863361
loss: 30.82673
loss: 30.822744
loss: 30.806988
loss: 30.804804
loss: 30.803982
loss: 30.805294
loss: 32.933388
loss: 30.803446
w1_v: -6.4932446 w2_v: 0.016316965 b_v: 106.33415
函数表达式为:y =  -6.4932446 ×x1+ 0.016316965 ×x2+ 106.33415
预测的y值为:
69.07346
77.1984
88.55319
104.836624
56.5094

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值