在python中利用梯度下降法实现线性回归
时间: 2024-12-06 19:21:33 浏览: 13
机器学习 之 梯度下降
在Python中,可以使用梯度下降算法来实现线性回归模型。这是一种迭代优化方法,用于最小化代价函数(通常是均方误差),以找到最优的模型参数(即斜率和截距)。以下是使用Python的sklearn库以及手动实现的简单步骤:
### 使用sklearn库实现:
```python
from sklearn.linear_model import LinearRegression
import numpy as np
# 假设你有数据 X (特征) 和 y (目标)
X = ... # 输入特征矩阵
y = ... # 目标变量
# 创建并拟合模型
model = LinearRegression()
model.fit(X, y)
# 梯度下降在这里由库自动处理
```
### 手动实现梯度下降(批量梯度下降):
```python
def gradient_descent(X, y, theta, alpha, num_iters):
m = len(y)
X_b = add_intercept_column(X)
for _ in range(num_iters):
predictions = np.dot(X_b, theta)
error = predictions - y
gradient = (1/m) * np.dot(X_b.T, error)
# 更新参数theta
theta -= alpha * gradient
return theta
# 辅助函数添加截距列
def add_intercept_column(X):
return np.c_[np.ones((m, 1)), X]
# 示例参数设置
X = ... # 同上
y = ... # 同上
theta = np.zeros(2) # 初始参数
alpha = 0.01 # 学习率
num_iters = 1000 # 迭代次数
theta = gradient_descent(X, y, theta, alpha, num_iters)
```
记得在实际应用中,你需要先对数据进行预处理,如归一化、缺失值处理等,并选择合适的学习率和迭代次数。
阅读全文