Support Vector Clustering
概要
この演算子は、サポートベクターを使用してクラスタリングを実行します。クラスタリングは、互いに類似しており、他のクラスターに属するオブジェクトとは異なるオブジェクトをグループ化することに関係しています。クラスタリングは、ラベル付けされていないデータから情報を抽出する手法です。
詳細
この演算子は、Ben-Hur et al(2001)に基づくサポートベクトルクラスタリングの実装です。このサポートベクタークラスタリング(SVC)アルゴリズムでは、ガウスカーネルを使用して、データ空間がデータ空間から高次元の特徴空間にマッピングされます。特徴空間では、データの画像を囲む最小の球体が検索されます。この球体はデータ空間にマップされ、データポイントを囲む一連の輪郭を形成します。これらの等高線は、クラスター境界として解釈されます。個別の輪郭で囲まれたポイントは、同じクラスターに関連付けられています。ガウスカーネルの幅パラメーターが小さくなると、データ空間で切断された輪郭の数が増加し、クラスターの数が増加します。輪郭は、基礎となる確率分布のサポートを描写するものとして解釈できるため、このアルゴリズムは、この確率分布の谷を識別するものと見なすことができます。
クラスタリングは、互いに類似しており、他のクラスターに属するオブジェクトとは異なるオブジェクトをグループ化することに関係しています。これは、ラベルのないデータから情報を抽出するための手法であり、多くのさまざまなシナリオで非常に役立ちます。たとえば、同様の購入行動を持つ顧客のクラスターを見つけることに関心があるマーケティングアプリケーションなどです。
入力
- サンプルセット (IOObject)この入力ポートには、ExampleSetが必要です。これは、添付のプロセス例のデータ生成演算子の出力です。
出力
- クラスターモデル(クラスターモデル)このポートはクラスターモデルを提供します。実行されたクラスタリングに関する情報が含まれています。どの例がどのクラスターの一部であるかを示します。
- クラスター化セット(IOObject)入力として指定されたExampleSetは、このポートを介して出力にわずかな変更を加えて渡されます。 idロールを持つ属性は、例を区別するために入力ExampleSetに追加されます。クラスター属性の追加パラメーターの状態に応じて、クラスターロールを持つ属性を追加することもできます。
パラメーター
- add_cluster_attributeこのパラメーターがtrueに設定されている場合、結果のExampleSetにクラスターロールを持つ新しい属性が生成されます。そうでない場合、このオペレーターはクラスター属性を追加しません。後者の場合、モデルの適用演算子を使用してクラスター属性を生成する必要があります 。 範囲:ブール
- add_as_labelこのパラメーターをtrueに設定すると、クラスターIDはクラスターロールではなくラベルロールの属性に格納されます ( クラスター属性パラメーターの追加を参照)。 範囲:ブール
- remove_unlabeledこのパラメーターをtrueに設定すると、ラベルのないサンプルがExampleSetから削除されます。 範囲:ブール
- min_ptsこのパラメーターは、各クラスターの最小ポイント数を指定します。 範囲:整数
- kernel_typeカーネル関数のタイプは、このパラメーターを介して選択されます。次のカーネルタイプがサポートされています: ドット、放射状、多項式、ニューラル
- dot:ドットカーネルは、k(x、y)= x * yで定義されます。つまり、xとyの内積です。
- radial:ラジアルカーネルはexp(-g || xy || ^ 2)で定義されます。gはガンマで、カーネルガンマパラメーターで指定されます。調整可能なパラメーターガンマは、カーネルのパフォーマンスに大きな役割を果たしており、目前の問題に注意深く調整する必要があります。
- polynomial:多項式カーネルは、k(x、y)=(x * y + 1)^ dで定義されます。dは多項式の次数であり、カーネル次数パラメーターで指定されます。多項式カーネルは、すべてのトレーニングデータが正規化される問題に適しています。
- neural:ニューラルカーネルは、2層のニューラルネットtanh(ax * y + b)によって定義されます。ここで、aはアルファで、bは切片定数です。これらのパラメーターは、カーネルaおよびカーネルbパラメーターを使用して調整できます。アルファの一般的な値は1 / Nです。Nはデータ次元です。 aとbのすべての選択が有効なカーネル関数につながるわけではないことに注意してください。
Range:選択
- kernel_gammaこれは、SVMカーネルパラメーターガンマです。これは、 カーネルタイプパラメーターがradialに設定されている場合にのみ使用できます。 範囲:実数
- kernel_degreeこれは、SVMカーネルパラメータの次数です。これは、 カーネルタイプパラメーターがPolynomialに設定されている場合にのみ使用できます。 範囲:実数
- kernel_aこれはSVMカーネルパラメータaです。これは、 カーネルタイプパラメーターがニューラルに設定されている場合にのみ使用できます。 範囲:実数
- kernel_bこれはSVMカーネルパラメータbです。これは、 カーネルタイプパラメーターがニューラルに設定されている場合にのみ使用できます。 範囲:実数
- kernel_cacheこれはエキスパートパラメータです。カーネル評価用のキャッシュのサイズをメガバイト単位で指定します。 範囲:実数
- convergence_epsilonこれはオプティマイザーのパラメーターです。 KKT条件の精度を指定します。 範囲:実数
- max_iterationsこれはオプティマイザーのパラメーターです。指定された反復回数の後に反復を停止することを指定します。 範囲:整数
- pこのパラメーターは、許容される外れ値の割合を指定します。 範囲:実数
- rこのパラメーターが-1に設定されている場合、計算された半径が半径として使用されます。それ以外の場合、このパラメーターで指定された値が半径として使用されます。 範囲:実数
- number_sample_pointsこのパラメーターは、近傍をチェックする仮想サンプルポイントの数を指定します。 範囲:実数
チュートリアルプロセス
サポートベクタークラスタリングオペレーターによるRipley-Setデータセットのクラスタリング
多くの場合、ターゲット属性(つまり、ラベル)を定義できず、データは自動的にグループ化される必要があります。この手順は、クラスタリングと呼ばれます。 RapidMinerは、他の学習スキームとまったく同じ方法で使用できる幅広いクラスタリングスキームをサポートしています。これには、すべての前処理演算子との組み合わせが含まれます。
このサンプルプロセスでは、ExampleSetの生成にデータの生成演算子が使用されます。ラベルもロードされますが、クラスター自体の構築ではなく、視覚化と比較にのみ使用されることに注意してください。このステップでブレークポイントが挿入されるため、クラスタリング演算子を適用する前にExampleSetを確認できます。ラベル属性以外に、ExampleSetには2つの実際の属性があります。 「att1」および「att2」。サポートベクタークラスタリング演算子は、このデータセットに適用されます。プロセスを実行すると、サポートベクタークラスタリングオペレーターによって2つの新しい属性が作成されていることがわかります。 id属性は、例を明確に区別するために作成されます。クラスター属性は、サンプルが属するクラスターを示すために作成されます。各例は特定のクラスターに割り当てられます。どのクラスターにも属さない例は、ノイズと見なされます。このデータセットのプロットビューにも注意してください。プロットビューに切り替えて、プロッターを「散布図」に、x軸を「att1」に、y軸を「att2」に、「色の列」を「cluster」に設定します。アルゴリズムが3つの別個のクラスターを作成した方法を明確に見ることができます(ノイズも個別に表示されます)。クラスターモデルは、クラスターモデルの出力ポートからも配信されます。実行されたクラスタリングに関する情報が含まれています。フォルダービューでは、各クラスターのメンバーをフォルダー形式で表示できます。