11 特徴抽出
特徴抽出を教師なし機能として使用して、属性削減を実行する方法を学習します。
Oracle Machine Learning for SQLでは、教師なし機械学習機能として特徴抽出がサポートされています。
11.1 特徴抽出について
特徴抽出では、元の属性を線形組合せに変換して次元数を減らし、モデル品質を向上できます。
特徴抽出は、ディメンション性を削減する手法です。最も重要な属性を選択および保持する特徴選択とは異なり、特徴抽出では実際に属性を変換します。Oracle Machine Learningでは、変換された属性(特徴)は、元の属性の一次結合です。
特徴抽出の手法によって、より小さく上質な属性のセットが生成されます。特徴の最大数は、ユーザーが指定するか、アルゴリズムによって決定されます。デフォルトでは、アルゴリズムによって決定されます。
抽出した特徴で構築されたモデルでは、データを表現する少ない属性の弱い属性で見つかったシグナルが集約されるため、質が高くなります。ただし、結果として得られる特徴とモデルを解釈することは、より困難になります。
各特徴または属性は、そのような次元の1つと考えることができます。特徴抽出では、高いディメンション性を持つデータセットを、少数のディメンションに投影します。そのため、特徴抽出はデータ・ビジュアライゼーションに役立ちます(ディメンションを2つまたは3つに削減すると、複雑なデータセットを効果的にビジュアル化できるためです)。
特徴抽出の用途には、潜在意味解析、データ圧縮、データ分解および投影、パターン認識などがあります。特徴抽出は、機械学習アルゴリズムの速度と効果を高めるためにも使用できます。
特徴抽出は、一連のキーワードとその頻度によって表されるドキュメントのまとまりからテーマを抽出する場合に使用できます。各テーマ(特徴)は、キーワードの組合せで表されます。これにより、発見されたテーマで各ドキュメントを表現できるようになります。
11.2 特徴抽出とスコアリング
データ表現の改善のために特徴抽出を使用して、ターゲットなしで入力データを特徴に変換します。
-
個々の特徴または属性を、他のアルゴリズムへの入力として使用できる列として生成します。
-
複数の次元で構成されるベクトル出力を作成します。各次元は1つの特徴または属性に対応します。
どちらのアプローチもデータ表現を改善し、ダウンストリーム分析タスクを可能にします。ただし、ベクトル出力には、大規模で密度の高いデータを処理するためのその他の利点があります。
OMLの特徴抽出アルゴリズムは、入力データを一連の特徴または次元に変換し、データの表現を改善します。教師なし機械学習手法として、特徴抽出にはターゲットは含まれません。これにより、モデルで入力から意味のある属性を抽出し、後続の分析用にデータを最適化できます。
-
FEATURE_ID
およびFEATURE_VALUE
演算子は、個々の特徴を抽出します。 -
FEATURE_SET
は、特徴IDと値のペア・セットを返します。 -
VECTOR_EMBEDDING
演算子によって、OML特徴抽出モデルのVECTOR
データ型出力が可能になりし、ベクトル化のための統一されたアプローチが容易になります。
FEATURE_SET
演算子は、予測全体の結果を取得します。つまり、可能なかぎり多くのデータの構造と情報を維持しながら、高次元データを低次元領域に変換します。この操作を使用して、すべての特徴IDの特徴値を問い合せることができます。出力表現は、大規模で密度の高いデータには理想的ではなく、類似検索などのベクトルベースの操作で使用するには追加の処理が必要です。OMLでは、SVD、PCA、NMF、ESAなどの特徴抽出モデルの出力表現(ランダム投影を使用)としてVECTOR
データ型を使用できるVECTOR_EMBEDDING
演算子の使用がサポートされており、これらのアルゴリズムの使いやすさが向上します。ベクトル出力の利点は、次のとおりです。
-
ベクトル出力では、データ表現が最適化され、よりコンパクトな形式を提供し、後続の分析タスクの計算要件が削減されます。
-
ベクトル出力は、リレーショナル・データの類似検索など、ベクトルベースの操作を可能にします。
次のケースは、ベクトル出力がどのように決定されるかを示しています:
-
出力ベクトルの次元の決定: 特徴抽出モデルのデータ・ディクショナリ・ビュー
USER/ALL/DBA_MINING_MODEL_ATTRIBUTES
およびUSER/ALL/DBA_MINING_MODEL_XFORMS
には、DTYVECデータ型の新しい属性ORA$VECTOR
があります。次元および記憶域のタイプの詳細は、VECTOR_INFO
列を参照してください。出力ベクトルの次元は、必要な特徴の数および指定する特徴の数に対応します。これを指定しない場合、アルゴリズムではデータに基づいて最適な次元を決定し、説明された差異の大幅な減少などの自然なカットオフ・ポイントを探します。
- FLEX次元ベクトルを使用したパーティション化されたモデルの処理: パーティション化されたモデルの場合、データの各パーティションに異なる複雑さの特性またはレベルがあり、その結果、パーティションごとに異なる次元を持つ投影が発生する可能性があります。たとえば、あるパーティションでは、意味のある特徴が少なくなり、次元の投影が低くなる場合があります。別のパーティションでは、データの複雑さが増し、その結果、より高い次元の投影が発生する可能性があります。このような場合は、FLEX次元ベクトルを使用して、様々な次元に対応しています。パーティション化されたセットを考慮したOMLのパーティション化モデルは、各パーティションのベクトルを分離で使用し、そのパーティションの特定のデータ特性を活用します。FLEX次元タイプは、ベクトル形式を使用して
VECTOR_INFO
に格納されます。ALL_MINING_MODEL_ATTRIBUTESを参照してください。 - 特殊なケース: 特徴なし: モデルに特徴がまったくない場合、システムは空のエントリを出力し、
FEATURE_VALUE
演算子の現在の動作との整合性を維持します。
VECTOR_EMBEDDING
演算子と組み合せて特徴抽出を使用する方法のステップバイステップの例については、「OML特徴抽出アルゴリズムを使用したリレーショナル表のベクトル化」を参照してください。
ノート:
VECTOR
データ型およびVECTOR_EMBEDDING
演算子は、新しく作成されたモデルにのみ適用されます。古いモデルに必要なベクトル出力メタデータがなく、VECTOR_EMBEDDING
演算子が使用されている場合、演算子がモデルと互換性がないことを示す40290エラーが発生します。