如何使用cross_val_predict预测新数据集的概率?

时间:2017-12-06 21:22:47

标签: scikit-learn

我正在使用sklearn的cross_val_predict进行训练:

  myprobs_train = cross_val_predict(LogisticRegression(),X = x_old, y=y_old, method='predict_proba', cv=10)

我对返回的概率感到满意,并希望现在能够获得一个全新的数据集。我试过了:

  myprobs_test = cross_val_predict(LogisticRegression(), X =x_new, y= None, method='predict_proba',cv=10)

但这不起作用,它抱怨你的形状为零。这是否意味着无法将cross_val_predict中经过训练和交叉验证的模型应用于新数据?或者我只是错误地使用它?

谢谢!

2 个答案:

答案 0 :(得分:3)

你正在寻找一种错误的方法。交叉验证方法不会返回训练有素的模型;它们返回评估模型性能的值(在您的情况下为逻辑回归)。您的目标是拟合一些数据,然后生成新数据的预测。相关方法是fitpredictLogisticRegression class。这是基本结构:

logreg = linear_model.LogisticRegression()
logreg.fit(x_old, y_old)
predictions = logreg.predict(x_new)

答案 1 :(得分:0)

我和@ user3490622有同样的担忧。如果我们只能在训练和测试集上使用cross_val_predict,为什么y(目标)是None作为默认值? (sklearn page

为了部分地实现多个预测概率的期望结果,可以重复使用拟合然后预测方法来模拟交叉验证。