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

前
次
次へ

14 k-Means

Oracle Data Miningでサポートされている拡張されたk-Meansクラスタリング・アルゴリズムを使用する方法を学習します。

k-Meansとは

k-Meansアルゴリズムは、指定した数のクラスタにデータを分割する、距離ベースのクラスタリング・アルゴリズムです。

距離ベースのアルゴリズムは、距離関数を使用して、ケース間の類似度を計測します。各ケースは、使用される距離関数に従って、最も近いクラスタに割り当てられます。

Oracle Data Miningの拡張k-Means

Oracle Data Miningに実装されている拡張バージョンのk-Meansアルゴリズムには、次の特徴があります。

  • 距離関数: アルゴリズムでは、ユークリッドおよびコサインの距離関数がサポートされます。デフォルトはユークリッドです。

  • 階層モデル作成: トップダウン階層の方法でモデルを作成する際、2分岐を使用し、最後にすべてのノードを精錬します。この意味では、2分k-Meansアルゴリズムと似ています。階層の内部ノードの重心は、ツリーが展開していくにつれて、その変化を反映するように更新されます。ツリー全体が戻されます。

  • ツリー拡大: アルゴリズムでは、指定した分岐基準を使用して、指定した最大クラスタ数に到達するまで、または個別ケースの数に到達するまで、一度に1つのノードが増えてツリーが拡大します。分岐基準は、分散またはクラスタ・サイズになります。デフォルトの分岐基準は分散です。

  • クラスタ・プロパティ: クラスタごとに、アルゴリズムによって、重心、各属性のヒストグラム、およびクラスタに割り当てられるデータの大部分を囲むハイパーボックスを記述するルールが戻されます。重心は、質的属性については最頻値を、量的属性については平均および分散を示します。

k-Meansをこのように処理することによって、複数のk-Meansモデルを作成する必要がなくなります。また、常に従来のk-Meansよりも優れたクラスタリング結果が得られます。

重心

重心は、クラスタ内の最も典型的なケースを表します。たとえば、顧客の年齢および収入のデータセットの場合、各クラスタの重心は、年齢と収入がそのクラスタの平均値である顧客となります。重心は一種の典型です。必ずしもクラスタに割り当てられた特定のケースを表すものではありません。

重心の属性値は、量的属性の場合は平均値、質的属性の場合は最頻値となります。

スコアリング

k-Meansによって検出されたクラスタは、新しいデータのスコアリングに使用できるベイズ確率モデルの生成に使用されます。

k-Meansアルゴリズム構成

Oracle Data Miningの拡張k-Meansアルゴリズムでは、複数の作成時設定がサポートされます。すべての設定にはデフォルト値があります。特定の方法でアルゴリズムの動作に影響を与える場合を除き、デフォルトを上書きする必要はありません。

次の考慮事項を指定してk-Meansを構成できます。

  • クラスタ数

  • クラスタ保持のために割り当てられるメモリーの拡張係数

  • 収束許容値

  • 距離関数。デフォルトの距離関数はユークリッドです。

  • 分岐基準。デフォルトの基準はKMNS_VARIANCEです。

  • クラスタ・ツリー作成のための反復回数。

  • クラスタのルール説明に属性を含めるためにNULL以外に設定する必要のある属性値の割合。

  • ヒストグラム・ビンの数。各属性のビン境界は、トレーニング・データセット全体でグローバルに計算されます。 ビニング方法は等幅です。ただ1つのビンを持つ単一値が含まれる属性を除き、すべての属性は同じ数のビンを持ちます。

関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』のアルゴリズム設定のk-Meansに関する項

k-Means用のデータ準備

k-Meansアルゴリズムでは、通常、正規化が必要です。自動データ準備では、k-Meansに対して、外れ値に敏感な正規化が実行されます。ADPを使用しない場合、モデルを作成または適用する前に量的属性を正規化する必要があります。

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

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

関連項目:

  • 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』の線形正規化に関する項

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

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