2017-12-06 3 views
1

私はそうのようなトレーニングのためsklearnのcross_val_predictを使用しています: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の訓練されたクロスバリデーションモデルを適用する方法がないということですか?または私はそれを間違って使用していますか?

ありがとうございました!

+1

2回目の実行でy値が含まれていなかったのでエラーは驚いていません。サンプルの予測からいくつかのことをやりたいですか? cross_val_predictは、2つのステップでフィットして予測することができないため、それには最適ではないかもしれません –

答えて

2

不適切な方法があります。相互検証法は訓練されたモデルを返さない。彼らはモデルのパフォーマンスを評価する値を返します(あなたの場合のロジスティック回帰)。あなたの目標は、いくつかのデータを適合させ、新しいデータの予測を生成することです。関連する方法は、LogisticRegression classfitおよびpredictである。

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

私は@ user3490622と同じ懸念があります。トレーニングとテストのセットでcross_val_predictしか使用できない場合、なぜy(ターゲット)がデフォルト値としてNoneになっていますか? (sklearn page

複数の予測確率の望ましい結果を部分的に達成するには、相互検証を模倣してアプローチを繰り返し使用して予測を使用することができます。