プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

分割型クラスタリングアルゴリズムの種類とは?K-means法と最近傍法を徹底解説

分割型アルゴリズムの2つの種類

分割型(partitional)クラスタリングアルゴリズムには、主に以下の2種類があります。

  • K-meansクラスタリング(k平均法)
  • 最近傍法(Nearest Neighbour Algorithm)

K-meansクラスタリング(k平均法)とは

K-meansクラスタリングは、最も広く利用されている分割型アルゴリズムです。データセット内の各データを、新しく形成された複数のクラスタのうちいずれか1つに再割り当てします。個々のレコードやデータポイントは、距離または類似度の尺度を用いて、最も近いクラスタへと割り当てられます。

K-meansクラスタリングの主な手順は以下の通りです。

  • K個の初期クラスタ重心 c1, c2, c3, …, ck を選択します。
  • 各インスタンス x を、その重心が x に最も近いクラスタ S に割り当てます。
  • 各クラスタについて、そのクラスタに含まれる要素に基づいて重心を再計算します。
  • 収束が完了するまで、割り当て処理を繰り返します。
  • オブジェクト(データポイント)を K 個のクラスタに分離します。
  • クラスタ中心(重心)は、そのクラスタ内の全データポイントの平均値として定義されます。
  • 距離関数を用いて、各ポイントを重心が最も近いクラスタに割り当てます。

平均値の初期値は任意に設定されます。ランダムに割り当てることもできますし、最初の k 個の入力データの値をそのまま利用することも可能です。収束判定は二乗誤差に基づくのが一般的ですが、必ずしもそれである必要はありません。たとえば、一定回数の反復後に終了する手法もあります。収束しない場合でも確実に処理を停止できるよう、最大反復回数を設けることも有効です。

K-meansアルゴリズムの流れ

入力

D = {t1, t2, …, tn} // 要素の集合
k // 目標とするクラスタ数

出力

K // クラスタの集合

K-meansアルゴリズムの手順:

  1. 平均値 m1, m2, …, mk の初期値を設定する
  2. 繰り返し:各項目 ti を、最も近い平均値を持つクラスタに割り当てる
  3. 各クラスタの新しい平均値を計算する
  4. 収束基準が満たされるまで 2〜3 を繰り返す

最近傍法(Nearest Neighbour Algorithm)とは

単一リンク法(single link technique)に類似したアルゴリズムが、最近傍法です。この逐次型アルゴリズムでは、アイテムが反復的に、現時点で最も近いクラスタへと統合されていきます。また、閾値 t を設けることで、アイテムを既存のクラスタに挿入するか、あるいは新しいクラスタを生成するかを判断できます。

最近傍法アルゴリズムの流れ

入力

D = {t1, t2, …, tn} // 要素の集合
A // 要素間の距離を表す隣接行列

出力

K // クラスタの集合

最近傍法の擬似コード:

K1 = {t1};
K = {K1};
k = 1;
for i = 2 to n do
    K 内のクラスタ Km から、dis{ti, tm} が最小となる tm を探索する;
    if dis{ti, tm} ≤ t then
        Km = Km ∪ ti
    else
        k = k + 1;
        Kk = {ti}

まとめ

分割型クラスタリングでは、K-means法がシンプルかつ高速である一方、クラスタ数 k を事前に指定する必要があります。一方、最近傍法は閾値 t によってクラスタ形成を制御でき、階層的なアプローチに近い挙動を示します。データの性質や目的に応じて、適切なアルゴリズムを選択することが重要です。

  1. 主要なハッシュアルゴリズム6選!MD5・RSA・SHAなどの特徴と用途を徹底解説

    ハッシュアルゴリズムとはハッシュアルゴリズムとは、特定の型を持つ任意の長さの入力データを、固定長の出力ビット列へと変換する数学的アルゴリズムです。どんな入力でも受け付け、ハッシュテーブルを利用して一定の形式を持つメッセージへと変換する仕組みを持っています。ここでは、広く利用されている代表的なハッシュアルゴリズムを6つ紹介します。MD5(Message Digest Algorithm 5)MD5は「メッセージダイジェストアルゴリズム」の略称で、メッセージの認証、コンテンツの検証、デジタル署名などに用いられる暗号プロトコルです。ハッシュ関数に基づいており、送信側が送ったファイルと受信側が受け取っ

  2. Blowfishアルゴリズムの仕組みとは?サブキー生成とデータ暗号化の流れを解説

    Blowfishアルゴリズムの概要Blowfish(ブローフィッシュ)は、対称鍵方式のブロック暗号アルゴリズムの一つで、一度に64ビットのデータブロックを暗号化します。Feistelネットワーク構造を採用しており、その動作手順は「サブキー生成」と「データ暗号化」という2つの段階に分けられます。動作の2つの主要プロセスサブキー生成:最大448ビット長の秘密鍵を、合計4168ビットのサブキー群へと変換するプロセスです。データ暗号化:ネットワークを16回反復処理します。各ラウンドでは、鍵に依存する置換(permutation)と、鍵およびデータに依存する代入(substitution)が行われます。