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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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