You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scikit-learn:为何训练数据与目标数据需尺寸匹配?附KNN疑问

关于k近邻分类器训练时标签的两个问题

为什么标签长度不匹配会报错?

scikit-learn里的分类器要求每一条训练数据都得对应一个标签。你给出的training = [[1], [4], [3]]是3个独立的训练样本,所以标签列表labels的元素数量必须和样本数完全一致——也就是得有3个标签。

当你设labels = [[0], [1]]时,只有2个标签,少了对应第三个样本[3]的标签,模型根本不知道这个样本该归到哪一类,自然会抛出“目标值尺寸与输入不匹配”的错误。而labels = [[0], [1], [1]]或labels = [[0], [0], [1]]都有3个标签,每个样本都能对应到一个类别,所以能正常运行。

标签的排列顺序是否重要?

当然重要。标签列表的第n个元素,必须严格对应训练数据列表的第n个样本的类别。比如training里第一个样本是[1],labels第一个元素是0,就代表[1]属于类别0;如果你把标签顺序搞混了,模型就会把样本和错误的类别绑定,训练出来的模型完全不符合你的预期,根本没法用。

内容的提问来源于stack exchange,提问作者tonythestark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:27:28