機械学習における特徴選択

おい、ハブル!

私たち Reksoft は記事をロシア語に翻訳しました 機械学習における特徴選択。 このトピックに興味があるすべての人にとって役立つことを願っています。

現実の世界では、企業顧客が思っているほどデータが常にクリーンであるとは限りません。 これが、データマイニングとデータラングリングが求められている理由です。 人間が識別できないクエリ構造データ内の欠損値やパターンを識別するのに役立ちます。 これらのパターンを見つけて使用し、データ内で発見された関係を使用して結果を予測するには、機械学習が役立ちます。

アルゴリズムを理解するには、データ内のすべての変数を調べ、それらの変数が何を表しているかを理解する必要があります。 結果の背後にある理論的根拠はデータの理解に基づいているため、これは重要です。 データに 5 つまたは 50 個の変数が含まれている場合は、それらすべてを調べることができます。 それが 200 個ある場合はどうなるでしょうか? そうなると、すべての変数を調査するのに十分な時間はありません。 さらに、一部のアルゴリズムはカテゴリ データでは機能しないため、すべてのカテゴリ列を量的変数 (定量的に見えるかもしれませんが、メトリクスではカテゴリカルであることが示されます) に変換してモデルに追加する必要があります。 そうすると、変数の数が増えて、500個くらいになってしまいました。 答えは次元を減らすことだと思う人もいるかもしれません。 次元削減アルゴリズムはパラメータの数を減らしますが、解釈性に悪影響を及ぼします。 機能を削除しながら、残りの機能を理解しやすく解釈しやすくする他のテクニックがあったとしたらどうでしょうか?

分析が回帰または分類に基づいているかどうかに応じて、特徴選択アルゴリズムは異なる場合がありますが、その実装の主な考え方は同じです。

相関性の高い変数

相互に相関性の高い変数は同じ情報をモデルに提供するため、分析にすべてを使用する必要はありません。 たとえば、データセットに「オンライン時間」と「使用トラフィック」という特徴が含まれている場合、それらにはある程度の相関があると想定でき、偏りのないデータ サンプルを選択した場合でも強い相関が見られるでしょう。 この場合、モデルに必要な変数はこれらの変数のうち XNUMX つだけです。 両方を使用すると、モデルは過剰適合され、XNUMX つの特定の特徴に偏ることになります。

P値

線形回帰のようなアルゴリズムでは、初期統計モデルは常に良いアイデアです。 このモデルによって取得された p 値を通じて特徴の重要性を示すのに役立ちます。 有意水準を設定したら、結果の p 値をチェックし、値が指定された有意水準を下回っている場合、この特徴は有意であると宣言されます。つまり、その値の変化は、次の値の変化につながる可能性があります。ターゲット。

直接選択

前方選択は、段階的回帰の適用を含む手法です。 モデルの構築は完全なゼロ、つまり空のモデルから始まり、反復ごとに構築中のモデルを改善する変数を追加します。 どの変数がモデルに追加されるかは、その重要性によって決まります。 これは、さまざまな指標を使用して計算できます。 最も一般的な方法は、すべての変数を使用して元の統計モデルで取得された p 値を使用することです。 場合によっては、モデルに同じ情報を提供する場合でも (それでもモデルは改善を示します)、モデル内に相関性の高い変数が存在する可能性があるため、前方選択はモデルの過学習につながる可能性があります。

選択を反転する

逆選択にも、形質の段階的な除去が含まれますが、順選択とは逆の方向になります。 この場合、初期モデルにはすべての独立変数が含まれます。 その後、変数が各反復で新しい回帰モデルに値を寄与しない場合、変数は削除されます (反復ごとに XNUMX つ)。 特徴の除外は、初期モデルの p 値に基づきます。 この方法では、相関性の高い変数を削除する際にも不確実性が生じます。

再帰的な機能の削除

RFE は、重要な特徴の正確な数を選択するために広く使用されている技術/アルゴリズムです。 場合によっては、この方法は、結果に影響を与えるいくつかの「最も重要な」機能を説明するために使用されます。 また、場合によっては非常に多くの変数 (約 200 ~ 400) を削減し、モデルに少なくともある程度寄与する変数のみが保持され、その他はすべて除外されます。 RFE はランキング システムを使用します。 データセット内の特徴にはランクが割り当てられます。 これらのランクは、それらの特徴間の共線性とモデル内のそれらの特徴の重要性に基づいて、再帰的に特徴を削除するために使用されます。 特徴のランク付けに加えて、RFE は、特定の特徴数であっても、これらの特徴が重要であるかどうかを示すことができます (選択された特徴の数が最適ではない可能性が非常に高いため、最適な特徴の数はそれよりも多い可能性があるため)または選択した数より小さい)。

機能重要度図

機械学習アルゴリズムの解釈可能性について話すとき、私たちは通常、線形回帰 (p 値を使用して特徴の重要性を分析できる) と決定木 (文字通り、特徴の重要性をツリー形式で示し、同時に彼らの階層)。 一方、Random Forest、LightGBM、XG Boost などのアルゴリズムでは、特徴重要度図、つまり変数とその「重要度の数値」がプロットされた図がよく使用されます。 これは、ビジネスへの影響という観点から、属性の重要性について構造化された根拠を提供する必要がある場合に特に役立ちます。

正則化

正則化は、バイアスと分散のバランスを制御するために行われます。 バイアスは、モデルがトレーニング データセットに対してどの程度過学習しているかを示します。 偏差は、トレーニング データセットとテスト データセットの間で予測がどの程度異なっていたかを示します。 理想的には、バイアスと分散の両方が小さい必要があります。 ここで正則化が役に立ちます。 主なテクニックは XNUMX つあります。

L1 正則化 - Lasso: Lasso はモデルの重みにペナルティを課してモデルに対する重要性を変更し、モデルをゼロにリセットすることもできます (つまり、最終モデルからこれらの変数を削除します)。 通常、Lasso は、データセットに多数の変数が含まれており、重要な特徴 (つまり、Lasso によって選択され、重要性が割り当てられている特徴) がモデルにどのような影響を与えるかをよりよく理解するために、それらの変数の一部を除外する場合に使用されます。

L2 正則化 - Ridge メソッド: Ridge の仕事は、すべての変数を保存し、同時にモデルのパフォーマンスへの寄与に基づいて変数に重要性を割り当てることです。 データセットに含まれる変数の数が少なく、得られた調査結果と結果を解釈するためにそれらのすべてが必要な場合は、Ridge が適しています。

Ridge はすべての変数を保持し、Lasso はそれらの重要性をより適切に確立するため、両方の正則化の最良の機能を組み合わせた Elastic-Net として知られるアルゴリズムが開発されました。

機械学習用の特徴を選択する方法は他にもたくさんありますが、主な考え方は常に同じです。つまり、変数の重要性を示し、結果として得られた重要性に基づいて変数の一部を削除します。 重要性は、主要な属性を見つけるために使用できる XNUMX つの指標ではなく、一連の指標やグラフ全体を指すため、非常に主観的な用語です。

読んでくれてありがとう! 楽しく学習しましょう!

出所: habr.com

コメントを追加します