1、一元线性回归
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
a = 2 # 权重
b = 1.5 # 偏置
# 设置随机种子
np.random.seed(5)
# 生成100个点,区间为-1到1
x_data = np.linspace(-1, 1, 100)
# y = x_data * a + b + 噪声
y_data = a * x_data + b + np.random.randn(*x_data.shape) * 0.2
# 画出散点图
plt.scatter(x_data, y_data)
# 想要学习到的线性函数 y = x_data * a + b
# plt.plot(x_data, x_data * a + b,color='red', linewidth=3)
plt.show()
# 定义训练数据的占位符 x为特征 y为标签
x = tf.placeholder('float', name='x')
y = tf.placeholder('float', name='y')
# 定义模型函数
def model(x, w, b):
return tf.multiply(x, w) + b
# 构建线性函数的斜率w
w = tf.Variable(0.5, name='w')
b = tf.Variable(0.0, name='b')
# 前向计算 y = w * x + b
pred = model(x, w, b)
# 使用均方差损失函数
loss_function = tf.reduce_mean(tf.square(y - pred))
# 使用梯度下降优化器