在Scikit-Learn中测试已保存模型上的未知数据时,如何获得预测准确度?

时间:2015-03-18 16:12:29

标签: python scikit-learn prediction

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

     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

我知道如何在给定训练数据集的情况下获得confusion_matrix,accuracy_score,classification_report,但是在我没有列车数据的情况下。 我想从weka得到类似的东西:

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

Scikit-learn有可能吗?如果是的话,我该怎么做?

1 个答案:

答案 0 :(得分:1)

是的,这完全有可能。

1)在尝试评估您训练过的模型时,您应该使用测试集。您拥有的数据的子集,您没有用它来训练以评估模型预测新值的能力。使用此测试集,您可以获得真实值,因此您可以比较预测结果。 您可以简单地使用train_test_split包或cross_validation。

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

我没有看到任何你不了解训练集的原因。但你也可以使用模拟的_score方法,你可以根据需要进行参数化(F1得分,召回,精确度)。

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