プライマリ・コンテンツに移動
Oracle® Data Mining概要
12cリリース1 (12.1) B72966-03
目次へ移動
目次
索引へ移動
索引

前
次
次へ

19 特異値分解

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

特異値分解とは

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

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

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

行列操作

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

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

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

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

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

低ランクの分解

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

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

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

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

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

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

スケーラビリティ

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

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

アルゴリズムの構成

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

モデル・サイズ

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

パフォーマンス

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

PCAスコアリング

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

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

関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』のDBMS_DATA_MININGのアルゴリズム定数と設定の特異値分解に関する項

SVD用のデータ準備

Oracle Data Miningは、量的データおよび質的データの特異値分解(SVD)を実装します。

自動データ準備では、SVD用の正規化が実行されます。SVDは外れ値の影響を受けるため、外れ値を処理するための追加のデータ準備は有益である可能性があります。

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

関連項目:

  • 『Oracle Data Miningユーザーズ・ガイド』データの準備に関する項

  • 『Oracle Data Miningユーザーズ・ガイド』データの変換に関する項