因此,我获得了HW分配的Xtrain,ytrain,Xtest,ytest,Xvalid,yvalid数据。该作业是针对随机森林的,但我认为我的问题可以应用于任何/大多数模型。
因此,我的理解是,您使用Xtrain和ytrain来拟合模型,例如(clf.fit(Xtrain,ytrain)),这将创建一个模型,该模型可以为您提供训练数据的分数和预测
因此,当我继续测试和有效数据集时,我仅使用ytest和yvalid来查看它们如何预测和评分。我的教授为我们提供了三个X数据集(Xtrain,Xtest,Xvalid),但对我来说,我只需要Xtrain来首先训练模型,然后在不同的y数据集上测试模型。
如果我为每对X做y.fit(),我将根据完全不同的数据创建/拟合三个不同的模型,因此从我的角度来看,这些模型不可比。
我错了吗?
训练步骤:
假设您正在使用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)