データのお砂場(145) R言語、Ruspini、「ファジィな」?、{cluster}

Joseph Halfmoon

忘却力の年寄ですが「昔の事」は覚えているのです。前世紀末に近付いたころ、当時の記法では「ファジィ」と綴るものが家電製品やら何やらに蔓延っていた記憶、ファジィな洗濯機とかね。流行語になった?くらいなので当時広く「言葉は知られていた」けれど、何が何だか分かっている人は少なかったような。。。しかし最近はとんと聞かず。

※「データのお砂場」投稿順Indexはこちら

※使用させていただいている Rのversionは 4.3.1。RStudioは 2024.04.2+764 “Chocolate Cosmos” です。

Ruspini Data

今回のサンプルデータセットの解説ページが以下に。

https://stat.ethz.ch/R-manual/R-patched/library/cluster/html/ruspini.html

今回のデータセットは、クラスタリングの演習用データみたいです。ちょっと「アーティフィシャルなフレーバー」のするサンプル・データっす。知らんけど。よって残念なことにいつものようにサンプル・データ・セットに嚙みついて何だか調べずにはいられないという、R言語的には筋違いの年寄の寄り道への切り口はありませぬ。つまらぬのう。

しかし気づいてしまいました。今回のサンプルデータセットの処理例に使われている関数です。

fanny、Fuzzy Analysis Clustering

クラスタリング用の関数みたいですが、Fuzzyの名を冠した fanny という関数です。久しぶりに Fuzzy 聞いたな。ということで最近のFuzzyについて『一般社団法人 人工知能学会』様の以下のページを拝見させていただきました。

【記事更新】私のブックマーク「ファジィ理論」

上記より1か所引用させていただきます。1990年代には世界をリードしていたらしい日本のFuzzy研究ですが、

~中略~ 2023年現在の日本におけるファジィ理論研究はずいぶんと下火になってしまっている.~中略~ このようなわけで,現在において日本国内ではファジィ理論を知るための情報が極めて少なく,そのためファジィ研究がさらに下火になるという負のフィードバックがかかっている.

世界的には研究されている人もいるみたいだけれども、流行に敏感?な日本の皆さんは別な方面に行ってしまったみたいなのね。。。復活の芽もあるのか?知らんけど。

なお「ファジィ理論」については、『北海道大学オープンコースウエア』様の以下の文書が分かり易かったです(個人の感想です。)

ファジィ推論

捻くれものの年寄なので、こういうのを見ると、ファジィしてみたくなる気がしないでもない。

まずは生データ

まずはサンプルデータのロード。今回も clusterパッケージの中のデータなので、パッケージをロードしておかなければなりませぬ。ruspiniRawdata

以下のようにプロットすれば、データの姿は一目瞭然。

plot(ruspini)

プロットが以下に。ruspiniPlot

上記をみると、「4個のクラスタ」に分けられるような気がすごくしますな。

fanny関数でクラスタリング

さて処理例では、fanny関数を使ってクラスタリングしてます。お惚け老人的には4クラスタかと思いきや、処理例は「5個」に分けてみろ、ということであります。処理例のコマンドが以下に。

plot(fanny(ruspini, 5))

クラスタリングした結果が以下に。fanny5

たしかに、5個に分けてくれているけれども、ちょっと無理くり感が否めませぬ。これに対するシルエット分析(Silhouette)の結果が以下に。fanny5Sihouette

赤丸つけましたが、「負の値」が計算されているところがあり、ここが無理くり感の原因みたいです。

実際、fanny関数に4クラスタに分類させてみると、素直にクラスタリングします。こんな感じ。fanny4

そのシルエットに負はなし。fanny4Sihouette

pamでクラスタリングはどうよ

上はFuzzyなfanny関数でしたが、pam、Partitioning Around Medoids関数を使ってクラスタリングをするのはどうよ、ということでやってみました。こちらは、

a more robust version of K-means.

だということだそうです。みんな大好きK-meansのロバストなやつ? こっちの方が主流か? 知らんけど。4クラスタでは面白くないので、問題の5クラスタの方でお願いしてみました。こんな感じ。

plot(pam(ruspini, 5), ask = TRUE)

結果プロットが以下に。pam5

その手があったか、という感じ。いい感じで5クラスタになってないかい?

「シルエット」が以下に。pam5Sihouette

負の値もないし、まあまあ綺麗に切れている?ホントか?

データのお砂場(144) R言語、pluton、プルトニウム同位体混合比、{cluster}へ戻る

データのお砂場(146) R言語、votes.repub、昔の共和党得票率{cluster} へ進む