Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TokyoR#60 クラスタ分析におけるクラスタ数の決め方
Search
bob3bob3
January 12, 2022
Programming
490
0
Share
TokyoR#60 クラスタ分析におけるクラスタ数の決め方
クラスタ分析におけるクラスタ数の決め方。
2017年4月。
bob3bob3
January 12, 2022
More Decks by bob3bob3
See All by bob3bob3
RとLLMで自然言語処理
bob3bob3
3
850
RでPSM分析
bob3bob3
1
420
Rでコンジョイント分析 2024年版
bob3bob3
0
2.4k
『改訂新版前処理大全』の話と Apache Parquet の話 #TokyoR
bob3bob3
0
1.4k
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
640
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
580
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
640
qeMLパッケージの紹介
bob3bob3
0
2.4k
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
640
Other Decks in Programming
See All in Programming
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
110
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
520
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
300
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
240
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
510
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
190
実践CRDT
tamadeveloper
0
220
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.9k
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
340
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
720
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
110
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
510
We Have a Design System, Now What?
morganepeng
55
8.1k
GitHub's CSS Performance
jonrohan
1032
470k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
500
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
170
A Modern Web Designer's Workflow
chriscoyier
698
190k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
220
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Transcript
クラスタ分析における クラスタ数の決め方 @bob3bob3 Tokyo.R #60
クラスタ分析におけるクラスタ数の決め方 • クラスタ分析を行う際、クラスタ数をいくつにするべきかという のは非常に悩ましい問題。 • 目的や分野によっても考え方が異なるでしょう。 • 原則として、分析者が意思を持って決めるべき、というのが結 論ではある。 •
ただ、それを支援する、より適切と思われるクラスタ数を示唆 してくれる指標(cluster index)がいくつかRで提供されている。
パッケージと関数 • 今回は3つのパッケージと関数をご紹介。 ◦ {cclust} パッケージの clusterIndex() ◦ {vegan} パッケージの
cascadeKM() ◦ {clusterSim} パッケージの cluster.Sim()
{cclust}パッケージのclustIndex() • clustIndex() は cclust() でクラスタリングした結果に対して指標値を返す。 • 15種の指標を返すが、calinski(疑似F統計量)がおすすめ。 library(cclust) DAT
<- as.matrix(iris[,-5]) MAX <- 10 res <- data.frame(matrix(0,MAX,15)) for (i in 2:MAX){ clust <- cclust(DAT, i) temp <- clustIndex(clust, DAT) if(i==2) colnames(res) <- names(temp) res[i,] <- temp } plot(res$calinski, type="b")
{vegan} パッケージの cascadeKM() • cascadeKM() は calinski に基づいて最適と考えられるクラスタリング結果を返す。 library(vegan) #
試行するクラスタ数の最小数と最大数を与える # デフォルトは calinski だが ssi も使える res <- cascadeKM(iris[,-5], 2, 10) best <- plot(res) best$x[,best$best.grps]
{clusterSim} パッケージの cluster.Sim() • cluster.Sim()は複数の標準化手法、距離、クラスタリング手法を組み合わせて最 適なクラスタリングを探索する。引数の指定が独特なのでヘルプからたどれる clusterSim_details.pdf を見ながら設定すること。 library(clusterSim) cluster.Sim(iris[,-5],
p=1, min=2, max=10, "G1", outputHtml="results.iris") # これで3,312通りのクラスタリングが試される。 # 非力なマシンでは非常に時間がかかるので注意。
最後に • クラスタの数は分析者が意思を持って決めるべきという結論 は変わらないのですが、これらの指標を使うことで検討にかか る負担を大きく減らし、考察に時間を使うことができます。 • また、GIGOなのは変わらないので、これらの指標を使っても 元データがダメだとどうにもなりません。本当の肝はどんな データをクラスタリングに利用するかという部分ですが、その 話はまたこんど。