使用梯度下降法优化线性回归模型参数并实现对波士顿房价进行预测python代码
时间: 2023-06-03 09:06:33 浏览: 150
基于线性回归实现波士顿房价预测的python源码大作业.zip
5星 · 资源好评率100%
以下是使用梯度下降法优化线性回归模型参数并实现对波士顿房价进行预测的 Python 代码:
```python
import numpy as np
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
# 加载波士顿房价数据集并进行标准化处理
boston = load_boston()
X = StandardScaler().fit_transform(boston.data)
y = boston.target.reshape(-1, 1)
# 定义梯度下降函数
def gradient_descent(X, y, theta, alpha, num_iters):
m = y.size
J_history = np.zeros(num_iters)
for i in range(num_iters):
h = X.dot(theta)
theta = theta - alpha * (1/m) * (X.T.dot(h-y))
J_history[i] = 1/(2*m) * np.sum((h-y)**2)
return (theta, J_history)
# 初始化模型参数
theta = np.zeros((X.shape[1]+1, 1))
alpha = 0.01
num_iters = 1000
# 在特征向量中加入偏置项
X = np.hstack((np.ones((X.shape[0], 1)), X))
# 调用梯度下降函数进行模型训练
theta, J_history = gradient_descent(X, y, theta, alpha, num_iters)
# 打印模型参数与损失值
print('模型参数:')
print(theta)
print('损失值:')
print(J_history[-1])
# 测试模型效果
test_data = StandardScaler().fit_transform(np.array([[0.1, 20, 6, 0, 0.4, 6, 50, 6, 4, 300, 16, 396, 20]]))
test_data = np.hstack((np.ones((1, 1)), test_data))
print('预测值:')
print(test_data.dot(theta))
```
注意:此代码仅供参考,真实数据建议根据实际情况进行调优和验证。
阅读全文