問題タブ [grid-search]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - 小さなデータセットで GridSearch を使用し、結果を大きなデータセットに適用することは良い考えですか?
TfidVectorizer と OneVsRestClassifier(SGDClassifier) を使用したパイプラインがあります。これは、実行したい gridSearch のパラメーターです。
問題:パラメーターの最適な組み合わせを知りたいのですが、自分のコンピューターで 100k インスタンスに対してこのような gridSearch を実行できません。
質問:この種の gridSearch の結果は、100,000 インスタンスのデータセットと 10 ~ 20,000 のサンプルのサブセットで (おそらくパラメーター セットが小さい場合) どれくらい似ていますか?
ご存知かもしれませんが、私はテキストの問題のマルチラベル分類を扱っています。
ありがとうございました :)
scikit-learn - GridSearchCV(OneVsRestClassifier(clf, ...)): N 個のすべての分類子に対する 1 つの最適なハイパー パラメーター セットと、各分類子に対する 1 つの最適なセット
バックグラウンド
L
マルチクラス(マルチラベル)の問題で予測するラベルがあるとしましょう。を使用してOneVsRestClassifier
、L
構築中の分類器があります。LogisticRegression
個々の分類子に使用すると仮定しましょう。
GridSearchCV
(resp. )を使用して最適なハイパー パラメーターを検索する場合RandomizedSearchCV
、以下を実行します。
質問
上記のコマンドを実行すると、すべての分類子GridSearchCV
のトレーニング (resp. refit) に使用される最適なハイパー パラメーターのセットが 1 つ得られます。L
したがって、たとえば、 の最適値を取得し、C=10
その値を使用してすべてのL
分類子を再適合させます。
私の質問は、分類器GridSearchCV
ごとに最適なハイパーパラメーターの異なるセットを返さない理由です。L
たとえばlabel0
、最適なC=10
場合label1
、最適なC=0.01
場合、... ? 分類器ごとに 1 つのセットを返すのではなく、ハイパー パラメーターの 1 つのセットを返すことにしたのはなぜですか?
以前の経験
この動作は、各ラベル分類器を「手動で」トレーニングするときに通常得られるものと同じではないため、質問しています。たとえば、何千ものラベルを予測するいくつかのタスクでは、各ラベル分類子を個別にトレーニングし (多数のマシンに分散)、その結果、ラベル分類子ごとに異なる値のハイパー パラメーターを取得します。
python - Scikit - スケール検索とグリッド検索の組み合わせ
私は scikit が初めてで、データ スケールとグリッド検索を組み合わせるには 2 つの小さな問題があります。
- 効率的なスケーラー
Kfolds を使用した相互検証を考慮すると、K-1 フォールドでモデルをトレーニングするたびに、データ スケーラー (たとえば preprocessing.StandardScaler() を使用) が K-1 フォールドにのみ適合し、次に適用されることを望みます。残りの折り目。
私の印象では、次のコードはデータセット全体のスケーラーに適合するため、以前に説明したように動作するように変更したいと考えています。
- 内側のスケーラー フィッティングを取得する
refit=True の場合、グリッド検索の「後」に、データセット全体でモデルが (最適な推定器を使用して) 再調整されます。私の理解では、パイプラインが再び使用されるため、スケーラーはデータセット全体に適合します。理想的には、その適合を再利用して「テスト」データセットをスケーリングしたいと考えています。GridSearchCV から直接取得する方法はありますか?
python - 関数の可能な引数のセットのすべての組み合わせを試して、結果の値を収集するにはどうすればよいでしょうか?
次の形式の関数があります。
可能な引数の組み合わせのセットに対して返された値を記録したいと思います。
つまり、次のような方法で指定された引数のセットの組み合わせを使用して関数を複数回実行し、結果の値を収集したいということです。
このような問題にアプローチするための、読みやすい良い方法は何でしょうか?
python - Joblib または Pickle を使用して、パイプラインと GridSearchCV から作成されたモデルを保存する方法は?
とを使用して最適なパラメータを特定した後、このプロセスを後で再利用するにpipeline
はGridSearchCV
どうすればよいですか? 単一の分類子の場合にこれを行う方法がわかります...pickle
joblib
pipeline
しかし、実行して完了した後、これを最適なパラメーターで全体的に保存するにはどうすればよいgridsearch
ですか?
私は試した:
joblib.dump(grid, 'output.pkl')
-しかし、それはすべてのグリッドサーチ試行をダンプしました(多くのファイル)joblib.dump(pipeline, 'output.pkl')
- しかし、最適なパラメータが含まれているとは思いません
python - アンサンブル内のモデルからの出力を適切にマージする方法は?
回帰アンサンブルを適切に作成する方法を見つけようとしています。さまざまなオプションがあることを知っています。私は次のアプローチを使用します。まず、線形回帰、GBM などのモデルを定義します。次に、これらの各モデルに対して GridSearchCV を実行して、最適なパラメーターを把握します。この後、各モデルの個別の予測を考慮しながら、最終的な予測を行いたいと考えています。問題は、個々の予測を単一の Y ベクトルに適切にマージする方法です。各予測に重み係数を割り当てることは、回帰問題には適していないようです。もしそうなら、そのような重み係数を取得する方法は? おそらく、個々の予測をトレーニング セットとして使用してメタモデルをトレーニングするのが良い方法でしょうか?