SlideShare a Scribd company logo
1 of 51
Download to read offline
takemikami’s note	– http://takemikami.com/
三上 威 (フリーランスITエンジニア)		twitter:	@takemikami
k-means法によるクラスタリングの解説と
具体的なクラスタリングの活用方法の紹介
マーケティング施策検討での活用をイメージして
1
クラスタリング k-means	機械学習
2015.11.27	アルゴリズムから学ぶAzureMLモジュールの使いこなし方
Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
takemikami’s note	– http://takemikami.com/
アジェンダ
• 自己紹介
• クラスタリングとは
– マーケティングデータ分析の全体像と機械学習
– 代表的な機械学習の手法とクラスタリング
– 機械学習の中でのk-means法の位置づけ
• 階層的的手法のアルゴリズム
• k-means法のアルゴリズム
• k-means法によるクラスタリングの例
– 推計人口/面積で都道府県をクラスタリング
– 実際に計算してみる
– 結果の考察、階層的手法との比較
• 参考文献でのクラスタリングの応用例
• 参考文献リスト
2Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
takemikami’s note	– http://takemikami.com/
自己紹介
• 三上威 (@takemikami)
• フリーランスITエンジニア
– マーケティングデータ分析基盤のシステム開発運用
• 略歴
– 情報通信ネットワークの研究 @	甲南大学理学部応用数学科
– Web系システムの開発・構築@	NEC系SIer
– 旅行系ECサイトのマーケティングデータ分析 @	DeNA
• 最近扱っている技術領域
– Spark,	Scala,	Hadoop,	AWS,	Redshift,	kinesis,	docker
3Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
→本セッションでは、具体的に「マーケティング」をイメージして説明します。
takemikami’s note	– http://takemikami.com/
マーケティングデータ分析の全体像と機械学習
4Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングとは
マーケティングデータ分析における、機械学習の位置づけを示します。
顧客との
チャネル
データ分析
顧客
社会・
業界
リアル広告 イベント
・・・
Data	Lake
SNS
収集施策
実店舗
収
集
DWH
データサイエンティスト
マーケター
Web広告ECサイト
機械学習
施策の検討・意思決定を機械学習で支援
takemikami’s note	– http://takemikami.com/
代表的な機械学習の手法とクラスタリング
5Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングとは
教師 種類 手法 活用方法
教師あり 分類
(classification)
ロジスティック回帰
決定木
SVM
ニューラルネットワーク
離脱顧客判定
スパムメールの判定
回帰分析
(regression)
線形回帰分析
ベイズ線形回帰分析
販売予測
教師なし クラスタリング
(clustering)
★k-means法
混合正規分布モデル
顧客のセグメント分け
次元圧縮
(dimentionaly reduction)
主成分分析
特異値分解
商品の類似性を可視化
共起分析
(co-occurrence	analysis)
協調フィルタリング
Aprioriアルゴリズム
商品のレコメンド
機械学習の手法における、クラスタリングの位置づけを示します。
→本セッションでは「クラスタリング: k-means法」について説明します。
takemikami’s note	– http://takemikami.com/
クラスタリング(clustering)と分類(classification)
6Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングとは
分類(classification) クラスタリング(clustering)
教師 教師あり 教師なし
説明 与えられたデータを
適切なクラスに振り分ける
与えられたデータを
複数のグループ分ける
イメージ
既存データを元に作ったルールで
新規データを振り分ける
データの特徴を元に
意味あるグループが無いか見つける
A
ルール
B C
クラスタリングと分類(教師あり学習と教師なし学習)の違いを示します。
takemikami’s note	– http://takemikami.com/
階層的手法と非階層的手法
7Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングとは
階層的手法 非階層的手法
説明 各データを一つのクラスタと見なし、
距離が近いクラスタを
段階的に結合する手法
決められたクラスタ数でデータを分割し、
最適分割となる分割方法を
探索する手法
イメージ
手法 ウォード法、重心法、メディアン法など k-means法、混合分布モデルなど
クラスタリング手法、非階層的手法と階層的手法の違いを示します。
最適分割を探索
takemikami’s note	– http://takemikami.com/
ハードクラスタリングとソフトクラスタリング
8Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングとは
クラスタリング手法、ハードクラスタリングとソフトクラスタリングの違いを示します。
ハードクラスタリング ソフトクラスタリング
説明 各データが
一つのクラスのみに所属する
各データが
複数のクラスタに所属することを許す
イメージ
各データが
所属するグループを1つ
割り当てる
各データが
各クラスタに所属する確率を
割り当てる
手法 K-means法など 混合分布モデルなど
takemikami’s note	– http://takemikami.com/
教師 種類
教師
あり
分類
(classification)
回帰分析
(regression)
教師
なし
クラスタリング
(clustering)
次元圧縮
(dimentionaly reduction)
共起分析
(co-occurrence	analysis)
機械学習の中でのk-means法の位置づけ
9Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングとは
ハード
クラスタリング
ソフト
クラスタリング
階層的方法
非階層的方法 k-means法
本セッションで説明するk-means法の、機械学習での位置づけを示します。
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き
• 各データを一つのクラスタとみなす
• 繰り返し
– 全クラスタの中心点(重心)を求める
– クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する
– クラスタが1つになったら終了
10Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きを示します。
→次のスライドから、
重心法(階層的手法)でクラスタリングを行う流れをイメージで示します。
※ここでは紹介しないが、結合される候補となる「クラスタ内の平方和」を計算し、増分
値が最小のものを結合していく「ウォード法」がよく使われる
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ1
11Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
クラスタリングを行いたいデータセットを用意する
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ2
12Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
各データを一つのクラスタとみなす
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ3
13Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
全クラスタの中心点(重心)を求める
✓
✓
✓
✓
✓
✓ ✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ4
14Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する
✓
✓
✓
✓
✓
✓ ✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ5
15Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
全クラスタの中心点(重心)を求める
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ6
16Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ8
17Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
全クラスタの中心点(重心)を求める
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ9
18Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ10
19Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
全クラスタの中心点(重心)を求める
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ11
20Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ12
21Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
全クラスタの中心点(重心)を求める
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ13
22Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
と、いうことを
繰り返して
takemikami’s note	– http://takemikami.com/
重心法(階層的手法)の手続き 〜結合イメージ14
23Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
階層的手法のアルゴリズム
重心法(階層的手法)でクラスタリングを行う手続きのイメージ
クラスタが1つになったら終了
✓
✓
✓
✓
✓
✓ ✓
✓
✓
✓
takemikami’s note	– http://takemikami.com/
k-means法の手続き
• クラスタ数(k)を決める
• クラスタの中心点を対象データからランダムにk個決める
• 繰り返し
– 各データを最も近くにある中心点のクラスタに割り当てる
– クラスタ内のデータの平均値を新たなクラスタの中心点にする
– クラスタの中心点が変化しなくなったら終了
24Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
k-means法でクラスタリングを行う手続きを示します。
→次のスライドから、
k-means法で最適なクラスタを探索する流れをイメージで示します。
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ1
25Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
k-means法でクラスタリングを行う手続きのイメージ
クラスタリングを行いたいデータセットを用意する
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ2
26Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
クラスタの中心点を対象データからランダムにk個決める(この図では2個)
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ3
27Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
各データを最も近くにある中心点のクラスタに割り当てる
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ4
28Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
クラスタ内のデータの平均値を新たなクラスタの中心点にする
✓
✓
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ5
29Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
各データを最も近くにある中心点のクラスタに割り当てる
✓
✓
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ6
30Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
クラスタ内のデータの平均値を新たなクラスタの中心点にする
✓
✓
✓
✓
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ7
31Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
各データを最も近くにある中心点のクラスタに割り当てる
✓
✓
✓
✓
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ8
32Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
✓
✓
クラスタ内のデータの平均値を新たなクラスタの中心点にする
✓
✓
✓
✓
✓ ✓
k-means法でクラスタリングを行う手続きのイメージ
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ9
33Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
各データを最も近くにある中心点のクラスタに割り当てる
k-means法でクラスタリングを行う手続きのイメージ
✓
✓
✓
✓
✓
✓
✓ ✓
takemikami’s note	– http://takemikami.com/
k-means法の手続き 〜探索のイメージ10
34Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法のアルゴリズム
クラスタ内のデータの平均値を新たなクラスタの中心点にする
→クラスタの中心点が変化しなくなった ⇒ 終了
k-means法でクラスタリングを行う手続きのイメージ
✓
✓
✓
✓
✓
✓
✓ ✓
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜データの特徴
35Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
例で用いるデータの特徴を示します
R > ( x <- read.csv(“都道府県人口面積.csv", header=T, row.names="都道府県") )
R > head(x)
推計人口 面積
北海道 5400025 78421.17
青森県 1321863 9645.40
岩手県 1284384 15275.01
宮城県 2327993 7282.14
秋田県 1037060 11637.54
山形県 1130659 9323.15
R > summary(x)
推計人口 面積
Min. : 574022 Min. : 1877
1st Qu.: 1122316 1st Qu.: 4167
Median : 1668273 Median : 6097
Mean : 2703885 Mean : 7936
3rd Qu.: 2723634 3rd Qu.: 8090
Max. :13378584 Max. :78421
都道府県の「推計人口」「面積」を
説明変数として、
クラスタリングを行う例を示します
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜データの特徴
36Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
例で用いるデータの特徴を示します
R > plot(x$推計人口,x$面積)
R > text(x$推計人口,x$面積,labels=rownames(x))
←x$推計人口
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜階層的手法で
37Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
ウォード法(階層的手法)でクラスタリングを行った結果をデンドログラムで示す
R > y <- scale(x)[,]
R > plot(hclust(dist(y), method="ward.D"))
dist(y)
hclust(*,”ward.D”)
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜k-means法で
38Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
k-means法でクラスタリングを行った結果をプロット図で示す
R > y_cluster = kmeans(y, 3)
R > plot(x=y, col=y_cluster$cluster, pch=y_cluster$cluster)
推計人口
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜k-means法で
39Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
R > text(y[,"推計人口"],y[,"面積"],labels=rownames(y))
k-means法でクラスタリングを行った結果をプロット図で示す
推計人口
takemikami’s note	– http://takemikami.com/
ユークリッド距離 コサイン距離
式
式
(2変数
の時)
説明 データ間の直線距離 データをベクトルで表現した時の
角度の近さ
※一部の変数の大きさの偏りに影響を受けない
実際に計算してみる 〜距離について
40Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
k-means法の計算で利用する距離について説明します。
d(Xa − Xb ) = (xaj − xbj )2
j=1
ρ
∑ s(Xa − Xb ) =
xaj xbj
j=1
ρ
∑
xaj
2
j=1
ρ
∑ xbj
2
j=1
ρ
∑
d(Xa − Xb ) = xa1 − xb1( )
2
+(xa2 − xb2 )2 s(Xa − Xb ) =
xa1xb1 + xa2 xb2
xa1
2
+ xa2
2
xb1
2
+ xb2
2
三平方の定理
takemikami’s note	– http://takemikami.com/
実際に計算してみる 〜距離について
• 東京都-大阪府の距離
• 東京都-鳥取県の距離
• 大阪府-鳥取県の距離
41Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
ユークリッド距離を計算してみます。
都道府県 推計人口 面積
東京都 13,378,584 2190.9
大阪府 8,850,607 1904.99
鳥取県 574,022 3507.05
d = 13,378,584−8,850,607( )
2
+(2190.9 −1904.99)2
= 4,527,977
d = 13,378,584 − 574,022( )
2
+(2190.9 −3507.05)2
=12,804,562
d = 8,850,607− 574,022( )
2
+(1904.99 −3507.05)2
= 8,276,585
近い
遠い
takemikami’s note	– http://takemikami.com/
実際に計算してみる 〜クラスターの中心を計算
42Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
クラスターの中心(重心)の計算方法について説明します。
• 式:重心を とすると、
• 具体的に、計算してみると、
v = (v1,v2,…,vρ )
vj =
1
n
xij
i=1
n
∑ (Nはクラスタ内のデータ数)
都道府県 推計人口 面積
東京都 13,378,584 2190.9
大阪府 8,850,607 1904.99
神奈川県 9,098,984 2415.81
v = (
13,378,584+8,850,607+9,098,984
3
2190.9+1904.99+2415.81
3
) = (
10,442,725
2,170.56
)
東京・大阪・神奈川
の重心
takemikami’s note	– http://takemikami.com/
• 東京都-(東京・大阪・神奈川の重心)の距離
• 大阪府-(東京・大阪・神奈川の重心)の距離
• 鳥取県-(東京・大阪・神奈川の重心)の距離
実際に計算してみる 〜クラスターの中心を計算
43Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
クラスターの中心からのユークリッド距離を計算してみます。
(
10,442,725
2,170.56
)
東京・大阪・神奈川
の重心
都道府県 推計人口 面積
東京都 13,378,584 2190.9
大阪府 8,850,607 1904.99
鳥取県 574,022 3507.05
d = 13,378,584−10,442,725( )
2
+(2190.9 − 2170.56.99)2
= 2,935,859
d = 8,850,607−10,442,725( )
2
+(1904.99 − 2170.56)2
=1,592,118
d = 574,022 −10,442,725( )
2
+(3507.05− 2170.56)2
= 9,868,703
遠い
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜考察(ウォード法)
44Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
ウォード法(階層的手法)のデンドログラムから考察してみます
とても広
い?
人口が多い?人口多め?人口少なめ?
階層的手法では、
デンドログラムを見ながら、
目的にあったクラスタ数・クラスタの分け方を検討できる
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜考察(ウォード法)
45Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
ウォード法(階層的手法)のデンドログラムから考察してみます
しかし、
データ数が多く・複雑になると、
デンドログラムから考察することは難しい
数百件、数百万件のデータだと
デンドログラムを見て考察できない
たくさんの会員がいるサービスの
個人名などが並んでいると
前スライドのように
対象をイメージして考察できない
takemikami’s note	– http://takemikami.com/
階層的手法と非階層的手法の長所と短所
46Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
階層的手法 非階層的手法
イメージ
長所 系統図を見ながら考察し、後からクラスター数
を決定できる
データが多い場合でも比較的速く処理できる
短所 データ数が多いと扱いが難しい 最初にクラスター数を決定する必要がある(クラス
ター数を決める基準が必要)
クラスタリング手法、非階層的手法と階層的手法の長所と短所を示します。
最適分割を探索
→次のスライドで、非階層的手法の短所を補うような形で考察してみます。
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜考察(k-means法)
47Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
> kmeans(y, 2)$centers
推計人口 面積
1 -0.4262136 -0.09819234
2 1.7995686 0.41458989
> kmeans(y, 3)$centers
推計人口 面積
1 1.9001979 -0.33487358
2 0.9945343 6.41029762
3 -0.4262136 -0.09819234
> kmeans(y, 4)$centers
推計人口 面積
1 0.9945343 6.4102976
2 -0.5929847 -0.2971737
3 -0.2409124 0.1228981
4 1.9001979 -0.3348736
k-means法の結果(クラスタの中心)から考察してみます
2クラスタに分割
1.	人口少ない、広さ平均的
2.	人口多い、広い
3クラスタに分割
1.	人口多い、狭い
2.	人口多い、かなり広い
3.	人口少ない、広さ平均的
4クラスタに分割
1.	人口多い、かなり広い
2.	人口少ない、狭い
3.	人口少ない、広い
4.	人口多い、狭い
k-meansでは、各クラスタの中心点から
クラスタの特徴を考察するアプローチをとることができる
takemikami’s note	– http://takemikami.com/
推計人口/面積で都道府県をクラスタリング 〜考察(k-means法)
48Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
k-means法によるクラスタリングの例
> kmeans(y, 2)$centers
新商品購買率 ネット通販利用率
1 -0.4262136 -0.09819234
2 1.7995686 0.41458989
> kmeans(y, 3)$centers
新商品購買率 ネット通販利用率
1 1.9001979 -0.33487358
2 0.9945343 6.41029762
3 -0.4262136 -0.09819234
> kmeans(y, 4)$centers
新商品購買率 ネット通販利用率
1 0.9945343 6.4102976
2 -0.5929847 -0.2971737
3 -0.2409124 0.1228981
4 1.9001979 -0.3348736
k-means法の結果から考察してみます
2クラスタに分割
1.	新商品の購買率低
2.	新商品の購買率高、ネット通販利用率高
3クラスタに分割
1.	新商品の購買率高、ネット通販利用率低
2.	新商品の購買率高、ネット通販利用率極めて高
3.	新商品の購買率低
4クラスタに分割
1.	新商品の購買率高、ネット通販利用率極めて高
2.	新商品の購買率低、ネット通販利用率低
3.	新商品の購買率低、ネット通販利用率高
4.	新商品の購買率高、ネット通販利用率低
例えば、次(データ数が多そうな例)のように読み替えたとして、
都道府県→顧客、推計人口→新商品購買率、面積→ネット通販利用率
以下のようにクラスタ数を変化させながら考察することもできる
takemikami’s note	– http://takemikami.com/
参考文献でのクラスタリングの応用例の紹介
• 画像ファイルの減色処理(代表色の抽出)
– 画像ファイルに含まれる色をRGBの3値で表す
– 各色をデータとしてクラスタリング
– 各クラスタに属する色を、各クラスタの中心点の色に置き換える
※中井悦司「ITエンジニアのための機械学習理論入門」の応用例
• Web広告のクリック数によるクラスタリング
– Web広告のクリック数によってユーザをクラスタリング
– 各クラスタのユーザが反応したキャンペーンの違いを比較分析
※比戸将平・馬場雪乃・里洋平・戸嶋龍哉・得居誠也・福島真太朗・加藤公
一・関喜史・阿部厳・熊崎宏樹「データサイエンティスト養成読本 機械学習入
門編」の応用例
49Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
クラスタリングの活用シーン
参考文献に掲載されていたクラスタリングの応用例を紹介します
takemikami’s note	– http://takemikami.com/
まとめ
• クラスタリングとは、
「与えられたデータ複数のグループに分ける」
ための機械学習の手法
• k-means法とは、
「決められたクラスタ数でデータを分割し、
最適分割となる分割方法を探索する手法」
• クラスタの中心点から、
分割されたクラスタの特徴を考察できる。
50Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
本セッションのまとめを示します。
takemikami’s note	– http://takemikami.com/
参考文献リスト
• 機械学習
– 中井悦司 「ITエンジニアのための機械学習理論入門」
技術評論社 2015
– 比戸将平・馬場雪乃・里洋平・戸嶋龍哉・得居誠也・福島真太朗・加藤公一・関喜史・阿部厳・
熊崎宏樹
「データサイエンティスト養成読本 機械学習入門編」
技術評論社 2015
– 脇森浩志・杉山雅和・羽生貴史 「クラウドではじめる機械学習 〜Azure	MLでらくらく体験」
リックテレコム 2015
• 多変量解析
– 兼子毅 「Rで学ぶ多変量解析」
日科技連出版社 2011
– 宮本定明 「クラスター分析入門 -ファジィクラスタリングの理論と応用」
森北出版 2010
– 朝野煕彦 「入門 多変量解析の実際」
講談社 1996
51Copyright	(C)	2015	Takeshi	Mikami.	All	rights	reserved.
付録
本資料作成にあたって参考にした文献リストです。

More Related Content

What's hot

2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE広樹 本間
 
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題joisino
 
スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習hagino 3000
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)Satoshi Hara
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用Ryo Iwaki
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズムnishio
 
fastTextの実装を見てみた
fastTextの実装を見てみたfastTextの実装を見てみた
fastTextの実装を見てみたYoshihiko Shiraki
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用Yasunori Ozaki
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Shohei Taniguchi
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative ModelsDeep Learning JP
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリングmlm_kansai
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...Deep Learning JP
 
それでも私が研究を続ける理由
それでも私が研究を続ける理由それでも私が研究を続ける理由
それでも私が研究を続ける理由Hitomi Yanaka
 

What's hot (20)

2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
 
グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
 
スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習スパース性に基づく機械学習 2章 データからの学習
スパース性に基づく機械学習 2章 データからの学習
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
勾配降下法の 最適化アルゴリズム
勾配降下法の最適化アルゴリズム勾配降下法の最適化アルゴリズム
勾配降下法の 最適化アルゴリズム
 
fastTextの実装を見てみた
fastTextの実装を見てみたfastTextの実装を見てみた
fastTextの実装を見てみた
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
 
それでも私が研究を続ける理由
それでも私が研究を続ける理由それでも私が研究を続ける理由
それでも私が研究を続ける理由
 

Viewers also liked

パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0sleipnir002
 
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編Koichi Hamada
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
大規模サイトを支えるビッグデータプラットフォーム技術
大規模サイトを支えるビッグデータプラットフォーム技術大規模サイトを支えるビッグデータプラットフォーム技術
大規模サイトを支えるビッグデータプラットフォーム技術Yahoo!デベロッパーネットワーク
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデルHiroshi Shimizu
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You NeedDeep Learning JP
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みRecruit Technologies
 
解説!30分で分かるLEAN ANALYTICS
解説!30分で分かるLEAN ANALYTICS解説!30分で分かるLEAN ANALYTICS
解説!30分で分かるLEAN ANALYTICSしくみ製作所
 
心理学者のためのGlmm・階層ベイズ
心理学者のためのGlmm・階層ベイズ心理学者のためのGlmm・階層ベイズ
心理学者のためのGlmm・階層ベイズHiroshi Shimizu
 
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソンd3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン圭輔 大曽根
 
RとJavaScript Visualizationを俯瞰しよう
RとJavaScript Visualizationを俯瞰しようRとJavaScript Visualizationを俯瞰しよう
RとJavaScript Visualizationを俯瞰しようYasuyuki Sugai
 
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜Yasuyuki Sugai
 
第2回関西ゼロから始めるR言語勉強会
第2回関西ゼロから始めるR言語勉強会第2回関西ゼロから始めるR言語勉強会
第2回関西ゼロから始めるR言語勉強会Iida Keisuke
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-Koichi Hamada
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5Nobuaki Oshiro
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編Hiroshi Shimizu
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)Hiroshi Shimizu
 

Viewers also liked (20)

パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0パターン認識02 k平均法ver2.0
パターン認識02 k平均法ver2.0
 
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
k-means(k-平均法)
k-means(k-平均法)k-means(k-平均法)
k-means(k-平均法)
 
大規模サイトを支えるビッグデータプラットフォーム技術
大規模サイトを支えるビッグデータプラットフォーム技術大規模サイトを支えるビッグデータプラットフォーム技術
大規模サイトを支えるビッグデータプラットフォーム技術
 
分析手法のご紹介
分析手法のご紹介分析手法のご紹介
分析手法のご紹介
 
MCMCでマルチレベルモデル
MCMCでマルチレベルモデルMCMCでマルチレベルモデル
MCMCでマルチレベルモデル
 
[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need[DL輪読会]Attention Is All You Need
[DL輪読会]Attention Is All You Need
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
 
解説!30分で分かるLEAN ANALYTICS
解説!30分で分かるLEAN ANALYTICS解説!30分で分かるLEAN ANALYTICS
解説!30分で分かるLEAN ANALYTICS
 
心理学者のためのGlmm・階層ベイズ
心理学者のためのGlmm・階層ベイズ心理学者のためのGlmm・階層ベイズ
心理学者のためのGlmm・階層ベイズ
 
d3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソンd3jsハンズオン @E2D3ハッカソン
d3jsハンズオン @E2D3ハッカソン
 
RとJavaScript Visualizationを俯瞰しよう
RとJavaScript Visualizationを俯瞰しようRとJavaScript Visualizationを俯瞰しよう
RとJavaScript Visualizationを俯瞰しよう
 
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜機会学習・データビジュアライゼーション事始め〜
 
第2回関西ゼロから始めるR言語勉強会
第2回関西ゼロから始めるR言語勉強会第2回関西ゼロから始めるR言語勉強会
第2回関西ゼロから始めるR言語勉強会
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
 
10分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.510分で分かるr言語入門ver2.5
10分で分かるr言語入門ver2.5
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 

More from Takeshi Mikami

rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法Takeshi Mikami
 
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介Takeshi Mikami
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れTakeshi Mikami
 
MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方Takeshi Mikami
 
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)Takeshi Mikami
 
データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」Takeshi Mikami
 
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成Takeshi Mikami
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウTakeshi Mikami
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方Takeshi Mikami
 
HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題Takeshi Mikami
 
RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介Takeshi Mikami
 
アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)Takeshi Mikami
 
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Takeshi Mikami
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本Takeshi Mikami
 
Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Takeshi Mikami
 
Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Takeshi Mikami
 
IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介Takeshi Mikami
 
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介Takeshi Mikami
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門Takeshi Mikami
 

More from Takeshi Mikami (20)

rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法
 
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れ
 
MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方
 
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
 
データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」
 
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
 
HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題
 
RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介
 
アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)
 
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
 
SPARQL入門
SPARQL入門SPARQL入門
SPARQL入門
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本
 
Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定
 
Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門
 
IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介
 
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門
 

K meansによるクラスタリングの解説と具体的なクラスタリングの活用方法の紹介

  • 1. takemikami’s note – http://takemikami.com/ 三上 威 (フリーランスITエンジニア) twitter: @takemikami k-means法によるクラスタリングの解説と 具体的なクラスタリングの活用方法の紹介 マーケティング施策検討での活用をイメージして 1 クラスタリング k-means 機械学習 2015.11.27 アルゴリズムから学ぶAzureMLモジュールの使いこなし方 Copyright (C) 2015 Takeshi Mikami. All rights reserved.
  • 2. takemikami’s note – http://takemikami.com/ アジェンダ • 自己紹介 • クラスタリングとは – マーケティングデータ分析の全体像と機械学習 – 代表的な機械学習の手法とクラスタリング – 機械学習の中でのk-means法の位置づけ • 階層的的手法のアルゴリズム • k-means法のアルゴリズム • k-means法によるクラスタリングの例 – 推計人口/面積で都道府県をクラスタリング – 実際に計算してみる – 結果の考察、階層的手法との比較 • 参考文献でのクラスタリングの応用例 • 参考文献リスト 2Copyright (C) 2015 Takeshi Mikami. All rights reserved.
  • 3. takemikami’s note – http://takemikami.com/ 自己紹介 • 三上威 (@takemikami) • フリーランスITエンジニア – マーケティングデータ分析基盤のシステム開発運用 • 略歴 – 情報通信ネットワークの研究 @ 甲南大学理学部応用数学科 – Web系システムの開発・構築@ NEC系SIer – 旅行系ECサイトのマーケティングデータ分析 @ DeNA • 最近扱っている技術領域 – Spark, Scala, Hadoop, AWS, Redshift, kinesis, docker 3Copyright (C) 2015 Takeshi Mikami. All rights reserved. →本セッションでは、具体的に「マーケティング」をイメージして説明します。
  • 5. takemikami’s note – http://takemikami.com/ 代表的な機械学習の手法とクラスタリング 5Copyright (C) 2015 Takeshi Mikami. All rights reserved. クラスタリングとは 教師 種類 手法 活用方法 教師あり 分類 (classification) ロジスティック回帰 決定木 SVM ニューラルネットワーク 離脱顧客判定 スパムメールの判定 回帰分析 (regression) 線形回帰分析 ベイズ線形回帰分析 販売予測 教師なし クラスタリング (clustering) ★k-means法 混合正規分布モデル 顧客のセグメント分け 次元圧縮 (dimentionaly reduction) 主成分分析 特異値分解 商品の類似性を可視化 共起分析 (co-occurrence analysis) 協調フィルタリング Aprioriアルゴリズム 商品のレコメンド 機械学習の手法における、クラスタリングの位置づけを示します。 →本セッションでは「クラスタリング: k-means法」について説明します。
  • 6. takemikami’s note – http://takemikami.com/ クラスタリング(clustering)と分類(classification) 6Copyright (C) 2015 Takeshi Mikami. All rights reserved. クラスタリングとは 分類(classification) クラスタリング(clustering) 教師 教師あり 教師なし 説明 与えられたデータを 適切なクラスに振り分ける 与えられたデータを 複数のグループ分ける イメージ 既存データを元に作ったルールで 新規データを振り分ける データの特徴を元に 意味あるグループが無いか見つける A ルール B C クラスタリングと分類(教師あり学習と教師なし学習)の違いを示します。
  • 7. takemikami’s note – http://takemikami.com/ 階層的手法と非階層的手法 7Copyright (C) 2015 Takeshi Mikami. All rights reserved. クラスタリングとは 階層的手法 非階層的手法 説明 各データを一つのクラスタと見なし、 距離が近いクラスタを 段階的に結合する手法 決められたクラスタ数でデータを分割し、 最適分割となる分割方法を 探索する手法 イメージ 手法 ウォード法、重心法、メディアン法など k-means法、混合分布モデルなど クラスタリング手法、非階層的手法と階層的手法の違いを示します。 最適分割を探索
  • 8. takemikami’s note – http://takemikami.com/ ハードクラスタリングとソフトクラスタリング 8Copyright (C) 2015 Takeshi Mikami. All rights reserved. クラスタリングとは クラスタリング手法、ハードクラスタリングとソフトクラスタリングの違いを示します。 ハードクラスタリング ソフトクラスタリング 説明 各データが 一つのクラスのみに所属する 各データが 複数のクラスタに所属することを許す イメージ 各データが 所属するグループを1つ 割り当てる 各データが 各クラスタに所属する確率を 割り当てる 手法 K-means法など 混合分布モデルなど
  • 9. takemikami’s note – http://takemikami.com/ 教師 種類 教師 あり 分類 (classification) 回帰分析 (regression) 教師 なし クラスタリング (clustering) 次元圧縮 (dimentionaly reduction) 共起分析 (co-occurrence analysis) 機械学習の中でのk-means法の位置づけ 9Copyright (C) 2015 Takeshi Mikami. All rights reserved. クラスタリングとは ハード クラスタリング ソフト クラスタリング 階層的方法 非階層的方法 k-means法 本セッションで説明するk-means法の、機械学習での位置づけを示します。
  • 10. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き • 各データを一つのクラスタとみなす • 繰り返し – 全クラスタの中心点(重心)を求める – クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する – クラスタが1つになったら終了 10Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きを示します。 →次のスライドから、 重心法(階層的手法)でクラスタリングを行う流れをイメージで示します。 ※ここでは紹介しないが、結合される候補となる「クラスタ内の平方和」を計算し、増分 値が最小のものを結合していく「ウォード法」がよく使われる
  • 11. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ1 11Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ クラスタリングを行いたいデータセットを用意する
  • 12. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ2 12Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ 各データを一つのクラスタとみなす
  • 13. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ3 13Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ 全クラスタの中心点(重心)を求める ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 14. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ4 14Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 15. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ5 15Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ 全クラスタの中心点(重心)を求める ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 16. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ6 16Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 17. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ8 17Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ 全クラスタの中心点(重心)を求める ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 18. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ9 18Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 19. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ10 19Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ 全クラスタの中心点(重心)を求める ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 20. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ11 20Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ クラスタ間の中心点の距離を求め、最短距離のクラスタを結合する ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 21. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ12 21Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ 全クラスタの中心点(重心)を求める ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 22. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ13 22Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ と、いうことを 繰り返して
  • 23. takemikami’s note – http://takemikami.com/ 重心法(階層的手法)の手続き 〜結合イメージ14 23Copyright (C) 2015 Takeshi Mikami. All rights reserved. 階層的手法のアルゴリズム 重心法(階層的手法)でクラスタリングを行う手続きのイメージ クラスタが1つになったら終了 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 24. takemikami’s note – http://takemikami.com/ k-means法の手続き • クラスタ数(k)を決める • クラスタの中心点を対象データからランダムにk個決める • 繰り返し – 各データを最も近くにある中心点のクラスタに割り当てる – クラスタ内のデータの平均値を新たなクラスタの中心点にする – クラスタの中心点が変化しなくなったら終了 24Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム k-means法でクラスタリングを行う手続きを示します。 →次のスライドから、 k-means法で最適なクラスタを探索する流れをイメージで示します。
  • 25. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ1 25Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム k-means法でクラスタリングを行う手続きのイメージ クラスタリングを行いたいデータセットを用意する
  • 26. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ2 26Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ クラスタの中心点を対象データからランダムにk個決める(この図では2個) k-means法でクラスタリングを行う手続きのイメージ
  • 27. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ3 27Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ 各データを最も近くにある中心点のクラスタに割り当てる k-means法でクラスタリングを行う手続きのイメージ
  • 28. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ4 28Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ クラスタ内のデータの平均値を新たなクラスタの中心点にする ✓ ✓ k-means法でクラスタリングを行う手続きのイメージ
  • 29. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ5 29Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ 各データを最も近くにある中心点のクラスタに割り当てる ✓ ✓ k-means法でクラスタリングを行う手続きのイメージ
  • 30. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ6 30Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ クラスタ内のデータの平均値を新たなクラスタの中心点にする ✓ ✓ ✓ ✓ k-means法でクラスタリングを行う手続きのイメージ
  • 31. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ7 31Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ 各データを最も近くにある中心点のクラスタに割り当てる ✓ ✓ ✓ ✓ k-means法でクラスタリングを行う手続きのイメージ
  • 32. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ8 32Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム ✓ ✓ クラスタ内のデータの平均値を新たなクラスタの中心点にする ✓ ✓ ✓ ✓ ✓ ✓ k-means法でクラスタリングを行う手続きのイメージ
  • 33. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ9 33Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム 各データを最も近くにある中心点のクラスタに割り当てる k-means法でクラスタリングを行う手続きのイメージ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 34. takemikami’s note – http://takemikami.com/ k-means法の手続き 〜探索のイメージ10 34Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法のアルゴリズム クラスタ内のデータの平均値を新たなクラスタの中心点にする →クラスタの中心点が変化しなくなった ⇒ 終了 k-means法でクラスタリングを行う手続きのイメージ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  • 35. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜データの特徴 35Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 例で用いるデータの特徴を示します R > ( x <- read.csv(“都道府県人口面積.csv", header=T, row.names="都道府県") ) R > head(x) 推計人口 面積 北海道 5400025 78421.17 青森県 1321863 9645.40 岩手県 1284384 15275.01 宮城県 2327993 7282.14 秋田県 1037060 11637.54 山形県 1130659 9323.15 R > summary(x) 推計人口 面積 Min. : 574022 Min. : 1877 1st Qu.: 1122316 1st Qu.: 4167 Median : 1668273 Median : 6097 Mean : 2703885 Mean : 7936 3rd Qu.: 2723634 3rd Qu.: 8090 Max. :13378584 Max. :78421 都道府県の「推計人口」「面積」を 説明変数として、 クラスタリングを行う例を示します
  • 36. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜データの特徴 36Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 例で用いるデータの特徴を示します R > plot(x$推計人口,x$面積) R > text(x$推計人口,x$面積,labels=rownames(x)) ←x$推計人口
  • 37. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜階層的手法で 37Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 ウォード法(階層的手法)でクラスタリングを行った結果をデンドログラムで示す R > y <- scale(x)[,] R > plot(hclust(dist(y), method="ward.D")) dist(y) hclust(*,”ward.D”)
  • 38. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜k-means法で 38Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 k-means法でクラスタリングを行った結果をプロット図で示す R > y_cluster = kmeans(y, 3) R > plot(x=y, col=y_cluster$cluster, pch=y_cluster$cluster) 推計人口
  • 39. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜k-means法で 39Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 R > text(y[,"推計人口"],y[,"面積"],labels=rownames(y)) k-means法でクラスタリングを行った結果をプロット図で示す 推計人口
  • 40. takemikami’s note – http://takemikami.com/ ユークリッド距離 コサイン距離 式 式 (2変数 の時) 説明 データ間の直線距離 データをベクトルで表現した時の 角度の近さ ※一部の変数の大きさの偏りに影響を受けない 実際に計算してみる 〜距離について 40Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 k-means法の計算で利用する距離について説明します。 d(Xa − Xb ) = (xaj − xbj )2 j=1 ρ ∑ s(Xa − Xb ) = xaj xbj j=1 ρ ∑ xaj 2 j=1 ρ ∑ xbj 2 j=1 ρ ∑ d(Xa − Xb ) = xa1 − xb1( ) 2 +(xa2 − xb2 )2 s(Xa − Xb ) = xa1xb1 + xa2 xb2 xa1 2 + xa2 2 xb1 2 + xb2 2 三平方の定理
  • 41. takemikami’s note – http://takemikami.com/ 実際に計算してみる 〜距離について • 東京都-大阪府の距離 • 東京都-鳥取県の距離 • 大阪府-鳥取県の距離 41Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 ユークリッド距離を計算してみます。 都道府県 推計人口 面積 東京都 13,378,584 2190.9 大阪府 8,850,607 1904.99 鳥取県 574,022 3507.05 d = 13,378,584−8,850,607( ) 2 +(2190.9 −1904.99)2 = 4,527,977 d = 13,378,584 − 574,022( ) 2 +(2190.9 −3507.05)2 =12,804,562 d = 8,850,607− 574,022( ) 2 +(1904.99 −3507.05)2 = 8,276,585 近い 遠い
  • 42. takemikami’s note – http://takemikami.com/ 実際に計算してみる 〜クラスターの中心を計算 42Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 クラスターの中心(重心)の計算方法について説明します。 • 式:重心を とすると、 • 具体的に、計算してみると、 v = (v1,v2,…,vρ ) vj = 1 n xij i=1 n ∑ (Nはクラスタ内のデータ数) 都道府県 推計人口 面積 東京都 13,378,584 2190.9 大阪府 8,850,607 1904.99 神奈川県 9,098,984 2415.81 v = ( 13,378,584+8,850,607+9,098,984 3 2190.9+1904.99+2415.81 3 ) = ( 10,442,725 2,170.56 ) 東京・大阪・神奈川 の重心
  • 43. takemikami’s note – http://takemikami.com/ • 東京都-(東京・大阪・神奈川の重心)の距離 • 大阪府-(東京・大阪・神奈川の重心)の距離 • 鳥取県-(東京・大阪・神奈川の重心)の距離 実際に計算してみる 〜クラスターの中心を計算 43Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 クラスターの中心からのユークリッド距離を計算してみます。 ( 10,442,725 2,170.56 ) 東京・大阪・神奈川 の重心 都道府県 推計人口 面積 東京都 13,378,584 2190.9 大阪府 8,850,607 1904.99 鳥取県 574,022 3507.05 d = 13,378,584−10,442,725( ) 2 +(2190.9 − 2170.56.99)2 = 2,935,859 d = 8,850,607−10,442,725( ) 2 +(1904.99 − 2170.56)2 =1,592,118 d = 574,022 −10,442,725( ) 2 +(3507.05− 2170.56)2 = 9,868,703 遠い
  • 44. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜考察(ウォード法) 44Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 ウォード法(階層的手法)のデンドログラムから考察してみます とても広 い? 人口が多い?人口多め?人口少なめ? 階層的手法では、 デンドログラムを見ながら、 目的にあったクラスタ数・クラスタの分け方を検討できる
  • 45. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜考察(ウォード法) 45Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 ウォード法(階層的手法)のデンドログラムから考察してみます しかし、 データ数が多く・複雑になると、 デンドログラムから考察することは難しい 数百件、数百万件のデータだと デンドログラムを見て考察できない たくさんの会員がいるサービスの 個人名などが並んでいると 前スライドのように 対象をイメージして考察できない
  • 46. takemikami’s note – http://takemikami.com/ 階層的手法と非階層的手法の長所と短所 46Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 階層的手法 非階層的手法 イメージ 長所 系統図を見ながら考察し、後からクラスター数 を決定できる データが多い場合でも比較的速く処理できる 短所 データ数が多いと扱いが難しい 最初にクラスター数を決定する必要がある(クラス ター数を決める基準が必要) クラスタリング手法、非階層的手法と階層的手法の長所と短所を示します。 最適分割を探索 →次のスライドで、非階層的手法の短所を補うような形で考察してみます。
  • 47. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜考察(k-means法) 47Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 > kmeans(y, 2)$centers 推計人口 面積 1 -0.4262136 -0.09819234 2 1.7995686 0.41458989 > kmeans(y, 3)$centers 推計人口 面積 1 1.9001979 -0.33487358 2 0.9945343 6.41029762 3 -0.4262136 -0.09819234 > kmeans(y, 4)$centers 推計人口 面積 1 0.9945343 6.4102976 2 -0.5929847 -0.2971737 3 -0.2409124 0.1228981 4 1.9001979 -0.3348736 k-means法の結果(クラスタの中心)から考察してみます 2クラスタに分割 1. 人口少ない、広さ平均的 2. 人口多い、広い 3クラスタに分割 1. 人口多い、狭い 2. 人口多い、かなり広い 3. 人口少ない、広さ平均的 4クラスタに分割 1. 人口多い、かなり広い 2. 人口少ない、狭い 3. 人口少ない、広い 4. 人口多い、狭い k-meansでは、各クラスタの中心点から クラスタの特徴を考察するアプローチをとることができる
  • 48. takemikami’s note – http://takemikami.com/ 推計人口/面積で都道府県をクラスタリング 〜考察(k-means法) 48Copyright (C) 2015 Takeshi Mikami. All rights reserved. k-means法によるクラスタリングの例 > kmeans(y, 2)$centers 新商品購買率 ネット通販利用率 1 -0.4262136 -0.09819234 2 1.7995686 0.41458989 > kmeans(y, 3)$centers 新商品購買率 ネット通販利用率 1 1.9001979 -0.33487358 2 0.9945343 6.41029762 3 -0.4262136 -0.09819234 > kmeans(y, 4)$centers 新商品購買率 ネット通販利用率 1 0.9945343 6.4102976 2 -0.5929847 -0.2971737 3 -0.2409124 0.1228981 4 1.9001979 -0.3348736 k-means法の結果から考察してみます 2クラスタに分割 1. 新商品の購買率低 2. 新商品の購買率高、ネット通販利用率高 3クラスタに分割 1. 新商品の購買率高、ネット通販利用率低 2. 新商品の購買率高、ネット通販利用率極めて高 3. 新商品の購買率低 4クラスタに分割 1. 新商品の購買率高、ネット通販利用率極めて高 2. 新商品の購買率低、ネット通販利用率低 3. 新商品の購買率低、ネット通販利用率高 4. 新商品の購買率高、ネット通販利用率低 例えば、次(データ数が多そうな例)のように読み替えたとして、 都道府県→顧客、推計人口→新商品購買率、面積→ネット通販利用率 以下のようにクラスタ数を変化させながら考察することもできる
  • 49. takemikami’s note – http://takemikami.com/ 参考文献でのクラスタリングの応用例の紹介 • 画像ファイルの減色処理(代表色の抽出) – 画像ファイルに含まれる色をRGBの3値で表す – 各色をデータとしてクラスタリング – 各クラスタに属する色を、各クラスタの中心点の色に置き換える ※中井悦司「ITエンジニアのための機械学習理論入門」の応用例 • Web広告のクリック数によるクラスタリング – Web広告のクリック数によってユーザをクラスタリング – 各クラスタのユーザが反応したキャンペーンの違いを比較分析 ※比戸将平・馬場雪乃・里洋平・戸嶋龍哉・得居誠也・福島真太朗・加藤公 一・関喜史・阿部厳・熊崎宏樹「データサイエンティスト養成読本 機械学習入 門編」の応用例 49Copyright (C) 2015 Takeshi Mikami. All rights reserved. クラスタリングの活用シーン 参考文献に掲載されていたクラスタリングの応用例を紹介します
  • 50. takemikami’s note – http://takemikami.com/ まとめ • クラスタリングとは、 「与えられたデータ複数のグループに分ける」 ための機械学習の手法 • k-means法とは、 「決められたクラスタ数でデータを分割し、 最適分割となる分割方法を探索する手法」 • クラスタの中心点から、 分割されたクラスタの特徴を考察できる。 50Copyright (C) 2015 Takeshi Mikami. All rights reserved. 本セッションのまとめを示します。
  • 51. takemikami’s note – http://takemikami.com/ 参考文献リスト • 機械学習 – 中井悦司 「ITエンジニアのための機械学習理論入門」 技術評論社 2015 – 比戸将平・馬場雪乃・里洋平・戸嶋龍哉・得居誠也・福島真太朗・加藤公一・関喜史・阿部厳・ 熊崎宏樹 「データサイエンティスト養成読本 機械学習入門編」 技術評論社 2015 – 脇森浩志・杉山雅和・羽生貴史 「クラウドではじめる機械学習 〜Azure MLでらくらく体験」 リックテレコム 2015 • 多変量解析 – 兼子毅 「Rで学ぶ多変量解析」 日科技連出版社 2011 – 宮本定明 「クラスター分析入門 -ファジィクラスタリングの理論と応用」 森北出版 2010 – 朝野煕彦 「入門 多変量解析の実際」 講談社 1996 51Copyright (C) 2015 Takeshi Mikami. All rights reserved. 付録 本資料作成にあたって参考にした文献リストです。