特徴選択の紹介
このトピックでは、特徴選択アルゴリズムの基本と、Statistics and Machine Learning Toolbox™ で利用できる特徴選択関数について説明します。
特徴選択アルゴリズム
"特徴選択" では、測定した特徴 (予測子変数) のサブセットのみを選択してモデルを作成することによりデータの次元を削減します。特徴選択アルゴリズムは、必要な、もしくは除外すべき特徴量、サブセットのサイズなどの制約のもとで、測定された応答を最適にモデル化する予測子のサブセットを探索します。特徴選択の主なメリットは、予測性能を改善し、より高速で費用対効果の高い予測子を提供し、データ生成プロセス[1]の理解を深められることです。使用する特徴量の数が多すぎると、すべての特徴量が関連性を持ち応答変数に関する情報を含んでいたとしても、予測性能が低下する場合があります。
特徴選択アルゴリズムは次の 3 つの種類に分けることができます。
フィルター タイプ特徴選択 — フィルター タイプ特徴選択アルゴリズムは、特徴量の分散や特徴量の応答に対する関連度といった特徴量の特性によって特徴量の重要度を測定します。データの前処理ステップの一部として重要な特徴量を選択し、選択した特徴量を使用してモデルを学習させます。そのため、フィルター タイプ特徴選択は学習アルゴリズムとは無相関です。
ラッパー タイプ特徴選択 — ラッパー タイプ特徴選択アルゴリズムは、特徴量のサブセットを使用して学習を開始し、その後に選択基準を使用して特徴量を追加または削除します。選択基準は、特徴量を追加または削除することによるモデル性能の変化を直接測定します。アルゴリズムは、停止条件が達成されるまで学習とモデルの改善を繰り返します。
組み込み型特徴選択 — 組み込み型特徴選択アルゴリズムは、モデルの学習プロセスの一部として特徴量の重要度を学習します。一度モデルを学習させると、学習済みモデルの中に特徴量の重要度が得られます。この種のアルゴリズムでは、特定の学習プロセスに対してうまく機能する特徴量が選択されます。
さらに、アルゴリズムが特徴量を逐次にランク付けするかどうかによって、特徴選択アルゴリズムを分類できます。Minimum Redundancy Maximum Relevance (MRMR) アルゴリズムとステップワイズ回帰は、逐次特徴選択アルゴリズムの 2 つの例です。詳細については、逐次特徴選択を参照してください。
部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットを作成することにより、予測子変数の重要度を視覚的に比較できます。詳細については、plotPartialDependence
を参照してください。
分類問題の場合、特徴量を選択した後、2 つのモデル (たとえば、完全なモデルと、予測子のサブセットを使用して学習したモデル) を学習させ、関数 compareHoldout
、testcholdout
、または testckfold
を使用して精度を比較することができます。
元々の特徴量とその単位が重要であり、モデリングの目標が影響力のあるサブセットの特定である場合、特徴選択は特徴変換よりも適切です。カテゴリカル特徴量が存在し、数値への変換が不適切な場合、特徴選択は次元削減の主要な方法になります。
特徴選択関数
Statistics and Machine Learning Toolbox には、特徴選択のために複数の関数が用意されています。対象の問題と特徴量のデータ型に基づき、適切な特徴選択関数を選択してください。
フィルター タイプ特徴選択
関数 | サポートされる問題 | サポートされるデータ型 | 説明 |
---|---|---|---|
fscchi2 | 分類 | categorical 特徴量および連続的特徴量 | 個々のカイ二乗検定を使用して各予測子変数が応答変数から独立しているかどうかを調べた後、カイ二乗検定統計量の p 値を使用して特徴量をランク付けします。 例については、関数 |
fscmrmr | 分類 | categorical 特徴量および連続的特徴量 | Minimum Redundancy Maximum Relevance (MRMR) アルゴリズムを使用して逐次的に特徴量をランク付けします。 例については、関数 |
fscnca * | 分類 | 連続的特徴量 | 近傍成分分析 (NCA) を対角的に適用することにより、特徴量の重みを特定します。これは、観測値間のペアワイズ距離を使用して応答を予測する距離ベースの教師ありモデルにおいて特徴量の重要度を推定するのに最適なアルゴリズムです。 詳細については、関数
|
fsrftest | 回帰 | categorical 特徴量および連続的特徴量 | F 検定を使用して各予測子の重要度を個別に調べた後、F 検定統計量の p 値を使用して特徴量をランク付けします。各 F 検定は、予測子変数値でグループ化された応答値が、平均が同じである複数の母集団から抽出されたという仮説を、母集団の平均はすべて同じではないという対立仮説に対して検定します。 例については、関数 |
fsrmrmr | 回帰 | categorical 特徴量および連続的特徴量 | Minimum Redundancy Maximum Relevance (MRMR) アルゴリズムを使用して逐次的に特徴量をランク付けします。 例については、関数 |
fsrnca * | 回帰 | 連続的特徴量 | 近傍成分分析 (NCA) を対角的に適用することにより、特徴量の重みを特定します。これは、観測値間のペアワイズ距離を使用して応答を予測する距離ベースの教師ありモデルにおいて特徴量の重要度を推定するのに最適なアルゴリズムです。 詳細については、関数
|
fsulaplacian | 教師なし学習 | 連続的特徴量 | ラプラシアン スコアを使用して特徴量をランク付けします。 例については、関数 |
relieff | 分類および回帰 | すべて categorical またはすべて連続的な特徴量 | 分類にはReliefFアルゴリズム、回帰にはRReliefFアルゴリズムを使用して特徴量をランク付けします。これは、観測値間のペアワイズ距離を使用して応答を予測する距離ベースの教師ありモデルにおいて特徴量の重要度を推定するのに最適なアルゴリズムです。 例については、関数 |
sequentialfs | 分類および回帰 | すべて categorical またはすべて連続的な特徴量 | カスタム基準を使用して逐次的に特徴量を選択します。データの特性を測定して特徴量を選択する関数を定義して、関数ハンドルを関数 |
*fscnca
と fsrnca
は、組み込み型特徴選択関数とみなすこともできます。これらは、学習済みモデル オブジェクトを返し、オブジェクト関数 predict
および loss
を使用できるためです。しかし、通常、これらのオブジェクト関数はアルゴリズムの正則化パラメーターを調整するために使用されます。関数 fscnca
または fsrnca
でデータ前処理ステップの一部として特徴量を選択した後、問題に別の分類または回帰アルゴリズムを適用することができます。
ラッパー タイプ特徴選択
関数 | サポートされる問題 | サポートされるデータ型 | 説明 |
---|---|---|---|
sequentialfs | 分類および回帰 | すべて categorical またはすべて連続的な特徴量 | カスタム基準を使用して逐次的に特徴量を選択します。教師あり学習アルゴリズムを実装する関数または学習アルゴリズムの性能を測定する関数を定義し、関数ハンドルを関数 例については、関数 |
組み込み型特徴選択
関数 | サポートされる問題 | サポートされるデータ型 | 説明 |
---|---|---|---|
ClassificationDiscriminant モデル オブジェクトの DeltaPredictor プロパティ | 線形判別分析による分類 | 連続的特徴量 |
例については、以下のトピックを参照してください。
|
fitcecoc と templateLinear | 高次元データのマルチクラス学習の線形分類 | 連続的特徴量 |
たとえば、交差検証の使用による適切な LASSO ペナルティの特定を参照してください。この例は、 |
fitclinear | 高次元データのバイナリ学習の線形分類 | 連続的特徴量 |
たとえば、Find Good Lasso Penalty Using Cross-Validated AUCを参照してください。この例は、AUC の値を使用して異なる強度値でモデルを評価することにより、適した LASSO ペナルティの強度を決定します。 |
fitrgp | 回帰 | categorical 特徴量および連続的特徴量 |
例については、以下のトピックを参照してください。
|
fitrlinear | 高次元データの線形回帰 | 連続的特徴量 |
例については、以下のトピックを参照してください。
|
lasso | 線形回帰 | 連続的特徴量 |
例については、関数
|
lassoglm | 一般化線形回帰 | 連続的特徴量 |
詳細については、関数
|
ClassificationBaggedEnsemble の oobPermutedPredictorImportance ** | バギングされた決定木 (ランダム フォレストなど) のアンサンブルによる分類 | categorical 特徴量および連続的特徴量 |
例については、関数のリファレンス ページとトピック |
RegressionBaggedEnsemble の oobPermutedPredictorImportance ** | バギングされた決定木 (ランダム フォレストなど) のアンサンブルによる回帰 | categorical 特徴量および連続的特徴量 |
例については、関数 |
特定の分類モデルおよび回帰モデル (Mdl ) の permutationImportance | 分類および回帰 | categorical 特徴量および連続的特徴量 | 分類モデルまたは回帰モデルに学習させます。その後、 例については、関数 |
ClassificationEnsemble の predictorImportance ** | 決定木のアンサンブルによる分類 | categorical 特徴量および連続的特徴量 |
例については、関数 |
ClassificationTree の predictorImportance ** | 決定木による分類 | categorical 特徴量および連続的特徴量 |
例については、関数 |
RegressionEnsemble の predictorImportance ** | 決定木のアンサンブルによる回帰 | categorical 特徴量および連続的特徴量 |
例については、関数 |
RegressionTree の predictorImportance ** | 決定木による回帰 | categorical 特徴量および連続的特徴量 |
例については、関数 |
stepwiseglm *** | 一般化線形回帰 | categorical 特徴量および連続的特徴量 |
詳細については、関数
|
stepwiselm *** | 線形回帰 | categorical 特徴量および連続的特徴量 |
詳細については、関数
|
**木ベースのアルゴリズムでは、交互作用テストを使用して最適な分割予測子を選択するために、'PredictorSelection'
を 'interaction-curvature'
に指定します。交互作用テストは、多くの無関係な変数が存在する状況下で重要な変数を特定するのに役立ちます。また、多数の予測子が学習データに含まれている場合、学習について 'NumVariablesToSample'
を 'all'
に指定します。このようにしないと、重要度が過小評価されて一部の予測子が選択されない可能性があります。詳細については、fitctree
、fitrtree
および templateTree
を参照してください。
***stepwiseglm
および stepwiselm
は別の学習関数のラッパーとして使用できないため、ラッパー タイプの関数ではありません。ただし、これら 2 つの関数はラッパー タイプのアルゴリズムを使用して重要な特徴量を見つけます。
参照
[1] Guyon, Isabelle, and A. Elisseeff. "An introduction to variable and feature selection." Journal of Machine Learning Research. Vol. 3, 2003, pp. 1157–1182.
参考
rankfeatures
(Bioinformatics Toolbox)