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