python代码示例梯度下降法对数据进行线性拟合并求出给定数据的预测值
时间: 2023-04-04 10:03:46 浏览: 123
可以使用以下代码实现梯度下降法对数据进行线性拟合并求出给定数据的预测值:
```python
import numpy as np
# 定义梯度下降函数
def gradient_descent(X, y, theta, alpha, num_iters):
m = len(y)
for i in range(num_iters):
h = np.dot(X, theta)
theta = theta - alpha * (1/m) * np.dot(X.T, h-y)
return theta
# 读取数据
data = np.loadtxt('data.txt', delimiter=',')
X = data[:, 0]
y = data[:, 1]
# 初始化参数
theta = np.zeros(2)
alpha = 0.01
num_iters = 1500
# 添加一列常数项
X = np.vstack((np.ones(len(X)), X)).T
# 进行梯度下降
theta = gradient_descent(X, y, theta, alpha, num_iters)
# 预测新数据
x_new = 3.5
y_new = np.dot([1, x_new], theta)
print('预测值为:', y_new)
```
其中,`data.txt` 是给定的数据文件,第一列是自变量,第二列是因变量。`alpha` 是学习率,`num_iters` 是迭代次数。最后输出的预测值即为给定自变量 `x_new` 对应的因变量预测值。
阅读全文