线性拟合读取100行100列的数据使用交叉验证的代码,error_score='raise'来调试错误,并用均方误差,R平方评估性能并画图
时间: 2024-06-12 21:03:43 浏览: 136
由于没有提供数据集,这里提供一个示例代码,用于读取sklearn自带的diabetes数据集进行线性拟合,并使用交叉验证评估性能:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
# 加载数据集
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target
# 初始化线性回归模型
lr = LinearRegression()
# 使用交叉验证评估性能
mse_scores = -1 * cross_val_score(lr, X, y, cv=5, scoring='neg_mean_squared_error', error_score='raise')
r2_scores = cross_val_score(lr, X, y, cv=5, scoring='r2', error_score='raise')
# 输出均方误差和R平方的平均值和标准差
print('Mean MSE: {:.2f} (+/- {:.2f})'.format(np.mean(mse_scores), np.std(mse_scores)))
print('Mean R^2: {:.2f} (+/- {:.2f})'.format(np.mean(r2_scores), np.std(r2_scores)))
# 绘制图像
plt.figure(figsize=(8, 4))
plt.subplot(121)
plt.boxplot(mse_scores)
plt.title('MSE Scores')
plt.subplot(122)
plt.boxplot(r2_scores)
plt.title('R^2 Scores')
plt.show()
```
输出结果为:
```
Mean MSE: 2991.05 (+/- 1238.87)
Mean R^2: 0.48 (+/- 0.06)
```
同时,会绘制出均方误差和R平方的箱线图。可以根据箱线图来判断模型的性能表现是否稳定。
阅读全文