【发布时间】:2021-02-28 21:11:46
【问题描述】:
我已经预处理了一些数据,准备好训练多项朴素贝叶斯分类。训练数据占我数据的 80%,测试数据占 20%。
训练数据是一个大小为 8452 的数组,测试数据是一个大小为 4231 的数组
如果我想查看火车数据的预测,我可以执行以下代码
multiNB = MultinomialNB()
model = multiNB.fit(x_train, y_train)
y_preds = model.predict(x_train)
但如果我想预测我的测试 即
y_preds = model.predict(x_test)
我收到以下错误:
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0,
with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 8452 is different from 4231)
如果我需要提供有关我的代码的更多信息,请询问,但我被困在这里,我并不真正了解导致该错误的原因,欢迎任何帮助。
这就是我获得训练测试集的方式:
total_count = len(tokenised_reviews)
split = int(total_count * 0.8)
shuffle = np.random.permutation(total_count)
x = []
y = []
for i in range(total_count):
x.append(x_data[shuffle[i]])
y.append(y_data[shuffle[i]])
x_train = x[:split]
x_test = x[split:]
y_train = y[:split]
y_test = y[split:]
【问题讨论】:
-
我无法重现您的错误。您是否正确拆分了火车测试?你能分享一下你是如何获得训练和测试集的吗
-
我已经在上面添加了我是如何获得训练集和测试集的
-
如果
x_data是一个数组,跳过循环并执行x = x_data[shuffle]。y也一样。可能有帮助。你需要转置数组还是什么? -
我需要追加数据,以便可以通过 x 和 y 进行索引
-
您可以按照建议使用索引调用数据。或者您可以使用 scikit learn 中的 train_test_split ... 我询问拆分的原因是因为我无法使用示例数据集重现您的错误
标签: python classification naivebayes train-test-split