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

前
次
次へ

20 サポート・ベクター・マシン

統計的学習理論に基づいた強力なアルゴリズムであるサポート・ベクター・マシンを使用する方法を学習します。

Oracle Data Miningには、分類、回帰および異常検出に対してサポート・ベクター・マシンが実装されています。

この章には次のトピックが含まれます:

関連項目:

サポート・ベクター・マシンとは

サポート・ベクター・マシン(SVM)は、Vapnik-Chervonenkis理論に基づいた強固な理論的基礎を持つ最新の強力なアルゴリズムです。SVMは、強力な正則化プロパティを持ちます。正則化とは、新しいデータへのモデルの一般化を指します。

SVMの利点

SVMモデルは、一般的なデータ・マイニング手法であるニューラル・ネットワークおよび動径基底関数に似た関数形式を持ちます。ただし、どちらのアルゴリズムも、SVMの基盤を形成する正則化に対して根拠のある理論的アプローチを持ちません。SVMのトレーニングの容易性と一般化の質は、これらのより伝統的な手法の機能をはるかに凌いでいます。

SVMでは、テキストや画像の分類、手書き文字の認識、バイオインフォマティクスや配列分析など、実際の世界の複雑な問題をモデル化できます。

SVMは、モデルのトレーニング対象となるケースがほとんどない場合でも、多数の属性を持つデータセットに対して十分に機能します。属性の数に上限はなく、ハードウェアによる制約があるのみです。従来のニューラル・ネットワークは、こうした環境下ではうまく機能しません。

Oracle Data MiningのSVMの利点

Oracle Data Miningは独自のサポート・ベクター・マシン(SVM)を実装しており、この実装では、SVMフレームワークに本来備わっている一部の制限を補いながら、このアルゴリズムの多くの利点を活かしています。Oracle Data MiningのSVMでは、本番レベルのデータ・マイニング・システムで必要とされるスケーラビリティおよび利用性が提供されます。

利用性

SVMは専門家のためのツールとみなされることが多いため、利用性は主要な改良点です。このアルゴリズムでは通常、データの準備、チューニングおよび最適化が必要です。Oracle Data Miningではこれらの要件が最小限になっています。専門的な知識がなくても、Oracle Data Miningで良質なSVMモデルを作成できます。次に例を示します。

スケーラビリティ

非常に大規模なデータセットを扱う場合は通常、サンプリングが必要になります。ただし、Oracle Data Miningのサポート・ベクター・マシン(SVM)では、必要に応じてトレーニング・データのサイズを削減するために、このアルゴリズム自体で層別サンプリングが行われるため、サンプリングは必要ありません。

Oracle Data MiningのSVMは非常によく最適化されています。グローバルなソリューションに対して小さなワーキング・セットを最適化することによって、モデルを増分的に作成します。モデルは、現在のワーキング・セットが収束するまでトレーニングされてから、新しいデータに適用されます。このプロセスは、収束条件が満たされるまで繰り返し続行されます。ガウス・カーネルでは、ワーキング・セットの管理にキャッシュ技術が使用されます。

Oracle Data MiningのSVMでは、モデルのトレーニングに必要な時間およびメモリーのリソースを削減しつつ、より小さくてコンパクトなモデルを作成する最適化方法である能動学習がサポートされています。「能動学習」を参照。

カーネルベースの学習

SVMはカーネルベースのアルゴリズムです。カーネルは、問題が解決される高次元空間に入力データを変換する関数です。カーネル関数は線形の場合も非線形の場合もあります。

Oracle Data Miningでは、線形カーネルおよびガウス(非線形)カーネルがサポートされています。

Oracle Data Miningでは、線形カーネル関数が、トレーニング・データ内の元の属性に関する一次方程式に還元されます。線形カーネルは、トレーニング・データ内に多数の属性が存在する場合に適しています。

ガウス・カーネルはトレーニング・データ内の各ケースを、n次元空間内の1点に変換します(ここで、nはケースの数です)。これらの点は、アルゴリズムによって同種のターゲット値を持つサブセットに分割されます。ガウス・カーネルは非線形セパレータを使用しますが、カーネル空間内では一次方程式を構築します。

能動学習

能動学習は、モデルの拡大を制御し、モデルの作成時間を削減するための最適化手法です。能動学習を適用しない場合、SVMモデルのサイズは、作成データセットのサイズに応じて大きくなるため、SVMモデルのトレーニング・セットは小規模から中規模なサイズ(100,000ケース未満)に事実上制限されます。能動学習では、この制限を克服する手段が提供されます。能動学習を適用すると、SVMモデルは非常に大きいトレーニング・セットに基づいて作成できます。

能動学習により、SVMアルゴリズムは最も有益なトレーニング・サンプルを学習し、データ全体を使用しないように制限されます。多くの場合、生成されるモデルの予測精度は、標準的な(精密な) SVMモデルの予測精度と同程度になります。

能動学習によって、分類、回帰または異常検出に関係なく、線形とガウスの両SVMモデルにおいて大幅な改善がなされます。ただし、非線形モデルは、能動学習なしの場合、非常に大きくなることがあり、メモリーおよび他のシステム・リソースに相当な負担を強いる可能性があるため、能動学習は特にガウス・カーネルに対してメリットがあります。

SVMモデルのチューニング

サポート・ベクター・マシン(SVM)には、データに基づいて適切な設定を自動的に選択するメカニズムが組み込まれています。分野によっては、システムで決定された設定をオーバーライドする必要がある場合もあります。

特に指定されていなければ、回帰、分類および異常検出に関する設定を指します。

関連項目:

SVMモデルの構成は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

SVM用のデータ準備

サポート・ベクター・マシン(SVM)のアルゴリズムは、量的属性でネイティブに動作します。このアルゴリズムでは、質的データはカテゴリ値ごとに2項属性のセットとして自動的に展開されます。たとえば、値marriedまたはsingleを持つ婚姻区分用の文字列の列は、marriedsingleという2つの量的属性に変換されます。新しい属性には、値1(true)または0(false)が格納されます。

単純な(ネストしていない)データ型の列に欠損値がある場合、SVMではそれらをランダムに欠損した値として解釈します。質的データの欠損値は最頻値に、量的データの欠損値は平均値に自動的に置換されます。

ネストした列に欠損値がある場合、SVMではそれらをスパースとして解釈します。スパースな量的データは0 (ゼロ)に、スパースな質的データはゼロ・ベクトルに自動的に置換されます。

正規化

サポート・ベクター・マシンでは、数値入力の正規化が必要です。正規化によって、量的属性の値が同じスケール上に配置され、元の大規模なスケールを持つ属性によってソリューションに偏りがでることが回避されます。正規化はまた、オーバーフローおよびアンダーフローの可能性を最小限に抑えます。

SVMと自動データ準備

欠損値の処理や質的データの変換はサポート・ベクター・マシン(SVM)のアルゴリズムによって自動的に実行されますが、正規化や外れ値の検出は自動データ準備(ADP)で処理するか、手動で準備する必要があります。ADPは、SVM用にmin-max正規化を実行します。

注意:

SVMでは自動データ準備を使用することをお薦めします。ADPで実行される変換は、ほとんどのモデルに対して適切です。

関連項目:

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

SVM分類

サポート・ベクター・マシン(SVM)分類は、決定境界を定義する決定面の概念に基づいています。決定面は、異なるクラスのメンバーシップを持つオブジェクト・セット間を区別するものです。SVMは、クラスの最も広範な区切りを与えるセパレータを定義するベクター(サポート・ベクター)を検出します。

SVM分類では、2項および多クラスの両ターゲットがサポートされます。

クラスの重み

サポート・ベクター・マシン(SVM)分類では、重みは、ターゲット値(クラス)の相対的な重要度を示すためのバイアス・メカニズムです。

SVMモデルは、クラス全体にわたって最良の平均予測を得るために自動的に初期化されます。ただし、トレーニング・データが実際の分布を代表していない場合は、モデルにバイアスをかけて、十分に代表されていないクラス値を補正できます。クラスの重みを増やすと、そのクラスの正しい予測子の割合が増加します。

1クラスSVM

Oracle Data Miningでは、異常検出用の1クラス分類機能としてサポート・ベクター・マシン(SVM)を使用します。SVMは異常検出で使用される場合、分類マイニング機能を持ちますが、ターゲットは使用しません。

1クラスSVMモデルは、適用時に、スコアリング・データの各ケースに対して予測および確率を生成します。予測が1の場合、そのケースは典型的とみなされます。予測が0の場合、そのケースは異常とみなされます。この動作は、モデルが標準データでトレーニングされていることを反映しています。

異常とみなすデータの割合は、SVMS_OUTLIER_RATE構築設定で指定できます。「疑わしい」ケースの数が母集団の一定の割合であることがわかっている場合、その割合に外れ値の率を設定できます。モデルは、一般母集団への適用時に、その数の「頻度の低い」ケースをおおまかに識別します。

SVM回帰

サポート・ベクター・マシン(SVM)では、回帰問題を解決するために、イプシロン非感受性損失関数が使用されます。

SVM回帰では、データ・ポイントの最大数がイプシロン幅の非感受性チューブ内に収まるような連続関数の検出が試行されます。真のターゲット値のイプシロン距離内におさまる予測は、誤差として解釈されません。

イプシロン要素は、SVM回帰用の正則化設定です。この設定によって、モデルの堅牢性と誤差のマージンのバランスがとられ、新しいデータへの最適な一般化を実現できます。