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

use*_*622 2 scikit-learn

我正在使用 sklearn 的 cross_val_predict 进行训练,如下所示:

  myprobs_train = cross_val_predict(LogisticRegression(),X = x_old, y=y_old, method='predict_proba', cv=10)
Run Code Online (Sandbox Code Playgroud)

我对返回的概率感到满意,现在想对一个全新的数据集进行评分。我试过:

  myprobs_test = cross_val_predict(LogisticRegression(), X =x_new, y= None, method='predict_proba',cv=10)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,它抱怨 y 形状为零。这是否意味着无法将来自 cross_val_predict 的经过训练和交叉验证的模型应用于新数据?还是我只是用错了?

谢谢!

小智 5

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

logreg = linear_model.LogisticRegression()
logreg.fit(x_old, y_old)
predictions = logreg.predict(x_new)
Run Code Online (Sandbox Code Playgroud)