K 平均法クラスタリング - MADlib

TIBCO Data Science - Team Studio MADlib K 平均法 クラスタリング モデルの実装をサポートします。

情報一覧

パラメーター

説明
カテゴリー モデル
データ ソース タイプ DB
出力を他のオペレーターに送信 いいえ
データ処理ツール なし

アルゴリズム

クラスタリングとは、問題に依存する類似性の尺度に従ってオブジェクトのセットを分割する問題を指します。K 平均法バリアントでは、n 個の点が与えられ、目標は、各点とその最も近い重心の間の距離の合計が最小になるように k 個の重心を配置することです。 。各重心は、この重心に最も近いすべての点で構成されるクラスターを表します。

最も一般的なケースでは、使用される距離の尺度はユークリッド距離の 2 乗です。

この問題は計算的に困難 (NP ハード) ですが、Lloyd [1] によって提案されたローカル探索ヒューリスティックは実際にはかなりうまく機能します。実際、今日では非常に普及しているため、標準アルゴリズム、または単に K 平均法アルゴリズムと呼ばれることもあります。次のように動作します。

  1. k 個の重心をシードします。
  2. 収束するまで繰り返します。

    1. 各点を最も近い重心に割り当てます。
    2. このクラスター内の距離の合計が最小になる位置に各重心を移動します。

  3. ステップ 2a 中に割り当てを変更するポイントがない場合、収束が達成されます。

目的関数はステップごとに減少するため、このアルゴリズムは局所的な最適値に収束することが保証されています。

詳細については、公式 MADlib ドキュメント ページをご覧ください。

入力

クラスタリング基準として使用されるさまざまな属性値を含む配列カラムを含むデータセット。

  • 入力データセット内の非数値変数は、クラスタリングを行う前に、まず変換およびスケーリングまたは正規化する必要があります。
  • 数値変数も正規化できます。
  • 選択した変換、正規化、距離計算に応じて、特定の変数がクラスタリング結果を支配するか、完全に無視される場合があります。

制限事項

出力は K 平均法予測オペレーターにのみ送信できます。

構成

パラメーター 説明
ノート このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。
MADlib スキーマ名 MADlib がデータベースにインストールされるスキーマ。MADlib は、入力データセットと同じデータベースにインストールする必要があります。

madlib スキーマがデータベースに存在する場合、このパラメーターのデフォルトは madlib です。

モデル出力スキーマ名 出力が保存されるスキーマの名前。
モデル出力テーブル名 モデルを保存するために作成されるテーブルの名前。モデル出力テーブルには以下が保存されます。

centroids | objective_fn | frac_reassigned | num_iterations

詳細については、『公式 MADlib K 平均法ドキュメント』を参照してください。
存在する場合は削除
  • [はい] (デフォルト) の場合、同じ名前の既存のテーブルを削除し、新しいテーブルを作成します。
  • [いいえ] の場合、フローを停止し、エラーが発生したことをユーザーに警告します。
重心シード 重心シードは次の 3 つの方法で実行できます。

  • random (デフォルト) - 入力データセットから初期重心をランダムに選択します。
  • distributed - 互いに遠く離れた重心を選択しようとする K 平均法Plus Plus \[1\] アルゴリズムを通じて初期重心を選択します。
  • ユーザー定義 - 重心ソース入力テーブル (重心ソース) と、初期重心位置を持つその 重心カラム を指定します。

重心ソース 重心シード がユーザー定義に設定されている場合は、重心ソースの入力テーブルを設定します。
重心カラム Centroid Seeding がユーザー定義に設定されている場合は、Centroid Source で指定された入力テーブルのカラムを重心カラムに設定します。
ポイント カラム 入力データセットの Points カラムには、各ポイントの属性の配列が含まれています。

このパラメーターは配列型である必要があります。

K クラスター分析プロセス中に作成するクラスターの数を指定します。

  • デフォルト値は 2 です。
    ノート: K 平均法アルゴリズムのクラスター数 K がデータの自然な構造と一致するように選択されていない場合、結果は理想的ではありません。これを軽減する適切な方法は、K のさまざまな値を試してみることです。原則として、最良の K 値は、最小のクラスター距離と最大のクラスター間距離を示します。
  • したがって、モデラーはクラスターの結果に基づいて K のさまざまな値を試してみることができます。たとえば、分析が収束しない場合、またはグループが重複または分散しすぎる場合は、クラスターの増加が必要になる場合があります。

距離関数 クラスターの重心 (平均) 値からクラスター メンバーの値の差を計算します。距離は次のさまざまな方法で計算できます。

コサイン - 2 つのベクトル間の角度のコサインを測定します。 n 次元ベクトル および の場合、次のように内積公式を使用して計算されます。

ユークリッド - 各属性軸に沿った距離の 2 乗和の平方根。 n 次元ベクトル および の場合、次のように計算されます。

K 平均法 クラスタリング ユークリッド

マンハッタン - マンハッタン、またはタクシーの距離は、軸に平行に移動するときの 2 点間の距離を測定します。 n 次元ベクトル および の場合、それは次のように与えられます。

2 乗ユークリッド (デフォルト) - 2 点間の直線距離を計算するデフォルトの方法。これは、各属性軸に沿った距離の 2 乗の合計です。 n 次元ベクトル および の場合、 として計算されます。

Tanimoto - サンプルセット間の非類似性を測定します。これは Jaccard 係数の補数であり、1 から Jaccard 係数を減算することによって、または同等に、和集合と 2 つのセットの共通部分のサイズの差を和集合のサイズで割ることによって取得されます。Dice の類似性と同様に、セットを表すために 0 ~ 1 のベクトルが使用されます。次に、セットベクトル および で表されるセット A と B の Jaccard 類似度は、次の式で求められます。

ユーザー定義 - ユーザーによって指定されます。 ユーザー定義の距離を参照してください。

ユーザー定義の距離 距離関数ユーザー定義を指定する場合は、関数を指定します。

モデラーは、デフォルトの 2 乗ユークリッド メソッドから始めて、他のさまざまな計算メソッドを試して、クラスター結果がより直感的に見えるか、ビジネス上の洞察が得られるかを判断します。

重心の集約 同じクラスターに割り当てられたポイントを使用してクラスターの重心位置を計算する方法を定義します。オプションは 平均 (デフォルト) または 正規化平均です。
最大反復数 計算が停止するまでに必要な反復回数。反復数が 最大反復数より大きい場合、または再割り当てされたポイントの割合が 最小再割り当て割合を下回る場合、計算は停止します。
ミニ Frac が再割り当てされました 計算が停止する前に必要な、再割り当てされたポイントの最小部分。反復数が 最大反復数より大きい場合、または再割り当てされたポイントの割合が 再割り当てされた最小単位数の値を下回る場合、計算は停止します。

出力

ビジュアル出力
K 平均法Clustering (MADlib) オペレーターは、中心点 タブと クラスター タブを出力します。
ノート: 各クラスターへのポイントの割り当てを取得するには、K 平均法予測器 (MADlib) オペレーターを実行します。

中心点 結果タブには、クラスターの重心位置、目的関数の値、最後の反復で再割り当てされた点の割合、総反復数、単純なシルエット係数が表示されます。これは、品質を評価する一般的な方法です。クラスタリング (1 に近いほど、クラスタリングが優れています)。

  • クラスター 結果タブには、K 平均法分析から決定された最終重心のグラフが表示されます。
  • 出力は一度に 2 次元のみ表示できます。

データ出力
出力は K 平均法予測器 - MADlib オペレーターにのみ送信できます。

その他の注意事項

参考資料

[1] Lloyd, Stuart: Least squares quantization in PCM. Technical Note, Bell Laboratories. Published much later in: IEEE Transactions on Information Theory 28(2), pp. 128-137. 1982.

[1] David Arthur, Sergei Vassilvitskii: k-means++: the advantages of careful seeding, Proceedings of the 18th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA'07), pp. 1027-1035, http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf