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
0
350
TokyoR#60 クラスタ分析におけるクラスタ数の決め方
クラスタ分析におけるクラスタ数の決め方。
2017年4月。
bob3bob3
January 12, 2022
Tweet
Share
More Decks by bob3bob3
See All by bob3bob3
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
250
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
300
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
360
qeMLパッケージの紹介
bob3bob3
0
970
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
330
パーマーステーションのペンギンたち#3 探索的データ分析(EDA)編
bob3bob3
1
430
Redditで遊ぼう #TokyoR 106
bob3bob3
0
530
シン・初心者のためのR-Tips
bob3bob3
0
350
応用セッション発表のすすめ
bob3bob3
0
690
Other Decks in Programming
See All in Programming
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Code Reviews
bkuhlmann
4
890
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
920
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
640
PHPはいつから死んでいるかの調査
chiroruxx
1
360
新宿ダンジョンを可視化してみた
satoshi7190
2
210
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
190
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
0
320
Goのエラースタックトレースの歴史と今後
sonatard
6
590
Build with AI 2024 Seoul - 제로부터 시작하는 Flutter with Gemini 생활 - 박제창
itsmedreamwalker
0
200
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
220
Featured
See All Featured
Web development in the modern age
philhawksworth
202
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
How to train your dragon (web standard)
notwaldorf
72
5.1k
Faster Mobile Websites
deanohume
298
30k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
16
1.4k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
RailsConf 2023
tenderlove
2
530
The Invisible Customer
myddelton
114
12k
Web Components: a chance to create the future
zenorocha
305
41k
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なのは変わらないので、これらの指標を使っても 元データがダメだとどうにもなりません。本当の肝はどんな データをクラスタリングに利用するかという部分ですが、その 話はまたこんど。