ValueError:找到的数组的样本数不一致

2024-04-25 16:35:18 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

import pandas as pa
from sklearn.linear_model import Perceptron
from sklearn.metrics import accuracy_score

def get_accuracy(X_train, y_train, y_test):
    perceptron = Perceptron(random_state=241)
    perceptron.fit(X_train, y_train)
    result = accuracy_score(y_train, y_test)
    return result

test_data = pa.read_csv("C:/Users/Roman/Downloads/perceptron-test.csv")
test_data.columns = ["class", "f1", "f2"]
train_data = pa.read_csv("C:/Users/Roman/Downloads/perceptron-train.csv")
train_data.columns = ["class", "f1", "f2"]

accuracy = get_accuracy(train_data[train_data.columns[1:]], train_data[train_data.columns[0]], test_data[test_data.columns[0]])
print(accuracy)

我不明白为什么会出现这样的错误:

^{pr2}$

我想通过这种方法得到准确度,通过得到这种类型的误差。我在谷歌上搜索,找不到任何可以帮助我的东西。谁能告诉我发生了什么?在


Tags: columnscsvfromtestimportdatagettrain
1条回答
网友
1楼 · 发布于 2024-04-25 16:35:18

sklearn.metrics.accuracy_score()接受y_truey_pred参数。也就是说,对于同一个数据集(可能是测试集),它希望知道实际情况和模型预测的值。这将允许它评估与假设的完美模型相比,您的模型的性能如何。在

在代码中,您将为两个不同的数据集传递真正的结果变量。这些结果都是真实的,决不能反映模型正确分类观测值的能力!在

更新您的get_accuracy()函数也将X_test作为参数,我认为这更符合您的意图:

def get_accuracy(X_train, y_train, X_test, y_test):
    perceptron = Perceptron(random_state=241)
    perceptron.fit(X_train, y_train)
    pred_test = perceptron.predict(X_test)
    result = accuracy_score(y_test, pred_test)
    return result

相关问题 更多 >