在另一个数据集上测试模型?
Test a model on another dataset?
我需要在另一个数据集上评估 ML 模型,但我不知道它的全部含义。我有一个想法,但我不确定。
假设我们有:
- X_train、X_test、y_train、y_test 从第一个模型的 X、Y 拆分
- X_train_2,X_test_2,y_train_2,y_test_2 从 X2 拆分,2 用于第二个模型
用 model.fit
训练两个模型后,我如何在另一个数据库上测试它们?是吗:
from sklearn.svm import SVC
#training on the first model
svm.fit(X, Y)
#test on the 2nd model
y_pred = svm.predict(X_test_2)
#evaluate accuracy
print(accuracy_score(y_test, y_pred))
看起来很简单,但我真的很困惑,希望得到一些解释。
在另一个数据集上进行测试,比如 X2, y2
,并不意味着您需要将第二个数据集拆分为训练和测试子集,就像您对原始 X
和 [=13= 所做的那样].一旦你安装了你的模型,比如 svm
,在 X
中,如你所示,你只需预测 X2
并与 y2
:
中的标签进行比较
# predict on the 2nd dataset X2
y_pred = svm.predict(X2)
# evaluate accuracy
print(accuracy_score(y2, y_pred))
您的方向是正确的,但有几点需要牢记:
- 一旦您的模型经过训练并且您使用了
model.fit
,那么您可以使用该模型对第二个数据集使用 model.predict
进行预测
- 你要在第二个数据集中预测的特征和值应该与第一个数据集相同。否则,它就没有意义。
- 您没有两个模型。您已经使用一个数据集训练了 一个 模型,然后使用相同的模型对第二个数据集进行了预测。
- 不需要将第二个数据集分成X_train和X_test,因为模型已经训练好了。您将拥有的只是 X_test 或 X2,它们是第二个数据集的所有行的所有特征,而 y 是您要预测的值。
示例:
数据集 1:X_train、X_test、y_train、y_test 从 X、Y 拆分用于训练模型
数据集 2:X2,Y2
from sklearn.svm import SVC
#training on the first model
svm.fit(X_train, y_train)
# predict on the 2nd dataset X2
y_pred = svm.predict(X2)
#evaluate accuracy of predictions for second dataset
print(accuracy_score(Y2, y_pred))
我不认为“你想在第二个数据集中预测的特征和值应该与第一个数据集相同。否则,它就没有意义”。
如果您的训练数据集与您的测试数据集不同(即在某些特征上),模型准确度将会降低。
我需要在另一个数据集上评估 ML 模型,但我不知道它的全部含义。我有一个想法,但我不确定。 假设我们有:
- X_train、X_test、y_train、y_test 从第一个模型的 X、Y 拆分
- X_train_2,X_test_2,y_train_2,y_test_2 从 X2 拆分,2 用于第二个模型
用 model.fit
训练两个模型后,我如何在另一个数据库上测试它们?是吗:
from sklearn.svm import SVC
#training on the first model
svm.fit(X, Y)
#test on the 2nd model
y_pred = svm.predict(X_test_2)
#evaluate accuracy
print(accuracy_score(y_test, y_pred))
看起来很简单,但我真的很困惑,希望得到一些解释。
在另一个数据集上进行测试,比如 X2, y2
,并不意味着您需要将第二个数据集拆分为训练和测试子集,就像您对原始 X
和 [=13= 所做的那样].一旦你安装了你的模型,比如 svm
,在 X
中,如你所示,你只需预测 X2
并与 y2
:
# predict on the 2nd dataset X2
y_pred = svm.predict(X2)
# evaluate accuracy
print(accuracy_score(y2, y_pred))
您的方向是正确的,但有几点需要牢记:
- 一旦您的模型经过训练并且您使用了
model.fit
,那么您可以使用该模型对第二个数据集使用model.predict
进行预测
- 你要在第二个数据集中预测的特征和值应该与第一个数据集相同。否则,它就没有意义。
- 您没有两个模型。您已经使用一个数据集训练了 一个 模型,然后使用相同的模型对第二个数据集进行了预测。
- 不需要将第二个数据集分成X_train和X_test,因为模型已经训练好了。您将拥有的只是 X_test 或 X2,它们是第二个数据集的所有行的所有特征,而 y 是您要预测的值。
示例:
数据集 1:X_train、X_test、y_train、y_test 从 X、Y 拆分用于训练模型
数据集 2:X2,Y2
from sklearn.svm import SVC #training on the first model svm.fit(X_train, y_train) # predict on the 2nd dataset X2 y_pred = svm.predict(X2) #evaluate accuracy of predictions for second dataset print(accuracy_score(Y2, y_pred))
我不认为“你想在第二个数据集中预测的特征和值应该与第一个数据集相同。否则,它就没有意义”。 如果您的训练数据集与您的测试数据集不同(即在某些特征上),模型准确度将会降低。