私がそのような学習曲線を作成しているとしましょう (コードに小さなエラーがある可能性があります。これは単なるサンプルです)。私が望むのは、検証/テストセットを同じサイズに保ちながらトレーニングセットを拡大する、むしろ古典的な学習曲線です。
learningCurve <- generateLearningCurveData("regr.glmnet",
bh.task,
makeResampleDesc(method = "cv", iters = 5, predict = "both"),
seq(0.1, 1, by = 0.1),
list(setAggregation(auc, train.mean), setAggregation(auc, test.mean))
)
上記のコードの問題は、実際には学習者がトレーニング データの一部でトレーニングされているにもかかわらず、測定値がトレーニング セット全体auc.train.mean
で評価されていることです。これは、私が望む学習曲線ではありません。この尺度で、学習に使用されたトレーニング セットの一部のパフォーマンスを評価したいと思います。たとえば、次のようになります。
http://www.astroml.org/sklearn_tutorial/practical.html#learning-curves
この一文がすべてを説明していると思います。
トレーニング データの小さなサブセットでトレーニングする場合、トレーニング エラーは、完全なトレーニング セットではなく、このサブセットを使用して計算されることに注意してください。
これを達成する方法は?