ユークリッドベースのクラスタリングアルゴリズムで混合データが問題になるのはなぜですか?


21

ほとんどの古典的なクラスタリングおよび次元削減アルゴリズム(階層的クラスタリング、主成分分析、k-means、自己組織化マップ...)は数値データ専用に設計されており、それらの入力データはユークリッド空間の点と見なされます。

これはもちろん問題です。多くの現実世界の質問には混合データが含まれているためです。たとえば、バスを勉強する場合、高さと長さ、モーターサイズは数字になりますが、色(カテゴリ変数:青/ red / green ...)および容量クラス(順序変数:小/中/大容量)。具体的には、これらのさまざまなタイプの変数を同時に調べたい場合があります。

たとえば、階層型クラスタリングまたは多次元スケーリングにプラグインするGowerの非類似性、または距離行列を入力として使用する他の方法を使用して、従来のクラスタリングアルゴリズムを混合データに拡張する方法がいくつかあります。または、たとえばこのメソッド、混合データへのSOMの拡張。

私の質問は、なぜ混合変数にユークリッド距離を使用できないのですか?またはなぜそうするのが悪いのですか?カテゴリ変数をダミーエンコードし、すべての変数を観測間の距離で同様の重みを持つように正規化し、これらの行列で通常のアルゴリズムを実行できないのはなぜですか?

それは本当に簡単であり、一度も行われたことがないので、それは非常に間違っていると思いますが、誰がその理由を教えてもらえますか?および/またはいくつかのrefを教えてください?ありがとう


5
ユークリッド空間の点としてそれらを表現するために、データを使って好きなことをすべて行うことができますが、特徴の意味はなくなるかもしれません。問題は、スペースのレベルではなく、測定スケールのレベルにあります。序数スケールは適切に定量化する必要がありますが、ダミーコーディングは役に立ちません。非対称感覚のバイナリスケール(現在と不在)は、当然、ユークリッド距離以外の距離メトリックを必要とします。さらに、補間の問題(yesとnoの間に実質的な平均は存在できません)。
ttnphns 14年

(続き)ユークリッド空間は約2つのことです:連続(細粒度)であり、あらゆる方向を許可します。すべてのデータタイプが、データの性質から生じる相違点に対応するためにこのようなスペースを必要とする、または迎えるわけではありません。
ttnphns 14年

階層的クラスタリングは、どんな種類の類似性でも機能します。(Wardなどの一部のケースを除く)-特に、一部のカテゴリ/バイナリの場合に意味のあるJaccard係数などを使用できます。
アノニムース14

回答:


5

何かを計算できないということではありません。

意味のあるもの測定するために距離を多く使用します。これは、カテゴリデータでははるかに早く失敗します。複数の変数で機能する場合、それは...

靴のサイズと体重の属性がある場合、ユークリッド距離もあまり意味がありません。x、y、zが距離の場合に適しています。ユークリッド距離は、ポイント間の見通し距離です。

ここで変数をダミーエンコードすると、これはどのような意味を持ちますか?

さらに、データが離散している場合、ユークリッド距離は意味をなしません。

整数xとyの値のみが存在する場合、ユークリッド距離は非整数距離を生成します。データにマップバックしません。同様に、ダミーでエンコードされた変数の場合、距離はダミー変数の量にマップされません...

次に、k-meansクラスタリングなどを使用する場合、距離だけでなく、平均の計算も重要です。しかし、ダミーでエンコードされた変数には合理的な意味はありませんか?

最後に、次元の呪いがあります。ユークリッド距離は、変数の数を増やすと低下することが知られています。ダミーでエンコードされた変数を追加すると、距離のコントラストが非常に速く失われます。単一のダミー変数がすべての違いを生むため、すべてが他のすべてと同様です。


3

これらのメトリックベースのクラスタリング問題の中心にあるのは、補間のアイデアです。

先ほど引用した方法を採用し、重みなどの連続変数を考えてみましょう。データに100kgと10kgがあります。新しい99kgを見ると、このメトリックにより、100kgに近づくことができます。残念ながら、離散データには補間は存在しません。

この質問に対する別の議論は、そうする自然な方法がないということです。Rに3つの値を割り当て、各ペア間で等距離にしたい場合、これは不可能です。それらを異なるカテゴリに割り当てて、PCAを実行すると、実際には同じカテゴリを反映する情報が失われます。


1
ありがとう!補間の問題は理解していますが、多くのアプリケーションではこれは問題になりません(たとえば、バスが緑、赤、青のいずれかであり、データセットに他の色が存在しないことがわかっている場合)。また、ダミー変数を標準化する簡単な方法があり、各カテゴリ変数が各数値変数と同様の「重み」を持つようになると思います(数値変数も事前に標準化されている場合)。任意に割り当てた重みに異なる変数への...か
jubo

0

順序付けられていないカテゴリ値の問題は、それらをダミーでエンコードすると、順序付けが強制され、変数の新しい意味が強制されることです。たとえば、青を1に、オレンジを2に、緑3をエンコードすると、オレンジ値のデータパターンは、青値のデータパターンよりも緑値のパターンに近くなります。

これを処理する1つの方法は、新しい機能(列)にすることです。個別の値ごとに、新しいバイナリフィーチャを作成してtrue / falseに設定します(つまり、値をバイナリエンコードし、各ビットを列にします)。この新しいフィーチャセットの各データパターンでは、1つのフィーチャのみが値1を持ち、他のすべては0になります。しかし、これは通常、1に近い重心値を複数のフィーチャに割り当てるトレーニングアルゴリズムを停止しません。これは当然、解釈の問題を引き起こす可能性があります。これは、データドメインでは意味がありません。

「キャパシティクラス」、つまり順序​​付けされたカテゴリでは同じ問題はありません。その場合、数値の割り当てが意味をなすからです。

そしてもちろん、性質や測定単位、または値の範囲が異なる機能を使用する場合は、常に値を正規化する必要があります。

/programming/19507928/growing-self-organizing-map-for-mixed-type-data/19511894#19511894

/programming/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409


これがカテゴリ変数の「ダミーエンコーディング」の意味ですが、ありがとう。ところで私は、順序付けられた要素(「容量クラス」)に関するあなたの声明に同意しません。(1,2,3)または(1,2,100)。これは、距離ベースのアルゴリズムに大きな違いをもたらします。
ジュボ14年

0

答えは実際には非常に簡単です。ダミー変数の情報が実際に何であるかを理解する必要があります。ダミー変数の概念は、因子レベル(カテゴリー変数の離散値)の有無を示します。存在するかどうかの情報を保存することにより、測定不能、定量不可能な何かを表すことを意図しています。これが、ダミー変数がバイナリ変数で表現される理由です。ダミー変数は、それが表すカテゴリ変数の離散値(またはマイナス1)と同数です。

因子レベルを0/1値として表すことは、線形モデルなどの分析方程式でのみ意味があります(これは、統計モデルの係数を解釈できる人にとっては簡単な概念です)。ダミー変数では、基礎となるカテゴリ変数の情報がビット順に保存されます。これらのビットを次元として使用して、入力サンプルを特徴空間にマッピングする場合(類似性/距離行列の場合)、ビットの順序の情報は完全に失われます。


1
ありがとう!実際、私のポイントは、ダミーエンコードされたカテゴリ変数がユークリッド距離で(特定の)意味をなすということです。値が異なる場合、2乗距離に2を加算し、そうでない場合は0を加算します。カテゴリーの数またはその確率を考慮に入れる方法。
-jubo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.