【发布时间】:2020-03-03 04:05:13
【问题描述】:
我正在尝试对来自 Yellowbrick 的 load_hobbies 数据集进行建模;在将数据拆分为训练和测试数据集后,我编写了以下代码来拟合模型。但是,我收到了 ValueError 的错误:Expected 2D array, got 1D array instead。如果您的数据具有单个特征,则使用 array.reshape(-1, 1) 重塑您的数据,如果它包含单个样本,则使用 array.reshape(1, -1) 。 我不知道为什么。有人可以帮忙吗?代码如下:
from sklearn.naive_bayes import GaussianNB
from sklearn.preprocessing import LabelEncoder
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split as tts
#corpus = load_hobbies()
#X = TfidfVectorizer().fit_transform(corpus.data)
#y = LabelEncoder().fit_transform(corpus.target)
#
#X_train, X_test, y_train, y_test = tts(X, y, test_size=0.2)
#
#model = MultinomialNB().fit(X_train, y_train)
#model.score(X_test, y_test)
corpus = load_hobbies()
X = corpus.data
y = corpus.target
#
X_train, X_test, y_train, y_test = tts(X, y, test_size=0.2)
#
model = GaussianNB()
model.fit(X_train, y_train)```
【问题讨论】:
-
请edit您的问题包含完整的错误回溯
-
我想问题出在标签编码器上,要转换数据,您必须将矩阵而不是数组传递给转换器,方法 .reshape(-1,1) 转换数组(n_samples ,) 转换为矩阵 (n_samples,1)。
-
你尝试过重塑价值观吗?
标签: python machine-learning scikit-learn