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#54 コサイン距離を用いたクラスタリング
Search
bob3bob3
January 12, 2022
Programming
0
140
TokyoR#54 コサイン距離を用いたクラスタリング
コサイン距離を用いたクラスタリング。
2016年6月。
bob3bob3
January 12, 2022
Tweet
Share
More Decks by bob3bob3
See All by bob3bob3
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
280
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
2
340
qeMLパッケージの紹介
bob3bob3
0
910
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
310
パーマーステーションのペンギンたち#3 探索的データ分析(EDA)編
bob3bob3
1
410
Redditで遊ぼう #TokyoR 106
bob3bob3
0
520
シン・初心者のためのR-Tips
bob3bob3
0
340
応用セッション発表のすすめ
bob3bob3
0
680
LT発表のすすめ
bob3bob3
0
520
Other Decks in Programming
See All in Programming
Laravel標準バリデーションでできること
hmb_ok
2
360
オブジェクト指向コードレビューの新しいアプローチ
akkie76
3
1.5k
OpenAPI を守るのは難しい
ohmori_yusuke
1
140
LLMチャットボットのアプリケーション設計Tips
os1ma
4
660
Why 1 + 1 = 2 in Swift?
1plus4
1
250
Building a Smaller App Binary
kateinoigakukun
2
220
WinUI 3デモ - "CommunityToolkit.Mvvm"NuGetパッケージ編
andrewkeepcoding
0
140
Enhancing Applications with Accessibility API
kishikawakatsumi
3
1k
孤独のCTOグルメという やや奇抜な企画をやった目的と効果
shoheimitani
3
1k
せっかくモデル図描くのなら、嬉しいことが多い方がいいよね!
kuboaki
1
1.8k
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
イベントストーミングによるオブジェクトモデリング・オブジェクト指向プログラミングの適用・開発プロセスの変遷・アーキテクチャの変革 / Object modeling with Event Storming.
nrslib
12
3.2k
Featured
See All Featured
Building an army of robots
kneath
300
41k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
The Invisible Side of Design
smashingmag
293
49k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
A designer walks into a library…
pauljervisheath
199
23k
Faster Mobile Websites
deanohume
296
30k
Practical Orchestrator
shlominoach
180
9.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
319
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Transcript
コサイン類似度を用いた クラスタリング @bob3bob3 Tokyo.R #54 2016/06/19
お伝えしたいこと • いわゆるビッグデータによくあるスパース な行列のクラスタリングにはコサイン類似 度を使うといい感じだよ。 • コサイン類似度を用いたクラスタリングは skmeansパッケージで実行できるよ。 • このLTの内容は『マーケティング・サイエ
ンスのトップランナーたち』の第2章「商 品市場を細分化するビッグデータ適合型ク ラスター分析の活用」がネタ元だよ。
同じような購買傾向の消費者を グループ化したい ケース1 ビール ワイン 日本酒 焼酎 ウイスキー Aさん 1
1 Bさん 1 ケース2 ビール ワイン 日本酒 焼酎 ウイスキー Cさん 1 1 1 Dさん 1 1 1 1 この二人は別々のグループにしたい この二人は同じグループにしたい
K-means法で使用される ユークリッド距離だと ケース1 ビール ワイン 日本酒 焼酎 ウイスキー Aさん 1
1 Bさん 1 ケース1 ビール ワイン 日本酒 焼酎 ウイスキー Aさん 1 1 1 Bさん 1 1 1 1 ユークリッド距離:1.732 ユークリッド距離:1.732
1-コサイン類似度だと ケース1 ビール ワイン 日本酒 焼酎 ウイスキー Aさん 1 1
Bさん 1 ケース1 ビール ワイン 日本酒 焼酎 ウイスキー Aさん 1 1 1 Bさん 1 1 1 1 1−コサイン類似度:1.000 1−コサイン類似度:0.423
skmeansパッケージを使ってみる # 関連規則のパッケージに入っているサンプルデータを使う library(arules) # transactions形式のサンプルデータ data(Groceries) # スパースなデータを扱いやすくするパッケージ。圧倒的に処理が早い。 library(slam)
# transactions形式からmatrix形式に Groceries.mat <- as(Groceries,"matrix") # 真偽値を0/1に変換 Groceries.mat <- ifelse(Groceries.mat==TRUE,1,0) # matrix形式からstm形式へ Groceries.stm <- as.simple_triplet_matrix(Groceries.mat)
skmeansパッケージを使ってみる # コサイン距離を使ったkmeans library(skmeans) set.seed(1234) #再現性のための乱数種設定 res <- skmeans(Groceries.stm, k=05)
table(res$cluster) #各クラスタのサイズ aggregate(Groceries.mat, by=list(res$cluster), mean)
Enjoy!