25 特異値分解

特徴抽出用の教師なしアルゴリズムである特異値分解アルゴリズムの使用方法を学習します。

25.1 特異値分解とは

特異値分解(SVD)と、それに密接に関連する主成分分析(PCA)は、適用範囲の広い確立した特徴抽出方法です。Oracle Data Miningは、特徴抽出アルゴリズムとしてSVDを、SVDモデルの特別なスコアリング方法としてPCAを実装しています。

SVDおよびPCAは、基礎となるデータ分散を取得する場合に最適な直交線形変換です。この特性は、高次元データのディメンション性を減少させ、有益なデータの視覚化をサポートする場合に非常に役立ちます。

SVDおよびPCAには、ディメンション性の低減以外にも、多くの重要な利用方法があります。これには、マトリックス反転、データ圧縮、不明なデータ値の帰属計算などがあります。

25.1.1 行列操作

特異値分解(SVD)は、矩形行列Xを3つの行列の積に分解する因数分解方法です。

  • U行列は、「左」正規直交基底のセットから構成されます
  • S行列は、対角行列です
  • V行列は、「右」正規直交基底のセットから構成されます

Sの値は、特異値と呼ばれます。これらは、非負数で、それらの大きさは対応する基底(成分)の重要度を示します。特異値は、基底によって取得されたデータ分散の量を反映します。第1基底(最大の特異値を持つ基底)は、最大のデータ分散の方向に存在します。第2基底は、2番目の最大分散を持つ直交方向を取得します(以降同様に続きます)。

SVDは、基本的に、変換された軸をデータの最大分散の方向に揃える座標回転を実行します。これは、観測されるデータに高いS/N比が存在し、大きい分散が目的のデータ内容に対応し、小さい分散がノイズに対応するという仮定の下では有益な手順です。

SVDでは、基礎となるデータがガウス分布に従っており、平均と共分散の観点から適切に記述できると仮定します。

25.1.2 低ランクの分解

ディメンション性を減少させるため、特異値分解(SVD)では、低次の基底(最大の特異値を持つ基底)を維持し、高次の基底(最小の特異値を持つ基底)を無視します。低次の基底は、その分散に最も影響を与えているデータ特性を保持し、データの最も重要な側面を取得する可能性が高いという考え方が、この方針の背後にある原理です。

データ・セットX (nxm)が指定されると(nは行数でmは属性数)、低ランクSVDはk成分(k <= min(m, n))のみを使用します。SVDの典型的な実装では、k の値は、個々の成分に関連付けられたランク付きの特異値の外観検査を必要とします。Oracle Data Miningでは、SVDによって、説明した分散の大幅な低下に対応するカットオフ・ポイントが自動的に評価されます。

SVDによって、正規直交基底の2つのセット(UV)が生成されます。これらの基底のどちらでも新しい座標系として使用できます。Oracle Data MiningのSVDでは、Vが新しい座標系で、Uはこの座標系のXの投影を表します。アルゴリズムによって、新しいデータの投影が次のように計算されます。

図25-2 新しいデータの投影の計算

図25-2の説明が続きます
「図25-2 新しいデータの投影の計算」の説明

ここで、X (nxk)は、最初のk個の成分によって定義される、縮約されたデータ空間の投影データで、VkおよびSkは、縮約された成分セットを定義します。

25.1.3 スケーラビリティ

Oracle Data Miningでは、特異値分解(SVD)は数百万行および数千の属性を持つデータ・セットを処理できます。Oracle Data Miningでは、データに基づいて、ディメンション性の低減のために適切な特徴の数が自動的に推奨されます。

SVDには、完全な分解を計算する際に、行の数に応じた線形のスケーラビリティと属性の数に応じた3次元のスケーラビリティがあります。低ランクの分解は、通常、行の数および列の数に対して線形です。ランクを低下させた場合、スケーラビリティは、そのランクを行および列の数と比較した結果に依存します。ランクが大幅に低下する場合は線形に、同じスケールにある場合は3次元になります。

25.2 アルゴリズムの構成

特異値分解(SVD)の構成について学習します。

SVDアルゴリズムを構成する場合、複数のオプションを使用できます。たとえば、モデル・サイズおよびパフォーマンスを制御する設定や、SVD投影または主成分分析(PCA)投影のどちらでスコアリングするかを指定する設定があります。

25.2.1 モデル・サイズ

特異値分解のU行列は作成データの行数と同じ数の行を持ちます。大規模なモデルの作成を回避するため、U行列は、アルゴリズム固有の設定が有効な場合にのみ維持されます。デフォルトでは、U行列は維持されません。

25.2.2 パフォーマンス

特異値分解では、近似計算を使用してパフォーマンスを向上させることができます。近似処理は、多くの列を含むデータセットに対しては適切である可能性があります。近似処理の低ランク分解では、適切な計算コストで十分な結果を得られます。近似処理の品質は、データの特性に依存します。

25.2.3 PCAスコアリング

主成分分析(PCA)投影を実行するための特異値分解(SVD)の構成について学習します。

SVDモデルは、PCA投影を実行するように構成できます。PCAは、SVDと密接に関連しています。PCAは、説明した対応する分散によってランク付けされる正規直交基底(主成分)のセットを計算します。SVDとPCAの主な違いは、PCA投影は特異値によってスケーリングされないところにあります。新しい座標系に対するPCA投影は、次の式によって与えられます。

ここで、大文字Xの上のチルダ (nxk)は、最初のk個の成分によって定義される、縮約されたデータ空間の投影データで、Vkは、縮約された成分セットを定義します。

25.3 SVD用のデータ準備

特異値分解(SVD)のデータ準備について学習します。

Oracle Data Miningは、量的データおよび質的データでSVDを実装しています。

構築データがSVDでスコアリングされる場合、自動データ準備は何もしません。構築データが主成分分析(PCA)でスコアリングされる場合、自動データ準備は量的データを平均値でシフトします。

欠損値の処理は、Oracle Data Miningのアルゴリズムによって自動的に行われるため、必要ありません。SVDでは、量的欠損値は平均値に置換され、質的欠損値は最頻値に置換されます。スパース・データ(ネストした列の欠損値)の場合、SVDによって欠損値は0 (ゼロ)に置換されます。