训练测试有效数据集...有关拟合模型的一般问题

时间:2019-11-25 23:27:47

标签: random-forest modeling

因此,为我分配了硬件分配的Xtrain,ytrain,Xtest,ytest,Xvalid,yvalid数据。该作业是针对随机森林的,但我认为我的问题可以应用于任何/大多数模型。

所以我的理解是,您使用Xtrain和ytrain来拟合模型,例如(clf.fit(Xtrain,ytrain)),这将创建一个模型,该模型可以为您提供训练数据的分数和预测

因此,当我继续测试和有效数据集时,我仅使用ytest和yvalid来查看它们如何预测和评分。我的教授为我们提供了三个X数据集(Xtrain,Xtest,Xvalid),但是对我来说,我只需要Xtrain来首先训练模型,然后在不同的y数据集上测试模型。

如果我对每对X做.fit(),我将根据完全不同的数据创建/拟合三个不同的模型,因此从我的角度来看这些模型不可比。

我错了吗?

1 个答案:

答案 0 :(得分:1)

培训步骤

假设您正在使用sklearn,则clf.fit(Xtrain, ytrain)方法可让您训练模型(clf)以最适合训练数据Xtrain和标签ytrain。如您所说,您可以在此阶段计算分数以评估模型。

#train step
clf = your_classifier
clf.fit(Xtrain, ytrain)

测试步骤:

然后,您必须使用测试数据Xtest来提供先前训练过的模型,以便生成新标签ypred

#test step
ypred = clf.predict(Xtest)

最后,您必须将这些生成的标签ypred与真实标签ytest进行比较,以使用混淆矩阵之类的工具对未知数据(训练过程中未使用的数据)提供可靠的模型性能评估,指标...

from sklearn.metrics import classification_report, confusion_matrix, accuracy_score

test_cm = confusion_matrix(ytest,ypred)
test_report = classification_report(ytest,ypred)
test_accuracy = accuracy_score(ytest, ypred)