线性拟合读取100行100列的.csv数据使用交叉验证的代码,error_score='raise'来调试错误,并用均方误差,R平方评估性能并画图
时间: 2024-05-03 21:21:59 浏览: 159
以下是一个读取100行100列的.csv数据使用交叉验证的示例代码,以及使用均方误差和R平方评估性能并绘制图表的代码:
```python
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv', header=None)
# 准备数据
X = data.iloc[:, :-1] # 取前99列作为输入特征
y = data.iloc[:, -1] # 取最后一列作为输出结果
# 创建模型
model = LinearRegression()
# 交叉验证
scores = cross_val_score(model, X, y, cv=5, scoring='neg_mean_squared_error', error_score='raise')
# 输出均方误差
print('均方误差:', -np.mean(scores))
# 输出R平方
y_pred = model.fit(X, y).predict(X)
print('R平方:', r2_score(y, y_pred))
# 绘制图表
plt.scatter(y, y_pred)
plt.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
plt.xlabel('Measured')
plt.ylabel('Predicted')
plt.show()
```
注意,这只是一个示例代码,需要将其中的文件名、特征数量、交叉验证折数、评估指标等参数根据实际情况进行修改。同时,需要确保数据集的特征和标签已经正确划分,并且没有缺失值或异常值。
阅读全文