SVM 分類
データ (線形と非線形の両方) を可能な限り遠く離れた個別のグループにクラスタリングすることで分類します。
情報一覧
|
パラメーター |
説明 |
|---|---|
| カテゴリー | モデル |
| データ ソース タイプ | HD |
| 出力を他のオペレーターに送信 | はい |
| データ処理ツール | MapReduce |
アルゴリズム
SVM 分類の背後にある基本前提は、トレーニング ポイントの誤分類の可能性を最小限に抑えるために最大マージン超平面 (MMH, maximum-margin hyperplane) を見つけるという考えに従うことです。SVM アルゴリズムは、「超平面」を使用してデータセットを分類に分割する可能な方法を実行します。次に、サポート ベクターと呼ばれる、クラスの境界点間のマージンまたは分離が最大の分類を選択します。
- サポート ベクターは、クラス間の最適な決定境界に最も近いデータ ポイントです。
- マージンは、超平面からサポート ベクトルまでの距離として定義されます。
以下は、この最大マージン分割プロセスの簡略化された例を示しており、定義サポート ベクター データ ポイントが丸で囲まれています。
図 (a) および (b): サポート ベクター マシン アルゴリズムのサマリー図
図 (a) では、データが垂直の「超平面」によって分離されており、その結果 2 つのクラス間に小さなマージンが生じています。
図 (b) では、データが対角線の「超平面」によって分離されており、その結果、2 つのクラス間のマージンが大きくなります。
SVM 分類アルゴリズムは、マージンが大きいため、図 (a) の分類ではなく図 (b) の分類を選択します。
このアルゴリズムは、データ ポイントから境界までの幾何学的距離を数学的に (反復的に) 計算します。これは、よく理解されている数学的な 2 次方程式を解く問題になります。
一般的な SVM 定式化の目標は、利用可能なトレーニング ポイントに関して最適な線形決定境界を見つけることです。上の例は、線形分離可能であると考えられるデータセットを示しています。ただし、次の図は、クラスを分離する直線を引くことができないデータセットを示しています。これは、「非線形決定境界」を有するデータセットと呼ばれます。
図 (c): 非線形分離可能データの例。これは、クラスを分離する直線を引くことができないことを意味します。
SVM アルゴリズムは、線形モデルとして機能するだけでなく、ソフト マージンとカーネル トリックの概念を使用して、ノイズの多い非線形の分離可能な状況を処理できます。
- ソフト マージンのアイデアは、元の SVM 最適化問題 (いわゆる初期ハード マージン) を操作して、許容可能な非線形性 (ノイズ) に適応するためにより柔軟に動作します。
- カーネル トリックは、データを高次元空間に簡単かつ効率的に数学的に変換します。
- カーネル トリックは、データセットを高次元空間にマッピングする簡単かつ効率的な数学的方法です。ここで、データの線形分離可能な表現を作成することを期待して「超平面」を見つけます。これは単に、一般集合 S から内積空間 V (自然ノルムを備えた) に観測値をマッピングする方法です。明示的にマッピングします。
- TIBCO Data Science - Team Studio SVM 分類オペレーターで現在サポートされている3つのカーネル メソッドは、ドット積/リニア、多項式カーネル、ガウシアン カーネルです。
| オプション | 説明 | 式 |
|---|---|---|
| 標準化 | 標準化正規化アプローチはデフォルトのアプローチです | 特徴値 |
| 単位ベクトル | 単位ベクトル正規化アプローチは、モデラーがデータのスケールを小さくする (つまり、値を小さくする) 必要がある場合に役立ちます。 | 特徴値サンプルノルム |
| ミックス | データに対して標準化と単位ベクトル正規化の両方を実行します。 | - |
| なし | 正規化はありません。 | - |
SVM 分類アルゴリズムは現在、次のように Hadoop データ ソースでのみサポートされています。
- TIBCO Data Science - Team Studio Hadoop (MapReduce) バージョンでは、TIBCO Data Science - Team Studio SVM 分類オペレーターは、Crammer と Singer (2001) [3] によって導入された、L2 正則化されたマルチクラスのコスト依存型ヒンジ損失関数の基本形式を、カーネル トリック プロセスを近似するための明示的なランダム特徴マッピングのアイデアとともに実装します。ランダムな特徴マッピングは、調和解析のいくつかの古典的な定理に基づいて確立されます (Bochner 1994 and Schoenberg 1942)。
- Hadoop ソースでサポートされているカーネル関数は、線形/ドット積、多項式、およびガウス関数です。
- ガウス関数については、シフト不変カーネルとして、TIBCO Data Science - Team Studio は Rahimi and Recht (2007) が提示したランダムフーリエ変換を実装しています。
- 多項式関数の場合、TIBCO Data Science - Team Studio は、Kar と Karnick (2012) によって提示されたランダム マクローリン特徴マップを実装します。
入力
モデリング用の従属変数と独立変数を含む Hadoop データセット。
構成
次の構成パラメーターは、SVM 分類を使用するために必要な最小限の設定です。
- 依存カラム
- 最大反復回数
- カラム
- カーネル タイプ
| パラメーター | 説明 |
|---|---|
| ノート | このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。 |
| 依存カラム | SVM 分類には依存カラムを指定する必要があります。分類の従属変数とみなされるデータカラムを選択します。これはモデル化または予測する量です。従属カラムはカテゴリー カラムまたは連続カラムのいずれかにすることができます。 依存カラムのカーディナリティは 1000 を超えてはなりません。したがって、モデル内に存在できるクラスは最大 1000 個になります。 |
| 最大反復回数 | SVM 分類アルゴリズムがデータに対して実行される回数を制御します。
デフォルト値: 100 |
| カラム | デシジョン ツリー トレーニングに含める独立変数データカラムを設定します。少なくとも 1 つのカラムを指定する必要があります。
[カラムの選択] をクリックすると、分析に使用できる入力データセットからカラムを選択するためのダイアログが開きます。詳細については、「カラムの選択ダイアログ」を参照してください。 |
| カーネル タイプ | 高次元空間でデータを表現するために使用するデータ変換アルゴリズムの実装、つまり「カーネル トリック」を指定します。メソッド (KM) は、パターン分析のためのデータ変換アルゴリズム (方程式) のクラスであり、その目的は、一般的なタイプの関係 (クラスター、ランキング、主成分、相関、分類など) を見つけて研究することです。データ (シーケンス、テキスト ドキュメント、点のセット、ベクトル、画像など)。 マーサーの定理 (1909) によれば、高次元空間における 2 つのデータ ベクトルの内積は、数式またはカーネル表現によって線形空間で表現できます。具体的には、すべての半正定対称関数がカーネルであると述べています。カーネルは、高次元空間における 2 つのデータ ベクトルの内積の主空間表現です: f(xi) * f(xj) ノート: 独立変数がスパース カラム形式の場合、[カーネル タイプ] の唯一の選択肢は [線形] です。 カーネルタイプのオプションは次のとおりです。
多項式 および ガウス カーネル タイプは、データ ソースが線形分離可能ではない、または大まかな決定境界があるとモデラーが判断する場合に選択する必要があります。この場合、モデラーは、多項式カーネル タイプとガウス カーネル タイプの両方を使用して SVM 分類モデルを実装し、最適な適合性を得るために結果を比較することをお勧めします。 |
| 多項式次数 | 多項式カーネル メソッド実装の指数の値 d を指定します。
自然言語処理 (NLP) の問題の場合、最も一般的な次数は 2 です。これは、より大きな次数を使用するとオーバー フィッティングにつながる傾向があるためです (http://en.wikipedia.org/wiki/Polynomial_kernel)。ただし、森林被覆の使用例など、他の非常にまばらで大規模なデータ ソースの場合、適切な次数は 10 です。滑らかではない決定境界を表すには多くのサポート ベクトルが必要です。 デフォルト値: 2 このパラメーターは、[カーネル タイプ] パラメーターの [多項式] オプションが選択されている場合にのみ有効になります。 |
| ガンマ (γ) | 次のガウス カーネル タイプ放射基底関数の γ 変数の値を指定します。 ガンマ。場合によっては ガンマ値を変更すると、ガウス モデルの精度が変わります。モデラーは、特定のデータセットに最適な値を評価するために、交差検証を伴う試行錯誤を行う必要があります。 この変数は通常、モデルの独立変数の数、つまり次元を 1 として相対的に設定されます。たとえば、変数が 50 個ある場合は、1/50 = 0.2 に設定される可能性があります。 デフォルト値: 1 このパラメーターは、[カーネル タイプ] パラメーターの [ガウス] オプションが選択されている場合にのみ有効になります。 |
| ラムダ (λ) | SVM 分類の最適化パラメーターを表します。モデルのバイアス (損失関数の有意性) と最小化関数の正則化部分 (分散) の間のトレードオフを制御します。 ラムダが大きいほど、オーバー フィッティングの可能性は低くなります。オーバー フィッティングとは、モデルが良好な「学習」を行うか、トレーニング データに対しては低い誤差に収束しますが、新しい非トレーニング データに対しては良好な結果が得られない状況です。モデルがトレーニング データではうまく機能するが、予測ではうまく機能しない場合、モデラーはラムダ値の増加を試みる可能性があります。 デフォルト値: 0.0001 |
| 正規化タイプ | SVM 分類データを正規化するための数学的アプローチを設定します。 オプションは次のとおりです。
標準化正規化では、正規化方程式 単位ベクトル正規化アプローチは、モデラーがデータのスケールを小さくする (つまり、値を小さくする) 必要がある場合に役立ちます。これは方程式 |
| 最大 JVM ヒープ サイズ (MB) (-1=自動) | Hadoop 用の Java 仮想マシン データ ストレージ設定。
|
出力
理想的な結果曲線は、トレーニング エラーが徐々に減少し、最終的に最小達成エラー率で横ばいになり平坦になることを示します。これは、モデルの全体的な精度が向上しなくなる反復回数を示します。
上の例では、トレーニング エラーは 60 回の反復後に最小化されるようです。モデラーは、反復数を 60 に減らしてモデルを再実行できます。これを超えるとモデルの精度が向上しないように見えるためです。
SVM 分類モデルの有効性を分析するには、追加のオペレーターを追加する必要があります。多くの場合、その後に SVM 予測器が続き、実際のデータセットのトレーニング値および関連する信頼レベルと比較して、各データ行の予測値を提供します。モデルの品質を迅速に評価するために ROC オペレーターを追加することも一般的です。詳細については、「例」セクションを参照してください。
SVM 予測器 オペレーターからの出力には、各データ インスタンスの予測された依存値と、それに関連付けられた信頼値が表示されます。
- P(Diagnosis) カラムでは、予測が行われる信頼度が 50% 以上であるというしきい値の仮定が使用されます。たとえば、信頼度 C(M) が 0.50 を超える場合、表示される予測値は「悪性」であり、癌性細胞を示します。
- C(M) カラムは、悪性細胞の依存値が M であるという信頼度を示します。注: 通常、信頼値は結果の信頼度 (%) を表す 10 進数値です。
- C(B) カラムは、良性セルの依存値が B であるという信頼度を示します。
ROC グラフなどのスコアリング オペレーターを追加すると、ランダム フォレスト モデルの予測性をすぐに評価するのにも役立ちます。ROC グラフの場合、0.80 を超える AUC 値は通常、「良好な」モデルとみなされます。値 0.5 は、モデルが半分の確率で正しい答えを推測できる「愚かな」モデルと同等であることを意味します。
例



を使用してパラメーター化されます。
が実装されます。
を実装します。