0

Matlab 2014a の関数fitensemble()によって、バイナリ分類問題のアンサンブル モデル (RUSBoost) をトレーニングしました。この関数によるトレーニングは、関数fitensemble()の入力パラメーター "kfold" を介して 10 倍の交差検証が実行されます。

しかし、 predict(model, Xtest)を使用すると、この関数によってトレーニングされた出力モデルを使用して新しいデータのラベルを予測することはできません。Matlab のドキュメントを確認したところ、kfoldPredict()関数を使用してトレーニング済みモデルを評価できることがわかりました。しかし、この関数による新しいデータの入力は見つかりませんでした。また、クロスバリデーションを使用してトレーニングされたモデルの構造は、クロスバリデーションを使用しないモデルとは異なることがわかりました。では、クロス検証でトレーニングされたモデルを使用して、新しいデータのラベルを予測する方法を教えてください。ありがとう!

4

1 に答える 1

1

kfoldPredict()RegressionPartitionedModel入力としてまたはClassificationPartitionedEnsembleオブジェクトが必要です。これには、kfold 交差検証のモデルとデータが既に含まれています。オブジェクトにはフィールド
があり、クロス検証に使用されるトレーニング済み学習者が格納されます。これらの学習者のいずれかを取得して、 のように使用できます。RegressionPartitionedModelTrainedpredict(learner, Xdata)

編集:

k が大きすぎると、1 回以上の反復で意味のあるデータが少なすぎる可能性があるため、その反復のモデルの精度が低下します。k には一般的な規則はありませんがk=10、MATLAB の既定値と同様に、それをいじるには良い出発点です。多分これもあなたにとって興味深いでしょう: https://stats.stackexchange.com/questions/27730/choice-of-k-in-k-fold-cross-validation

于 2015-06-26T11:48:18.263 に答える