Python scikit学习测试数据分割:ValueError:找到样本数不一致的输入变量:[49995000]

Python scikit学习测试数据分割:ValueError:找到样本数不一致的输入变量:[49995000],python,scikit-learn,train-test-split,Python,Scikit Learn,Train Test Split,这是我的密码 print(len(image_dataset.data)) print(len(phylum_target)) X_train, X_test, y_train, y_test = train_test_split(image_dataset.data, phylum_target, test_size=0.2,random_state=109) 这是输出和错误 5000 5000 Traceback (most recent call last): File "

这是我的密码

print(len(image_dataset.data))
print(len(phylum_target))
X_train, X_test, y_train, y_test = train_test_split(image_dataset.data, phylum_target, test_size=0.2,random_state=109)
这是输出和错误

5000
5000
Traceback (most recent call last):
  File "Image_SVM_run_only.py", line 298, in <module>
    X_train_temp, X_test_temp, y_train_temp, y_test_temp = train_test_split(image_dataset.data, phylum_target, test_size=0.2,random_state=109)
  File "/root/anaconda3/envs/IBC/lib/python3.7/site-packages/sklearn/model_selection/_split.py", line 2127, in train_test_split
    arrays = indexable(*arrays)
  File "/root/anaconda3/envs/IBC/lib/python3.7/site-packages/sklearn/utils/validation.py", line 293, in indexable
    check_consistent_length(*result)
  File "/root/anaconda3/envs/IBC/lib/python3.7/site-packages/sklearn/utils/validation.py", line 257, in check_consistent_length
    " samples: %r" % [int(l) for l in lengths])
ValueError: Found input variables with inconsistent numbers of samples: [4999, 5000]
5000
5000
回溯(最近一次呼叫最后一次):
文件“Image\u SVM\u run\u only.py”,第298行,在
X_-train_temp,X_-test_temp,y_-train_temp,y_-test_temp=train_-test_分割(image_-dataset.data,门目标,测试大小=0.2,随机状态=109)
文件“/root/anaconda3/envs/IBC/lib/python3.7/site packages/sklearn/model\u selection/\u split.py”,第2127行,列车内测试\u split
数组=可索引(*数组)
文件“/root/anaconda3/envs/IBC/lib/python3.7/site packages/sklearn/utils/validation.py”,第293行,可索引
检查长度是否一致(*结果)
文件“/root/anaconda3/envs/IBC/lib/python3.7/site packages/sklearn/utils/validation.py”,第257行,检查长度是否一致
“样本:%r”%[int(l)表示长度为l的样本])
ValueError:找到样本数不一致的输入变量:[49995000]
即使列车数据和测试数据具有相同的长度,我也有这个错误。
请帮助我T.T

这是我能从你的信息中辨别出的最小可重复性示例,效果很好

import numpy as np
from sklearn.model_selection import train_test_split

X = np.zeros((5000, 49152))
y = np.zeros((5000, 1))
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=109)
print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)

这是我能从你的信息中辨别出的最小可重复性示例,效果很好

import numpy as np
from sklearn.model_selection import train_test_split

X = np.zeros((5000, 49152))
y = np.zeros((5000, 1))
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=109)
print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)

不仅仅是长度,每个的长度/形状[0]是多少?`print(type(image\u dataset.data))print(type(phylum\u target))print(image\u dataset.data.shape)print(phylum\u target.shape)`
(500049152)(5000,1)
image\u dataset.data[0]。形状是(49152,),而门目标[0]。形状是(1,)不仅仅是长度,每个的长度/形状[0]是多少?`print(type(image\u-dataset.data))print(type(phylum\u-target))print(image\u-dataset.data.shape)print(phylum\u-target.shape)`
(500049152)(5000,1)
image\u-dataset.data[0]。形状是(49152,),而phylum\u-target[0]。形状是(1,)你的代码有效,但我的代码仍然无效。。。感谢您的帮助没有问题Changwan,为了调试,我建议您从上述代码回溯,并确保您的“image\u dataset.data,phylum\u target”对象在调用之前与上述代码中的“X,y”完全相同。也许你不小心在某个点上消耗了一个片段,弹出或删除了--其他的东西??这似乎是数据问题,因为这个数据集来自一个非常大的数据集,并且是由多处理代码生成的,我发现一些数据包含一些无效的字符串。。。。虽然我不知道为什么它有“一些”无效字符串,但错误消息说只有一个区别。。。无论如何,谢谢你的帮助!你的代码行得通,但我的代码还是不行。。。感谢您的帮助没有问题Changwan,为了调试,我建议您从上述代码回溯,并确保您的“image\u dataset.data,phylum\u target”对象在调用之前与上述代码中的“X,y”完全相同。也许你不小心在某个点上消耗了一个片段,弹出或删除了--其他的东西??这似乎是数据问题,因为这个数据集来自一个非常大的数据集,并且是由多处理代码生成的,我发现一些数据包含一些无效的字符串。。。。虽然我不知道为什么它有“一些”无效字符串,但错误消息说只有一个区别。。。无论如何,谢谢你的帮助!