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
330
TokyoR#54 コサイン距離を用いたクラスタリング
コサイン距離を用いたクラスタリング。
2016年6月。
bob3bob3
January 12, 2022
Tweet
Share
More Decks by bob3bob3
See All by bob3bob3
RでPSM分析
bob3bob3
1
230
Rでコンジョイント分析 2024年版
bob3bob3
0
1.1k
『改訂新版前処理大全』の話と Apache Parquet の話 #TokyoR
bob3bob3
0
880
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
510
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
460
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
550
qeMLパッケージの紹介
bob3bob3
0
1.8k
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
530
パーマーステーションのペンギンたち#3 探索的データ分析(EDA)編
bob3bob3
1
650
Other Decks in Programming
See All in Programming
Linux && Docker 研修/Linux && Docker training
forrep
24
4.5k
昭和の職場からアジャイルの世界へ
kumagoro95
1
390
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
GoとPHPのインターフェイスの違い
shimabox
2
190
AWS Organizations で実現する、 マルチ AWS アカウントのルートユーザー管理からの脱却
atpons
0
150
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.4k
SpringBoot3.4の構造化ログ #kanjava
irof
3
1k
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
0
190
Unity Android XR入門
sakutama_11
0
160
PRレビューのお供にDanger
stoticdev
1
130
『品質』という言葉が嫌いな理由
korimu
0
160
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
580
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Music & Morning Musume
bryan
46
6.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
51k
Building Adaptive Systems
keathley
40
2.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
350
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
4 Signs Your Business is Dying
shpigford
182
22k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Language of Interfaces
destraynor
156
24k
Facilitating Awesome Meetings
lara
52
6.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
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!