gpt4 book ai didi

python - sklearn 上的分类报告是否要求输入 x 和 y 的长度相同?

转载 作者:行者123 更新时间:2023-11-30 09:58:40 25 4
gpt4 key购买 nike

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html

我在 sklearn 分类报告中遇到错误。

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-30-6a63be1ce4c8> in <module>
----> 1 classification_report(y_test, predictions)

/usr/local/lib/python3.7/site-packages/sklearn/metrics/classification.py in classification_report(y_true, y_pred, labels, target_names, sample_weight, digits, output_dict)
1522 """
1523
-> 1524 y_type, y_true, y_pred = _check_targets(y_true, y_pred)
1525
1526 labels_given = True

/usr/local/lib/python3.7/site-packages/sklearn/metrics/classification.py in _check_targets(y_true, y_pred)
69 y_pred : array or indicator matrix
70 """
---> 71 check_consistent_length(y_true, y_pred)
72 type_true = type_of_target(y_true)
73 type_pred = type_of_target(y_pred)

/usr/local/lib/python3.7/site-packages/sklearn/utils/validation.py in check_consistent_length(*arrays)
233 if len(uniques) > 1:
234 raise ValueError("Found input variables with inconsistent numbers of"
--> 235 " samples: %r" % [int(l) for l in lengths])
236
237

ValueError: Found input variables with inconsistent numbers of samples: [360, 144]

这是我传递的唯一内容,y_test.shape 是 (360,),predictions.shape 是 (144,)。

classification_report(y_test,预测)

它们的长度需要相同吗? (我假设是因为第二个堆栈跟踪)..如果是这样,那么当您分割数据时,X 和 Y 的长度如何可以相同?它们的长度不是总是不同吗?

最佳答案

这里似乎对统计/ML 数据分割框架存在一些误解。

正如您所怀疑的,y_testpred 需要具有相同的长度 - 让我们称之为k。为什么?因为我们需要有 k 个测试示例((x, y) 对)来测试模型。 X_testy_test 的长度均为 k 个条目。 (X_test 中的每个条目 x 可能具有多个功能,但它算作一条记录。)对于 X_test 中的每个 x code>,我们对其标签进行预测。然后,为了计算分类准确性等指标,我们将每个测试示例的预测标签与真实标签进行比较。

If so, how can the length of X and Y can be the same when you split your data?

查看sklearn.model_selection.train_test_split的API 。你可以这样调用它:

X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.33, random_state=42)

这表明,X_testy_test 将具有相同数量的记录 - 根据设计,它们将始终具有相同的形状。然后,对于 X_test 中的每个条目,您使用模型进行预测。它将与 y_test 中的相应条目配对,这就是您计算分类分数的方式。

关于python - sklearn 上的分类报告是否要求输入 x 和 y 的长度相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59994781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com