我正在使用 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)