回答:
簡単に言えば:
特徴抽出の例:画像の輪郭の抽出、テキストからのダイグラムの抽出、音声テキストの録音からの音素の抽出など。
特徴抽出には、特徴の変換が含まれます。これは、次元削減の過程で一部の情報が失われるため、元に戻せないことがよくあります。
次元削減とは、通常、データ内のすべての分散ではなくほとんどの分散を記述することができる基底または数学的表現を選択することで、関連する情報を保持しながら、表現に必要な情報量を減らします。そこを含むがこれらに限定されないこれを行うための様々な技術がありPCA
、ICA
とMatrix Feature Factorization
。これらは、既存のデータを取得し、最も差別的なコンポーネントに削減します。これらはすべて、より少ない、より差別的な機能でデータセット内のほとんどの情報を表すことができます。
機能選択は、非常に差別的な機能を手動で選択することです。これは、分析よりも機能エンジニアリングと関係があり、データサイエンティストの側で非常に多くの作業が必要です。予測を行う際に、データセットのどの側面が重要であり、どの側面が重要でないかを理解する必要があります。通常、特徴抽出には、既存の特徴の複合である新しい特徴の生成が含まれます。これらの手法はどちらも機能エンジニアリングのカテゴリーに分類されます。通常、フィーチャエンジニアリングは、データセットに存在しない情報を作成し、S / N比を高めるため、最良の結果を取得する場合に重要です。
Dimensionality Reduction
条項に同意しますが、Feature Engineering
使用法が少し異なります-私が見たものはそれだけ Feature Extraction
です:Feature Selection
別々に考慮されます。用語の違いにすぎません。
@damienfrancoisの回答のように、機能の選択は機能のサブセットの選択に関するものです。したがって、NLPでは、特定の単語のセットを選択します(NLPでの一般的なことは、各単語が、単語の頻度またはTF / IDFなどに基づく他の重みに等しい値を持つ特徴を表すことです)。
次元削減は、元のフィーチャが表現される新しいフィーチャスペースの導入です。新しいスペースは、元のスペースよりも低い次元です。テキストの場合の例は、テキストを数ビット(16または32など)またはバイトのベクトルに減らすハッシュトリックです。驚くべきことは、スペースのジオメトリが保持されているため(十分なビットが与えられているため)、ドキュメント間の相対距離は元のスペースと同じままなので、バインドされていない(および膨大な数のof)テキストで見つかった寸法。
特徴選択とは、統計スコアに基づいていくつかの特徴を選択することですが、特徴抽出では、フーリエ変換を使用した信号の興味深い周波数など、データからいくつかの第2層情報を抽出する手法を使用します。
次元削減とは、データを低次元空間に変換することであり、データはそのユークリッド構造を保持しますが、次元の呪いは受けません。たとえば、各ドキュメントをn次元空間のポイントとしてモデル化でき、nが大きすぎる(おもちゃの例)データセットからいくつかの単語特徴を抽出するとします。この場合、高次元空間の距離の歪みに応じて、多くのアルゴリズムが機能しません。ここで、最も有益な機能を選択するか、PCA、LLEなどの次元削減方法を使用して低次元多様体に変換することにより、次元を削減する必要があります。
適切なレビューと定義については、 『機能抽出の基礎とアプリケーション』の「次元削減と変数選択」をご覧ください。 機能抽出は、機能構築と機能選択の2つのステップに分解されます。
A1。次元削減とは:行がインスタンスで列が属性(または機能)であるマトリックスのデータを考える場合、次元削減はこのデータマトリックスをより少ない列を持つ新しいマトリックスにマッピングすることです。視覚化のために、各マトリックス列(属性)を特徴空間の次元と考える場合、次元削減は、高次元空間(より多くの列)から低次元サブ空間(より少ない列)へのインスタンスの投影です。 この変換の典型的な目的は、(1)計算の複雑さを軽減しながら、データマトリックスの情報を保持することです。(2)データ内の異なるクラスの分離性を改善します。
A2。特徴選択または特徴抽出としての次元削減:ユビキタスIrisデータセットを使用します。これは、おそらくデータサイエンスの「ハローワールド」です。簡単に説明すると、Irisデータセットには3つのクラスと4つの属性(列)があります。Irisデータセットの次元を4から2に減らすタスクの特徴選択と抽出を説明します。
seabornというPythonのライブラリを使用して、このデータセットのペアワイズ共分散を計算します。コードは次のとおりsns.pairplot(アイリス、色相=「種」、マーカー= [「O」、「S」、「D」])私が手図である 私ができる選択提供する属性(2次元)の対をIrisデータセット内の3つのクラス(種)間の最大の分離。これは機能選択の場合です。
次は特徴抽出です。ここでは、アイリスの4次元の特徴空間を、元の空間と軸が揃っていない新しい2次元の部分空間に投影しています。これらは新しい属性です。通常、元の高次元空間での分布に基づいています。最も一般的な方法は、元の空間で固有ベクトルを計算する主成分分析です。 明らかに、固有ベクトルに基づいた部分空間への線形およびグローバル投影のみを使用することに制限されません。非線形投影法も使用できます。ニューラルネットワークを使用した非線形PCAの 例を次に示します。最後の例の属性(次元)が抽出されますニューラルネットワークを使用した元の4つの属性から。このpcaメソッドコードを使用して、アイリスデータセットのさまざまな種類のPCAを試すことができます。
概要:特徴抽出方法は、特徴選択よりもパフォーマンスが優れているように見える場合がありますが、選択はアプリケーションによって決まります。特徴抽出からの属性は、通常、物理的な解釈を失います。これは、手元のタスクに基づいた問題である場合とそうでない場合があります。たとえば、高価なセンサーを使用して非常に高価なデータ収集タスクを設計しており、属性(さまざまなセンサーの数)を節約する必要がある場合、使用可能なすべてのセンサーを使用して小さなパイロットサンプルを収集し、次に選択するセンサーを選択しますビッグデータ収集タスクにとって最も有益です。
scikit-learnとTensorflowを使用したハンズオン機械学習から抽出
ここでのいくつかの素晴らしい答え、特に@damienfrancoisの答えは一般的なアイデアを非常に簡潔に捉えています。
ただし、リレーショナルデータまたは時系列データの機能エンジニアリングの例は見当たりません。その場合、データサイエンティストは通常、関係全体および長期にわたって統計パターンを抽出します。たとえば、eコマースデータベースで今後顧客が何をするかを予測するために、過去の平均購入金額や過去の購入頻度などの数量を抽出することがあります。
このトピックに関する記事をいくつか書いて、いくつかの例を挙げて詳しく説明します:https : //www.featurelabs.com/blog/feature-engineering-vs-feature-selection/
特徴抽出と、なぜ特徴選択と次元削減の必要があるのかという逆順から始めましょう。
主に分類を目的とする特徴抽出の使用から始めます。分類とは、特定のオブジェクトが属するカテゴリを決定するプロセスです。それには2つのフェーズがありますi)トレーニングフェーズ、データまたはオブジェクトが与えられた場合、それらのプロパティは何らかのプロセス(フィーチャ抽出)を使用して学習されます
データの目的が基礎となるパターンを見つけることであることを考えると、名前が示すように特徴抽出。そのそれぞれのデータに対応する特徴としての用語であるこの基礎パターン。サポートベクターマシン(SVM)などの特徴抽出には、さまざまな方法論が存在します。
さて、特徴抽出は、あるべき特徴を生成するはずです
機能の選択:特定のデータセットは、単一の機能または機能セットのいずれかで表すことができます。分類プロセスでは、システムは少なくとも2つのクラスについてトレーニングされます。そのため、トレーニングシステムは単一の機能または一連の機能を生成します。これらの機能には、上記のプロパティが必要です。
問題は、各クラスに機能セットがあり、いくつかの機能間に相関関係がある場合に発生します。これは、それらの相関する特徴のうち、表現に1つまたは少数で十分であることを意味しており、そこから特徴の選択が行われます。また、これらの機能は、機能セットのメモリ要件の増加とともに保存する必要があります。
次に、特徴選択プロセスの一部に過ぎない次元削減が行われます。これは、データを最もよく説明する最適な機能セットを選択するプロセスです。主成分分析、独立成分分析、マトリックス因数分解など、同じための多くの手法があります。