問題タブ [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.

0 投票する
1 に答える
3185 参照

scikit-learn - scikit-learn での再帰的特徴除去とグリッド検索の組み合わせ

scikit-learn で再帰的な機能の削除とグリッド検索を組み合わせようとしています。以下のコード (動作) からわかるように、グリッド検索から最適な推定量を取得し、その推定量を RFECV に渡すことができます。ただし、最初に RFECV を実行し、次にグリッド検索を実行したいと思います。問題は、RFECV からグリッド検索にセレクターを渡すと、それが取得されないことです。

ValueError: エスティメータ RFECV の無効なパラメータ ブートストラップ

RFECV からセレクターを取得して RandomizedSearchCV に直接渡すことは可能ですか、それともこれは手続き的に正しいことではありませんか?

0 投票する
1 に答える
182 参照

python - scikit - 基本推定量として RandomForrestClassifier を使用した CalibratedCV の GridSearchCV

CalibratedCV に埋め込まれた RandomForrestClassifier で GridSearchCV を実行する方法があるかどうか疑問に思っていました。ログの損失を最適化したいので、CalibratedCV で評価を行う必要がありますが、RandomForrest のパラメーターを変更したいと思います。

前もって感謝します

0 投票する
2 に答える
881 参照

python - 空のモデルを無視するように sklearn でグリッド検索関数を作成する

python と scikit-learn を使用して、グリッド検索を行いたいと思います。しかし、私のモデルのいくつかは空になってしまいます。これらのモデルを無視するようにグリッド検索機能を作成するにはどうすればよいですか?

モデルが空の場合に 0 を返すスコアリング関数を使用できると思いますが、方法がわかりません。

私のデータは、このlearnerオブジェクトがC空のモデルに対応するを選択するようになっています。モデルが空でないことを確認する方法はありますか?

編集:「空のモデル」とは、使用する機能を0つ選択したモデルを意味します。特にl1正規化されたモデルでは、これは簡単に起こります。したがって、この場合、CSVM の が十分に小さければ、最適化問題は係数の最適解として 0 ベクトルを見つけます。したがって、 は s のpredictor.coef_ベクトルになります0

0 投票する
3 に答える
43707 参照

machine-learning - GridSearchCV スコアリング パラメーター: Scoring='f1' または Scoring=None (デフォルトでは精度を使用) を使用すると、同じ結果が得られます。

「scikit Learnで機械学習をマスターする」という本から抜粋した例を使用しています。

決定木を使用して、Web ページ上の各画像が広告または記事のコンテンツであるかどうかを予測します。広告として分類された画像は、カスケーディング スタイル シートを使用して非表示にすることができます。このデータは、インターネット広告データ セット ( http://archive.ics.uci.edu/ml/datasets/Internet+Advertisements )から公開されており、3,279 枚の画像のデータが含まれています。

以下は、分類タスクを完了するための完全なコードです。

例のように GridSearchCV で score ='f1'を使用した結果は次のとおりです。

F1スコア結果

Scoring =None (デフォルトでは Accuracy メジャー) を使用した場合の結果は、F1 スコアを使用した場合と同じです。

精度スコアの結果

私が間違っていなければ、さまざまなスコアリング関数でパラメーター検索を最適化すると、さまざまな結果が得られるはずです。次のケースは、 scoring='precision'を使用すると異なる結果が得られることを示しています。

Scoring ='precision'を使用した結果は、他の 2 つのケースとは異なります。同じことが「recall」などにも当てはまります。

プレシジョンスコアの結果

なぜ 'F1' と None がデフォルトの精度で同じ結果になるのですか??

編集済み

ファビアンとセバスチャンの両方の回答に同意します。問題は、param_grid が小さいことです。しかし、まったく異なる (ここの例ではなく) 非常に不均衡な 100:1 データセット (精度に影響するはずです) を使用し、ロジスティック回帰を使用しているときに、問題が急増したことを明確にしたかっただけです。この場合、「F1」と精度でも同じ結果が得られました。

この場合に使用した param_grid は次のとおりです。

パラメータの選択も小さすぎると思います。

0 投票する
2 に答える
4750 参照

python - ValueError: GridSearch パラメーターを使用する場合、推定器 CountVectorizer のパラメーター モデルが無効です

CountVectorizer() および TfidfTransformer() (TfidfVectorizer()) によって生成される標準の tfidf 機能と、いくつかの言語機能の 2 種類の機能を使用してテキスト分類を行う sklearn パイプラインがあります。さまざまな ngram 範囲を CountVectorizer() に渡してから、GridSearh を使用して最適な n を見つけようとしました。

これが私のコードです:

(問題に関係がないように思われる行をいくつか省略しています。)

しかし、それはエラーをスローします:

TfidfVectorizer() でも同じことが起こります。

ngram_range をパイプラインのベクトライザーに直接渡すと、すべて正常に動作します。 ('vect', CountVectorizer(ngram_range=(1,2)))

ありがとう!