线性回归 w b 代码
时间: 2023-09-04 07:04:14 浏览: 115
线性回归是一种常用的回归分析方法,可以用来建立输入变量和输出变量之间的线性关系模型。其数学模型可以表示为 y = wx + b,其中w是输入变量x的权重系数,b是偏置项,y是输出变量的预测值。
下面是一个实现简单线性回归的代码示例:
```python
import numpy as np
# 输入数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])
# 计算x和y的均值
mean_x = np.mean(x)
mean_y = np.mean(y)
# 根据公式计算w和b
w = np.sum((x - mean_x) * (y - mean_y)) / np.sum((x - mean_x) ** 2)
b = mean_y - w * mean_x
# 输出结果
print("权重系数 w:", w)
print("偏置项 b:", b)
```
这段代码首先导入了numpy库,并初始化了输入数据x和对应的输出数据y。接下来,计算了x和y的均值mean_x和mean_y。然后,根据线性回归的公式计算了权重系数w和偏置项b。
最后,通过打印输出可以看到计算得到的权重系数w和偏置项b的结果。
需要注意的是,这只是一个简单的线性回归示例代码,真实的应用中可能需要考虑更多的因素和处理更多的数据。
相关问题
tensorflow线性回归代码
以下是一个使用 TensorFlow 实现线性回归的示例代码:
```python
import tensorflow as tf
import numpy as np
# 生成训练数据
x_train = np.linspace(-1, 1, 101)
y_train = 2 * x_train + np.random.randn(*x_train.shape) * 0.33
# 构建模型
X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
w = tf.Variable(0.0, name="weights")
b = tf.Variable(0.0, name="bias")
Y_pred = tf.add(tf.multiply(X, w), b)
# 定义损失函数
cost = tf.reduce_mean(tf.square(Y - Y_pred))
# 定义优化器
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost)
# 训练模型
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for epoch in range(100):
for x, y in zip(x_train, y_train):
sess.run(optimizer, feed_dict={X: x, Y: y})
if epoch % 10 == 0:
cost_val = sess.run(cost, feed_dict={X: x_train, Y: y_train})
print("Epoch:", epoch, "Cost:", cost_val)
# 输出训练结果
w_val, b_val = sess.run([w, b])
print("W:", w_val, "B:", b_val)
```
该代码首先生成了一些随机的训练数据,然后定义了一个简单的线性模型,并使用梯度下降优化器来最小化损失函数。最后,使用 TensorFlow 的会话来训练模型并输出结果。
paddle线性回归预测代码
以下是使用PaddlePaddle实现的线性回归预测代码:
```python
import paddle
import numpy as np
# 定义数据
x_data = np.array([[1.0], [2.0], [3.0], [4.0], [5.0]])
y_data = np.array([[2.0], [4.0], [6.0], [8.0], [10.0]])
# 定义网络结构
x = paddle.to_tensor(x_data)
y = paddle.to_tensor(y_data)
w = paddle.create_parameter(shape=[1, 1], dtype='float32', default_initializer=paddle.nn.initializer.Constant(0.0))
b = paddle.create_parameter(shape=[1], dtype='float32', default_initializer=paddle.nn.initializer.Constant(0.0))
# 定义损失函数
def cost(x, y, w, b):
y_pred = paddle.matmul(x, w) + b
return paddle.mean(paddle.square(y_pred - y))
# 定义优化器
optimizer = paddle.optimizer.SGD(learning_rate=0.01)
# 训练模型
for i in range(1000):
loss = cost(x, y, w, b)
loss.backward()
optimizer.step()
optimizer.clear_grad()
if i % 100 == 0:
print('Epoch:{}, Loss:{}'.format(i, loss.numpy()))
# 预测结果
x_test = np.array([[6.0], [7.0], [8.0]])
y_test = paddle.matmul(paddle.to_tensor(x_test), w) + b
print('Prediction:', y_test.numpy())
```
该代码中,首先定义了数据集,然后定义了线性回归模型的网络结构,包括权重w和偏置b。接着,定义了损失函数和优化器,并在循环中进行训练,每100轮输出一次损失值。最后,用训练好的模型对新的数据进行预测。
阅读全文