繁体   English   中英

如何在机器学习中使用不同的数据集测试我的训练 model

[英]How can I test my training model using a different dataset in machine learning

您好,我对 Python 和机器学习非常陌生,我遇到了一个问题。 在拆分并完成我的训练和测试模型之后,现在我需要测试一个完全不同的数据集。

以下是我创建培训和测试的方式:

使用 NaiveBayes 分类器 model nb_model = sklearn.naive_bayes.MultinomialNB() nb_model.fit(X_train_v, y_train) y_pred_class = nb_model.predict(X_test_v) y_pred_probs = nb_model.predict_proba(X_test_v)

我需要调整什么才能更改我正在使用的数据集,以便我可以将新数据集运行到训练 model。

感谢您的时间和帮助!

具体而言,从功能上讲,您的新数据集应该具有相同数量的特征。

如果x_train.shape给出(752, 8) ,那么你知道它有 8 个特征和 752 个样本。

之后,您的 model 接受了培训,您可以确定model.n_features会给您8

您的 model 现在能够从具有 8 个特征的数据中预测输出:

import numpy as np
# 10 randomly generated samples with 8 features
new_dataset_1 = np.random.randint(0, 100, size=(10, 8))
new_pred_1 = model.predict(new_dataset_1)
# > array([47, 15,  2, 81, 99, 63, 53, 55, 24, 47])
new_pred_1.shape
# > (10, )  # One predicted class per sample

如果您尝试从具有任何其他特征计数的数据中进行预测,它将失败:

# 10 randomly generated samples with 9 features
new_dataset_2 = np.random.randint(0, 100, size=(10, 9))
new_pred_2 = model.predict(new_dataset_2)
# > ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0,
# with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 8 is different from 9)

在其他情况下,可能有办法获得相同数量的特征,但这完全取决于假设、数据类型或测试的 model。

当然,这只是一个说明,对随机生成的数据进行预测没有任何意义。 相反,您的新数据应该代表与训练数据相关的内容。

例如,您可以考虑使用您训练的德国火蚁繁殖率的 model 来预测奥地利火蚁的繁殖率是合理的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM