帮我在notebook里写出符合以下条件 的代码 :针对波斯顿房价,使用第一个特征实现线性回归模型,输出loss曲线,并使用至少三个指标评价模型性能,输出性能表格。
时间: 2024-10-25 22:18:48 浏览: 10
基于机器学习-sklearn实现线性回归模型对波士顿房价进行预测+源代码+文档说明+流程图
5星 · 资源好评率100%
在Jupyter Notebook中,你可以使用Python的scikit-learn库来实现这个任务。首先,你需要安装必要的库,如果还没有的话,可以使用`!pip install pandas sklearn matplotlib seaborn`命令。
下面是一个简单的示例代码,展示如何完成这个任务:
```python
import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score, explained_variance_score
import matplotlib.pyplot as plt
import seaborn as sns
# 加载波士顿房价数据集
boston = load_boston()
X = boston.data[:, 0] # 使用第一个特征作为输入
y = boston.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建并训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 预测并计算损失
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
evs = explained_variance_score(y_test, y_pred)
print("Performance Metrics:")
print(f"Mean Squared Error (MSE): {mse}")
print(f"R^2 Score: {r2}")
print(f"Explained Variance Score: {evs}")
# 绘制Loss曲线
plt.figure(figsize=(8, 6))
plt.plot(model.losses_, label='Training Loss')
plt.xlabel('Iterations')
plt.ylabel('Loss')
plt.legend()
plt.title('Linear Regression Training Loss Curve')
plt.grid(True)
plt.show()
# 性能表格
metrics_table = pd.DataFrame({
'Model': ['Linear Regression'],
'MSE': [mse],
'R2 Score': [r2],
'Explained Variance Score': [evs]
})
print("\nPerformance Table:")
print(metrics_table)
```
这段代码首先加载波士顿房价数据,然后选择第一个特征作为自变量,其余特征作为因变量。它训练了一个线性回归模型,计算了预测误差相关的几个评估指标(如MSE、R²和解释方差分数),并将它们可视化以及放入表格中。
阅读全文