【问题标题】:How do i get prediction accuracy when testing unknown data on a saved model in Scikit-Learn?在 Scikit-Learn 中测试已保存模型上的未知数据时,如何获得预测准确性?
【发布时间】:2015-05-21 12:51:55
【问题描述】:

我有一个为二元分类训练过的模型,我现在想用它来预测未知的类元素。

     from sklearn.externals import joblib
     model = joblib.load('../model/randomForestModel.pkl')
     test_data = df_test.values # df_test is a dataframe with my test data
     output = model.predict(test_data[:,1:]) # this outputs the prediction either 1 or 0

在给定训练数据集的情况下,我知道如何获取混淆矩阵、准确度得分、分类报告,但在这种情况下,我没有训练数据。 我想从 weka 那里得到类似的东西:

       inst#     actual  predicted error prediction
           1        1:?        1:0       0.757 

在 Scikit-learn 中可以吗?如果是这样,我该怎么做?

【问题讨论】:

    标签: python scikit-learn prediction


    【解决方案1】:

    是的,这完全有可能。

    1) 在尝试评估您训练的模型时,您应该使用测试集。未用于训练的数据子集,用于评估模型预测新值的能力。有了这个测试集,你就有了真实的价值,所以你可以比较预测的结果。 您可以简单地使用 train_test_split 包或 cross_validation。

    2) Scikit-learn 提供不同的metrics 来评估模型。再一次,你应该在测试集上使用这个指标,而不是在你的训练集上。这可能会导致假的好结果。

    我看不出你有什么理由不知道训练集。但您也可以使用模型的 _score 方法,您可以将其参数化为期望(F1 分数、召回率、精度)。

    在 weka 中,我看不到错误预测是什么。能解释一下吗?

    【讨论】:

    • 谢谢,在 weka 中它不是“错误预测”,但实际上“错误”是一个单独的列,当您评估已知类时,如果做出了不正确的预测,那么该列将有一个“+ ”。回到我的问题,我想在生产环境中使用该模型,因此不需要训练数据。我只想测试每个值,但我想知道预测类的概率/准确性。我不确定我是否能够正确表达......
    • 我想我明白了。 scikit learn 中的每个分类器都有predict_proba 方法,用于显示每个可能类的概率。然后,您将知道预测类别的概率最高。您可以通过以下链接找到更多信息:scikit-learn.org/stable/modules/generated/…
    猜你喜欢
    • 2015-11-21
    • 2019-06-07
    • 2019-10-17
    • 2021-10-18
    • 2018-08-24
    • 2019-06-07
    • 2018-04-12
    • 1970-01-01
    相关资源
    最近更新 更多