Scikit Learn ValueError: 发现维度为3的数组。估计器期望的维度应小于或等于2

我有一个包含144条学生反馈的数据集,其中有72条正面反馈和72条负面反馈。数据集有两个属性,即data和target,分别包含句子和情感(正面或负面)。测试数据集包含106条未标记的反馈。请考虑以下代码:

我不知道哪里出了问题。请帮助我。


回答:

您得到的错误与样本数量无关,而是与特征数量有关,错误来自于以下代码行:

cv = CountVectorizer(binary = True)ct = CountVectorizer(binary= True)cv.fit(feedback_data['data'].values)ct.fit(feedback_data_test['data'].values)

您需要以相同的方式对测试和训练数据进行编码

您需要对所有数据拟合Count Vectorizer,然后将其应用于测试和训练数据。如果不这样做,您将无法获得相同的词汇表,因此编码也会不同。

cv = CountVectorizer(binary = True)cv.fit(np.concatenate((feedback_data['data'].values,feedback_data_test['data'].values))

编辑

您只需使用cv,不需要使用ct

X = feedback_data['data'].apply(lambda X : cv.transform([X])).valuesX = list([list(x.toarray()[0]) for x in X])X_test = feedback_data_test['data'].apply(lambda X_test :cv.transform([X_test])).valuesX_test = list([list(x.toarray()[0]) for x in X_test])

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

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