いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【KNIME】外れ値も加味したクラスタリングをしてみたい(DBSCAN)

クラスタリングの手法として、密度を基準に、ぎゅっと集まっているところを一つのクラスタ、疎なところを外れ値として解釈するDBSCANという手法がある。

・ざっくりと組んでみた(下図)。これもデータ間の距離を算出してやる必要があるので、Numeric Distancesノードを噛ませた。

f:id:choron81:20211117231507p:plain

・DBSCANノードの設定では、EpsilonとMinimum pointsを設定する必要がある(下図)。

f:id:choron81:20211117231630p:plain

・前者はどれだけ他のデータから離れるとボッチ(外れ値、noise)認定するか、後者はどれだけ集まってもボッチ認定するか、というイメージ。

・前者が大きすぎると人類皆兄弟と言わんばかりにすべてのデータを1つのクラスタにまとめてしまうし、小さすぎるとどうせ皆孤独なんだといわんばかりにバラバラにクラスタ分けされる。後者が大きすぎるとクラスの最大派閥以外はボッチと言われ、小さすぎるとソロプレイヤーばかりでボッチなんていません、という具合になるらしい。

・この条件でクラスタリングを実施すると4つのクラスタとそれらに属さない外れ値に分類された(下図)。

f:id:choron81:20211117232303p:plain

・この手法の特長は、非階層型クラスタリングクラスタ数を指定する必要がないこと、外れ値を勝手に提案してくれるところか。短所は、先の2つのハイパーパラメータで結果が非常に大きく変わることだろうか(ハイパーパラメータならなんだってそうだろうが)。

 

終わり。