基于神经网络的线性回归房价预测代码
时间: 2024-04-21 12:05:32 浏览: 122
以下是一个基于神经网络的线性回归房价预测代码的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 构造数据集
X = np.linspace(-1, 1, 100)
y = 2 * X + np.random.randn(*X.shape) * 0.3
# 定义模型
class LinearRegression:
def __init__(self):
self.w = None
def fit(self, X, y, lr=0.01, epochs=1000):
# 初始化参数
self.w = np.random.randn(X.shape[1], 1)
losses = []
# 训练模型
for i in range(epochs):
y_pred = X.dot(self.w)
loss = np.mean((y_pred - y) ** 2)
losses.append(loss)
grad = X.T.dot(y_pred - y) / X.shape[0]
self.w -= lr * grad
return losses
def predict(self, X):
return X.dot(self.w)
# 数据预处理
X = X.reshape(-1, 1)
y = y.reshape(-1, 1)
X = np.hstack((X, np.ones(X.shape)))
model = LinearRegression()
# 模型训练
losses = model.fit(X, y)
# 可视化损失函数
plt.plot(losses)
plt.title('Loss')
plt.xlabel('Epochs')
plt.ylabel('MSE')
plt.show()
# 预测并可视化结果
y_pred = model.predict(X)
plt.scatter(X[:, 0], y)
plt.plot(X[:, 0], y_pred, color='red')
plt.title('Linear Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.show()
```
在这个示例中,我们首先构造了一个简单的数据集,然后定义了一个`LinearRegression`类来实现线性回归模型。`fit`函数用来训练模型,`predict`函数用来预测结果。最后,我们对模型进行可视化展示,包括损失函数和预测结果。
阅读全文