いくつかのカーネル パラメーターを選択するために、scikit-learn が提供する KFold 関数を使用して 10 倍の CV を実行しています。私はこの(grid_search)手順を実装しています:
1-pick up a selection of parameters
2-generate a svm
3-generate a KFold
4-get the data that correspons to training/cv_test
5-train the model (clf.fit)
6-classify with the cv_testdata
7-calculate the cv-error
8-repeat 1-7
9-When ready pick the parameters that provide the lowest average(cv-error)
KFold 生成でシャッフルを使用しない場合、同じ実行を繰り返すと、平均 (cv_errors) でほとんど同じ結果が得られ、「最良の結果」が再現可能です。シャッフルを使用すると、同じ実行を数回繰り返し、「最良の値」が再現できない場合、平均 (cv エラー) に異なる値が得られます。KFold パスごとに異なる cv_errors を取得する必要があることは理解できますが、最終的な平均は同じである必要があります。シャッフル付きの KFold は実際にどのように機能しますか? KFold が呼び出されるたびに、インデックスがシャッフルされ、トレーニング/テスト データが生成されます。「トレーニング/テスト」のためにさまざまなフォールドをどのように選択しますか? トレーニング/テスト用にさまざまなフォールドをランダムに選択する方法はありますか? 「シャッフル」で有利な状況とそうでない状況は??