【问题标题】:Train Test Valid data sets... General question about fitting the models训练测试有效数据集...关于拟合模型的一般问题
【发布时间】:2020-03-21 07:41:16
【问题描述】:

因此,我获得了用于硬件分配的 Xtrain、ytrain、Xtest、ytest、Xvalid、yvalid 数据。此作业适用于随机森林,但我认为我的问题适用于任何/大多数模型。

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

因此,当我转到测试和有效数据集时,我只使用 ytest 和 yvalid 来查看它们的预测和评分方式。我的教授为我们提供了三个 X 数据集(Xtrain、Xtest、Xvalid),但对我来说,我只需要 Xtrain 最初训练模型,然后在不同的 y 数据集上测试模型。

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

我错了吗?

【问题讨论】:

    标签: random-forest modeling


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      相关资源
      最近更新 更多