ValueError: 发现输入变量的样本数量不一致:[2839, 14195]

在此数据集之前,所有的数据集都能正常运行,现在使用这个新数据集时出现了下面的错误。我尝试过重塑X_train,但它没有应用到X_train上,有人能帮忙吗?谢谢

feature_df = pd.read_excel('thedatasets/boutput.xlsx')    Y = pd.get_dummies(feature_df['class'],drop_first=True)    X = feature_df.drop(['class'],axis=1)

下面的代码在另一个Python文件中

for i in range(np.shape(generation)[0]):            individual = generation[i, :]            # 根据个体选择列            X_individual = self.dataset[[self.dataset.columns[j] for j in range(len(individual)) if individual[j] == 1]]            # 分割为训练-测试数据集            X_train, X_test, y_train, y_test = train_test_split(X_individual, self.response, test_size=self.test_size)            # 拟合分类器            self.algorithm.fit(X_train, y_train.values.ravel())            grid.fit(X_train,y_train.values.ravel())

错误信息如下:

Traceback (most recent call last):  File "/Users/cinci/Desktop/SPLITPROJ/GeneticAlgorithmExample.py", line 57, in <module>    main()  File "/Users/cinci/Desktop/SPLITPROJ/GeneticAlgorithmExample.py", line 17, in main    GA.fit()  File "/Users/cinci/Desktop/SPLITPROJ/GeneticAlgorithm.py", line 167, in fit    old_fitness_array = self.fitness(old_generation)  File "/Users/cinci/Desktop/SPLITPROJ/GeneticAlgorithm.py", line 77, in fitness    self.algorithm.fit(X_train, y_train.values.ravel())  File "/Users/cinci/venv/lib/python3.7/site-packages/sklearn/svm/_base.py", line 148, in fit    accept_large_sparse=True)  File "/Users/cinci/venv/lib/python3.7/site-packages/sklearn/utils/validation.py", line 765, in check_X_y    check_consistent_length(X, y)  File "/Users/cinci/venv/lib/python3.7/site-packages/sklearn/utils/validation.py", line 212, in check_consistent_length    " samples: %r" % [int(l) for l in lengths])ValueError: Found input variables with inconsistent numbers of samples: [2839, 14195]

回答:

考虑到14916除以5等于2839,我认为你的问题原因是你有多个输出标签(5个标签),而你使用了.ravel()

这会使你的数据变平,模型会认为你试图传入标签数量乘以训练样本数量的训练样本。

为了解决这个问题,你应该不使用.ravel(),而是重塑你的最终y_train,使其形状为训练样本数量 x 标签数量

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注