HyperLogLogを用いた、異なり数に基づく

省リソースなk-meansの

k決定アルゴリズムの提案
佐々木 海、鈴木 周一、山田 寛
HackID 56: のびのびのびた
背景と目的
• 近年、使いやすい教師なしクラスタリング手法で

あるk-meansのビジネス活用が盛んである
• しかしながらk-meansにおけるkの決定問題は

実用上大きな課題を抱えている
• k推定のための計算リソースの消費
• kの評価をk-means自体で行ってしまう
先行研究
• x-means
• kの推定とk-meansによる評価を繰り返す
• 計算リソースや計算時間に課題が残る
• DPM
• パラメタの調整が難しい
• 学習精度がデータ量に大きく依存
x-means 提案手法
kの推定
k-means
kの推定
kの評価、決定
k-means
kの評価
kの評価を行うために高負荷なk-means繰り返す必要があった
x-means 提案手法
kの推定
k-means
kの評価
HLL
Gaussian weight
k-means
HLL HLL
kの推定値を評価・決定した後、一度だけk-meansを行う
kの推定
• クラスタ数はデータ中の

カテゴリの数である
→ カテゴリ数とデータの異なり
数の関連性をkの推定に応用する
省リソースな異なり数推定手法
であるHyperLogLogでkの候補
を算出
HLL
Gaussian weight
k-means
HLL HLL
kの評価、決定
• ビジネス施策として利用できる
カテゴリ数は一定の範囲に収ま
り、それは事前に想定される
→ kそのものではなく、kの範囲
をクラスタリングの事前に与え
られるパラメタとする
この範囲に収まるように
Gaussianで重み付け
HLL
Gaussian weight
k-means
HLL HLL
IRISデータセットによる検証
k固定によるIRIS推定 kHLLによるk決定後のIRIS推定
データからk=3と推定し正しく分類できた
まとめと今後の課題
• 分散・並行処理が可能な手法のため

より一層の高速化が図れる
• pipパッケージとして利用可能
$ pip install kHLL
• HyperLogLogのBucket数と異なり数の

関連性を利用したアルゴリズムの改良
参考文献一覧
• “HyperLogLog in Practice: Algorithmic Engineering of a State of The Art Cardinality Estimation Algorithm”, S.
Heule, M. Nunkesser, A. Hall
• Sketch of the Day: HyperLogLog — Cornerstone of a Big Data Infrastructure 

http://research.neustar.biz/2012/10/25/sketch-of-the-day-hyperloglog-cornerstone-of-a-big-data-infrastructure/
• HyperLogLogを使ったクラスタリングのための効率的なk推定手法の提案

http://nbviewer.ipython.org/github/PhysicsEngine/kHLL/blob/master/notebooks/hyperkestimator_performance.ipynb
• ”All-Distances Sketches, Revisited: HIP Estimators for Massive Graphs Analysis”, E. Cohen
• “Some Methods for classification and Analysis of Multivariate Observations”, MacQueen, J. B.
• IPython Notebook 

http://ipython.org/notebook.html
• “X-means: Extending K-means with Efficient Estimation of the Number of Clusters”, D. Pelleg
• “The Infinite Gaussian Mixture Model”, C. E. Rasmusse
• PhysicsEngine/kHLL 

https://github.com/PhysicsEngine/kHLL

HyperLogLogを用いた、異なり数に基づく
 省リソースなk-meansの
k決定アルゴリズムの提案