import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.linear_model import LinearRegression #1.加载数据 data = pd.read_csv(r"E:\winequality-red.csv") data = np.array(data) x = data[:,0:11] y = data[:,-1] #2.划分训练集和测试集 train_x,test_x,train_y,test_y=train_test_split(x,y,test_size=0.3) #3.构建分类模型 model = LinearRegression() #4.训练模型 model.fit(train_x,train_y) #5.预测 test_y_pre = model.predict(test_x) #6.评估模型 print(accuracy_score(test_y_pre,test_y)) 为什么这段代码报错
时间: 2023-12-24 16:17:38 浏览: 92
用pandas划分数据集实现训练集和测试集
5星 · 资源好评率100%
这段代码中使用了 `accuracy_score` 函数来评估线性回归模型的准确率,但是 `accuracy_score` 函数是用来评估分类模型的准确率,无法用于评估回归模型的准确率。因此,这段代码会报错。
如果要评估线性回归模型的性能,可以使用均方误差(MSE)、平均绝对误差(MAE)或 R2 分数等指标来评估。
以下是使用 MSE 来评估模型性能的代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
# 1.加载数据
data = pd.read_csv(r"E:\winequality-red.csv")
data = np.array(data)
x = data[:, 0:11]
y = data[:, -1]
# 2.划分训练集和测试集
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.3)
# 3.构建模型
model = LinearRegression()
# 4.训练模型
model.fit(train_x, train_y)
# 5.预测
test_y_pre = model.predict(test_x)
# 6.评估模型
mse = mean_squared_error(test_y, test_y_pre)
print("MSE:", mse)
```
在这个示例中,我们使用了 `mean_squared_error` 函数来计算均方误差(MSE),并输出了评估结果。可以根据需要选择其他评估指标。
阅读全文