この記事では機械学習における3つの特徴選択手法を紹介します。

この記事では機械学習における3つの特徴選択手法を紹介します。

機械学習では特徴を選択する必要があり、人生でも同じではないでしょうか?

特徴選択とは、利用可能な多数の特徴からサブセットを選択するプロセスを指します。その目的と期待される効果は、通常、次の 3 つの側面で考慮されます。

  • モデルのパフォーマンスの向上は、主に無効な特徴やノイズ特徴をフィルタリングすることによって実現されます。
  • モデルのトレーニングを高速化します。より合理化された特徴空間により、モデルのトレーニング速度が自然に向上します。
  • 特徴の解釈可能性を高めます。この効果は、通常、あまり明白ではありません。たとえば、共線性が高い特徴のセットがある場合、合理的な特徴選択によって効率的な特徴のみが保持されるため、モデルの解釈可能性が向上します。

一方、特徴選択方法の違いを理解するには、まずトレーニング タスクに対する価値に応じて特徴を分類する必要があります。

  • 高価値の特徴。これらの特徴はモデルのトレーニングに非常に役立ちます。特徴選択の目的は、これらの特徴をできるだけ正確に保持することです。
  • 価値の低い特徴: これらの特徴はモデルのトレーニングにはあまり役立ちませんが、正の相関関係にある特徴でもあります。特徴選択率が低い場合、これらの特徴は破棄できます。
  • 相関性の高い特徴: これらの特徴もモデルのトレーニングに非常に役立ちますが、特徴間の相関性は高いことがよくあります。つまり、1 つの特徴セットは別の特徴セットに置き換えられる可能性があるため、冗長な特徴があり、特徴選択で除外する必要があります。
  • ノイズ機能: これらの機能は、モデルのトレーニングにプラスの効果をもたらさないだけでなく、モデルのトレーニング効果を妨げます。効果的な特徴選択方法では、それらを除外することを優先する必要があります。

実際のアプリケーションでは、特徴選択方法は主に次の 3 つのカテゴリに分けられます。

この記事では、これら 3 つの方法をそれぞれ紹介し、最後に sklearn が提供するデータセットを例にして、簡単なアプリケーションと効果の比較を示します。

01 濾過方法

フィルタベースの特徴選択は、最も単純で一般的に使用されている方法です。その最大の利点は、モデルに依存せず、特徴の観点から特徴の価値のみを探索し、それによって特徴のソートと選択を実現することです。実際、フィルタリング方法に基づく特徴選択スキームの核心は、特徴をソートすることです。特徴をその値に従ってソートした後、任意の割合/量の特徴の選択または除去を実現できます。明らかに、特徴の価値を評価してソートを実現する方法がここでの重要なリンクです。

機能の価値を評価するために、評価基準は大きく分けて次の 3 つのカテゴリに分けられます。

  • 特徴に含まれる情報量に基づく:これは一般的に分散法に基づく特徴選択です。つまり、分散が大きいほど、ラベルの識別性が高くなります。そうでない場合、分散の低い特徴は識別度が低いと見なされます。極端な場合、特徴の列のすべての値が同じである場合、分散は 0 になり、モデルのトレーニングには価値がありません。もちろん、現実には、分散を直接的に用いて特徴に含まれる情報量を測ることは厳密ではありません。例えば、[100、110、120]と[1、5、9]の2つの特徴グループの場合、分散計算式によれば前者の方が大きいですが、機械学習の観点からは後者の方が識別力が高い可能性があります。したがって、通常、特徴選択に分散法を使用する前に、特徴を正規化する必要があります。
  • 相関に基づく: 一般的に統計理論に基づいて、各列とラベル列間の相関係数が 1 つずつ計算されます。列の特徴とラベル間の相関が高い場合、モデル トレーニングにとってより大きな価値があると見なされます。ユークリッド距離、カイ二乗検定、T 検定など、2 つのデータ列間の相関関係を測定するための指標は多数あります。
  • 情報エントロピー理論に基づく: 統計から導き出された相関法と同様に、特徴列とラベル列の相関も情報理論の観点から測定できます。典型的な方法は、特徴列とラベル列間の相互情報量を計算することです。相互情報量が大きいほど、列特徴量が与えられたときのラベルの情報確実性が高くなります。これは実際には、決定木における基準を分割する考え方に似ています。

もちろん、フィルタリングに基づく特徴選択方法の欠点も非常に明白です。

  • モデルに依存しないため、モデルに適応する最適な特徴システムを具体的にマイニングすることは不可能です。
  • 特徴のソートと選択は独立して行われます(ここでの独立とは特徴間の独立性を指し、特徴とラベルの相関関係の計算などは含まれません)。単独で使用すると価値が低く、組み合わせて使用​​すると価値が高くなる特徴は、効果的に発見および保持できません。

02 ラッピング

フィルタリング方法は、特徴を重要度の観点から並べ替えることで、ターゲット特徴の選択または非効率的な特徴のフィルタリングのプロセスを完了します。前述したように、その最大の欠点の 1 つは、モデルに依存しないため、対応するモデルに最も適した機能システムを具体的に選択できないことです。同時に、隠れた問題もあります。それは、特徴選択をどの程度の割合で保持するかという問題です。実際、これはハイパーパラメータであることが多く、通常は手動での定義やハイパーパラメータの最適化が必要です。

対照的に、ラッピング法は特徴選択をブラックボックス問題として扱います。つまり、目的関数(この目的関数は通常、特定のモデルにおける評価指標です)を指定し、内部実装の問題を気にすることなく、特定の方法でこの目的関数を最大化するだけで済みます。さらに、具体的な実装の観点からは、N 個の特徴を含む特徴選択問題が与えられた場合、目的関数の最適値を達成するために、その中から最適な K 個の特徴サブセットを選択するという抽象化が可能です。ここでの K は 1 から N までの任意の値になる可能性があるので、この問題の検索の複雑さは指数関数的、つまり O(2^N) になります。

もちろん、このような非常に複雑なアルゴリズムの場合、特にこの目的関数が十分に高価であることが多いことを考慮すると(つまり、特定の機能サブセットでのモデルの評価プロセスは一般に時間のかかるプロセスである)、賢い先人たちが直接ブルートフォースを試すことは不可能であるため、一般的に 2 つの具体的な実装方法があります。

  • 順次選択。これは順次選択と呼ばれますが、実際には貪欲アルゴリズムです。つまり、K 個の特徴を含む最適なサブスペース検索問題は、1 -> K からの再帰選択プロセス (Sequential Feature Selection、SFS) または N -> K からの再帰除去プロセス (Sequential Backward Selection、SBS) に簡略化されます。前者は前方選択とも呼ばれ、後者は後方選択とも呼ばれます。
  • 具体的には、再帰選択を例にとると、初期状態では特徴サブスペースは空です。各特徴を 1 つずつ選択して特徴サブスペースに追加し、対応する目的関数の値を計算し、このプロセスを N 回実行して、現在の最適な最初の特徴を取得します。再帰的に、予想される特徴の数 K に達するまで、2 番目と 3 番目の特徴を継続的に選択します。このプロセスの目的関数は O(K^2) 回実行されますが、これは指数アルゴリズムの複雑さと比較すると許容範囲内です。もちろん、実際のアプリケーション プロセスでは、次のフローチャートに示すように、多くの改良されたアルゴリズムが導出されています。

画像出典: 特徴選択手法に関する調査

  • ヒューリスティック検索。ヒューリスティック検索では、一般的に、最適化の分野で広く使用されている遺伝的アルゴリズムなどの進化的アルゴリズムが適用されます。具体的な実装では、特徴サブスペースを集団内の個体として表現する方法を考慮する必要があります(たとえば、N 個の特徴を含む選択問題を長さ N の 0/1 シーケンスとして表現します。ここで、1 は特徴を選択することを意味し、0 は選択しないことを意味し、シーケンス内の 1 の数は特徴サブスペース内の特徴の数です)。次に、対応する特徴サブスペースでのモデルの効果を、集団内の対応する個体の適応度として定義できます。2 つ目は、遺伝的アルゴリズムの主な操作、つまり交差、突然変異、再生などの進化プロセスを定義することです。

ラッピング方式に基づく特徴選択方式はモデル指向の実装方​​式であるため、理論的には最も優れた選択効果があります。しかし実際には、上記の実装プロセスでは、保持したい特徴の数を事前に指定することが一般的に必要であり、ハイパーパラメータの問題が関わってきます。さらに、ラッピング法の最大の欠点は、計算量が膨大になることです。順次選択の実装により、アルゴリズムの複雑さは平方オーダーまで軽減されますが、それでもまだ非常に大きな数値です。また、遺伝的アルゴリズムや粒子群アルゴリズムに代表されるヒューリスティック検索スキームは、すべて集団ベースの最適化の実装であるため、当然、大量の計算を伴います。

03 埋め込み方法

埋め込み法に基づく特徴選択法の考え方は、選択にモデルに依存するラッピング法の考え方に似ていますが、膨大な量の計算を伴うという点で異なります。埋め込み法に基づく特徴選択スキームは、その名前が示すように、特徴選択プロセスをモデルトレーニングタスク自体に「アタッチ」し、それによって特定のアルゴリズムモデルに依存して特徴選択プロセスを完了します。

私は、「埋め込み」という言葉は機械学習の分野では魔法の言葉だとずっと信じてきました。特徴選択手法に初めて触れたときは、埋め込み手法とラッピング手法を混同してしまい、直感的に理解できませんでした。

実際、この時点で、埋め込み方式に基づく特徴選択方式が登場しようとしています。最も一般的に使用されているのは、ツリーモデルと、ツリーモデルに基づく一連の統合アルゴリズムです。モデルは特徴の重要度に関する重要な情報を提供するため、モデルの価値を自然に実現でき、それによって特徴の重要度に応じて特徴選択またはフィルタリングプロセスが完了します。さらに、決定木シリーズモデルに加えて、LR や SVM などの一般化線形モデルでも、重み係数をフィッティングすることで特徴の重要度を評価することができます。

埋め込み法に基づく特徴選択方式は簡潔かつ効率的であり、一般的にフィルタリング法とラッピング法の両方の利点を統合したものと考えられています。つまり、ラッピング法のモデル指向の特徴選択の利点と、フィルタリング法の低オーバーヘッドと高速性の利点を備えています。しかし、実際には、それにも相応の欠点があります。つまり、相関の高い特徴を識別できないのです。例えば、特徴 A と特徴 B はどちらも特徴重要度係数が高いですが、同時に両者の相関も高い場合や、特徴 A = 特徴 B の場合もあります。このような場合、埋め込み方式に基づく特徴選択方式は無力です。

04 3つの特徴選択方式の実際的な比較

このセクションでは、sklearn の乳がんデータセットを例に、3 つの特徴選択スキームの基本的な実装を示し、特徴選択の結果を簡単に比較します。

データセットをロードし、必要なパッケージをインポートします。

 sklearn.datasets からload_breast_cancer をインポートします
sklearn.model_selection からtrain_test_split をインポートします
sklearn.feature_selection からSelectFromModel SelectKBest RFE をインポートします
sklearn.ensemble からRandomForestClassifier をインポートします

デフォルトのデータセット トレーニング モデルでは、train_test_split で乱数シードを設定することで、後続の分割の一貫性が確保されます。

 %% 時間
X , y = load_breast_cancer ( return_X_y = True )
X_train X_test y_train y_test = train_test_split ( X y random_state = 3 )です。
rf =ランダムフォレスト分類器(最大深度= 5 ランダム状態= 3 )
rf .fit ( X_train y_train )を実行します。
rf .score ( X_test y_test )のスコア
# 出力結果
CPU 時間:ユーザー237ミリ秒システム: 17.5ミリ秒合計: 254ミリ秒
ウォールタイム: 238ミリ秒
0.9370629370629371

フィルタリング方法の特徴選択スキームは、sklearn で SelectKBest を呼び出すことによって実装されます。特徴とラベル間の相関関係を測定するために内部のデフォルトの F テストが使用され、特徴次元は 20 に設定されます。

 %% 時間
X_skb = SelectKBest ( k = 20 ) .fit_transform ( X , y )
X_skb_train X_skb_test y_train y_test = train_test_split ( X_skb y random_state = 3 )
rf =ランダムフォレスト分類器(最大深度= 5 ランダム状態= 3 )
rf .fit ( X_skb_train y_train )を実行します。
rf .score ( X_skb_test y_test )のスコア
# 出力結果
CPU 時間:ユーザー204ミリ秒システム: 7.14ミリ秒合計: 211ミリ秒
ウォールタイム: 208ミリ秒
0.9300699300699301

ラッパー メソッドの特徴選択スキームは、sklearn で RFE を呼び出すことによって実装されます。渡される目的関数、つまりアルゴリズム モデルはランダム フォレストであり、特徴選択次元も 20 に設定されています。

 %% 時間
X_rfe = RFE ( RandomForestClassifier ( ) n_features_to_select = 20 ) .fit_transform ( X y )
X_rfe_train X_rfe_test y_train y_test = train_test_split ( X_rfe y random_state = 3 )
rf =ランダムフォレスト分類器(最大深度= 5 ランダム状態= 3 )
rf .fit ( X_rfe_train y_train )
rf .score ( X_rfe_test y_test )
# 出力結果
CPU 時間:ユーザー2.76システム: 4.57ミリ秒合計: 2.76
ウォールタイム: 2.76
0.9370629370629371

埋め込み法の特徴選択スキームは、sklearn で SelectFromModel を呼び出すことによって実装されます。依存アルゴリズム モデルもランダム フォレストに設定され、特徴選択次元は 20 のままです。

 %% 時間
X_sfm = SelectFromModel ( RandomForestClassifier ( ) しきい値=-1 最大特徴= 20 ) .fit_transform ( X y )
X_sfm_train X_sfm_test y_train y_test = train_test_split ( X_sfm y random_state = 3 )
rf =ランダムフォレスト分類器(最大深度= 5 ランダム状態= 3 )
rf .fit ( X_sfm_train y_train )を実行します。
rf .score ( X_sfm_test y_test )のスコア
# 出力結果
CPU 時間:ユーザー455ミリ秒システム: 0ナノ秒合計: 455ミリ秒
経過時間: 453ミリ秒
0.9370629370629371

上記の簡単な比較実験から、元のフル機能ソリューションと比較して、20 次元の機能のみが保持されている場合、フィルタリング方式ではアルゴリズムのパフォーマンスがある程度低下するのに対し、ラッピング方式と埋め込み方式では同じモデル効果が維持されますが、埋め込み方式では大幅に時間が短縮されることがわかります。

<<:  人工知能は投資家に好まれているが、投資家は市場に参入する際には注意する必要がある

>>:  ニュースローン賞受賞者 宋 樹蘭: 視覚の観点からロボットの「目」を構築する

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

AI テクノロジーは二酸化炭素排出量とどのような関係があるのでしょうか?

現在、世界のビジネスで大きな波を起こしている大きなトレンドが 2 つあります。 1 つ目は、企業が生...

人工知能技術は成熟しており、AI音声業界は幅広い発展の見通しを迎えている

新しいインフラの波の下で、業界のデジタル変革は本格化しています。この過程で、AI音声は近年最も成熟し...

人工知能のヒューマニズム:AIをより愛らしくする方法

1. デジタル格差が拡大し、高齢者は「デジタル難民」となっている最近、高齢者に関する2つのニュース...

世界の半導体サプライチェーンにおけるリスクを排除するにはどうすればよいでしょうか?

過去数年間、テクノロジー業界は半導体サプライチェーンにおける前例のない混乱の影響を感じてきました。研...

...

...

Pythonディープラーニングフレームワークの比較の詳細な分析

PyTorch から Mxnet まで、これらの Python ディープラーニング フレームワークを...

...

...

ディープラーニング最適化アルゴリズムがどのように機能するかを知りたいですか?クリックしてください!急いで

ディープラーニングは高度に反復的なプロセスです。最適な組み合わせを決定するには、ハイパーパラメータの...

人工知能とブロックチェーン技術は芸術をどのように解放できるのでしょうか?

2022年において、アートがテクノロジーから切り離されていることを想像するのは難しいです。 AI、...

PyTorch と TensorFlow で画像分類モデルをトレーニングする方法

導入画像分類は、コンピューター ビジョンの最も重要なアプリケーションの 1 つです。その応用範囲は、...

2024 年の CIO の 14 の優先事項とトレンド

GenAI は 2024 年の最大のテクノロジー トレンドとなり、新しいツールのレビュー、インフラス...

専門家の意見: AIアプリケーションでは、ビッグデータよりもワイドデータが価値がある

今日の急速に変化するデジタル世界では、データの使用は進化し続けており、企業は構造化データと非構造化デ...