SlideShare a Scribd company logo
Rで学ぶデータサイエンス
   5パターン認識
  第2章 K-平均法
      2011/05/28
  TwitterID:sleipnir002
前回までのあらすじ
• 前回は第1回として判別器の性能を評価する方法を学
  んだよ。
• 訓練誤差から予測誤差を推定するためにK交差検証
  法という方法が使えるよ!
• 偽陽性率を抑えながら陽性率を上げるために、ROC曲
  線が使えるよ!
   データセット
            学習用

            F1 ( x)

            推定用       TPR

                            FPR
第2章の目的
          K-平均法のアルゴリズム
           Kの数を推定する方法

• キーワード
 – K-平均法
 – カーネル主成分分析
 – Gap統計量
K-平均法って?
クラスタリングのアルゴリズム
クラスタリングのアルゴリズム




@hamadakoichiさんの資料より
[データマイニング+WEB勉強会][R勉強会] R言語によるクラスター分析 - 活用編
http://www.slideshare.net/hamadakoichi/r-3754836
K-平均法:クラスタの数をKと指定して
     クラスタする方法。
K-平均法のアルゴリズム
入力値:データX={x1, x2, … , xn} クラスタ数k

1.初期化:データからランダムにK個選び、これをクラス
 タの重心とする。
2.クラスタの決定:あるデータに対し、クラスタの重心の
 中で最も近いクラスタがデータの属するクラスタとなる。
 これを全てのデータに対して計算する。
3.クラスタの中心の再計算:2で計算したクラスタ毎に
 重心を再度計算。以下、収束するまで2と3を繰り返
 す。

出力値:データごとのクラスタ C={1, k, 2, … , 2}、クラスタ中心
K-平均法のアルゴリズム
• 言葉で言ってもわかんないので、可視化した
  ものをみてみましょう。

   入力:                         アルゴリズム:                        出力:
多次元データX(nxp)                    *K平均法                     データの属するクラスタ


                                 評価関数、
                                  n
                             L   min || xi  cl ||
                                        l 1,, k
                                 i 1


                              を最小化している
   クラスタ数k                       のと同じ。                      クラスタ中心
    k=3                                                   C  {c1 ,ck }

*アルゴリズムの詳細は下記リンクをチェック!
http://d.hatena.ne.jp/nitoyon/20090409/kmeans_visualise
Kmeansの使い方
   kmeans(x, centers, iter.max = 10, nstart = 1, algorithm =
    c("Hartigan-Wong", "Lloyd", "Forgy", "MacQueen"))

引数                              戻り値(kmeansクラス)
X:データセット                        $cluster:各データが属するクラ
centers:                           スタのベクトル
    →スカラ値:クラスタ数k                $centers:クラスタの重心ベクト
    →初期化ベクトルの集合                    ルを含む行列
iter.max:計算回数上限                 $withinss:クラスタ内の平方距
                                   離
nstart:初期値の繰り返し
                                $size:各クラスタのサイズを含ん
algorithm:アルゴリズムの指                 だベクトル。
    定
ここで疑問
Kの数はどうやって選ぶの?
最大の問題点

 Kの数はどうやって選ぶの?




カーネル主成分分析   ギャップ統計量
最大の問題点

 Kの数はどうやって選ぶの?




カーネル主成分分析   ギャップ統計量
カーネル主成分分析
  (カーネル)主成分分析は次元削減のアルゴリズムです。

• 主成分:(カーネル)主成分分析の出力結果、元の変数の
  線形結合で表される新しい変数
• 主成分の上位だけで基のデータをよく説明できるはず!
                     この部分を直接プ
                     ロットすればいい?                バラツキをよく
                                              説明する順番
                                              に並んでいる。
       元のデータ                    主成分

        x1            y1  c11 x1    c1 p x p
                        
        x2            y2  c21 x1    c2 p x p
バラツキ                                                 バラツキ
            主成分分析   
        xp            y p  c p1 x1    c pp x p
Rでカーネル主成分分析を行う
>library(kernlab)               Package kernlab
>x<-as.matrix(iris[,1:4])       Irisデータ
>gamma<-median(dist(x))         150x4 ,3class
>sigma<-1/(2*gamma^2)           ガウスカーネルのパラ
>kp<-kpca(x, kernel=“rbfdot”,   メータσを作成
   kpar=list(sigma=sigma))      ガウスカーネルで
>plot(iris[, 1:4])              カーネル主成分分析
>plot(data.frame(pcv(kp))       元のデータで散布図
  [,1:4])
                                主成分で散布図
カーネル主成分分析の結果

元のデータ                                                主成分



                  クラスタ数
                  が3つである
                  ことが示唆
                   される。




        元のデータ                    主成分

         x1           y1  c11 x1    c1 p x p
                        
         x2           y2  c21 x1    c2 p x p
 バラツキ                                                バラツキ
             主成分分析   
         xp           y p  c p1 x1    c pp x p
最大の問題点

 Kの数はどうやって選ぶの?




カーネル主成分分析   ギャップ統計量
できれば機械的に見積もりたい
最適なクラスタ数を推定する
 統計量を導入しよう!
評価関数Lは?
     n
L   min || xi  cl ||
           l 1,, k
    i 1
4クラスタデータに対する各クラスタ数K毎の
    K-平均法後の評価関数の値




  評
  価
  関   評価関数Lは?
  数
  L




          クラスタ数K
クラスタ数K=データ数nの
時に評価関数は最小になる。
そこで、クラスタ数Kが増加しても
評価関数Lが下がらないようにしよう
ギャップ統計量
         L'k
Gk  log      log L'k  log Lk
         Lk
ギャップ統計量のアイデア①
   クラスタを正しく分割すると評価関数Lは大きく下がる。
  クラスタを分割しすぎても評価関数Lは大きく下がらない。

正しいクラスタ数K’ = 3の場合、




   K = 2 < 3 = k’    K = 3 = 3 = k’        K = 4 > 3 = k’
         本来異なるクラスタを同一のクラ              同一のクラスタのデータを
         スタから別のクラスタとして分け              さらに分割しても評価関数
         ると、評価関数は大きく下がる!              は大きく下がらない。
ギャップ統計量のアイデア②
クラスタ数が1、クラスタ構造を持たないデータの
評価関数Lの減尐と比較することで、正規化する。




                             比較




       元のデータ                      同一範囲内の一様乱数

        n                                n
  Lk   min || xi  cl ||        L'k   min || xi  cl ||
              l 1,, k                        l 1,, k
       i 1                             i 1
ギャップ統計量
                            ランダムなデータと比較した評価関数L

                                                               Gkが最大値になるK
                        ギャップ統計量Gk                              =データのクラスタ数


                         L'k
     Gk  log                 log L'k  log Lk            ギ
                         Lk                                ャ
                                                           ッ
                                                           プ
                                                           統
                                  同一範囲内の                   計
    元のデータ
                                   一様乱数                    量
      n                               n
Lk   min || xi  cl ||       L'k   min || xi  cl ||
            l 1,, k                       l 1,, k
     i 1                            i 1


                                                               クラスタ数K
Rでギャップ統計量を使ってデータの
     クラスタ数を推定する
> library(SLmisc)                  Package SLmisc
> x <- iris[,1:4]
> gap <- c()                       やっぱりIrisデータ
> for (i in 1:20){                 150x4 ,3class
+ kg <- kmeansGap(x)
                                   ギャップ統計
+ nc <- length(kg$cluster$size)    量を求める。           20回
+ gap <- c(gap,nc)
                                   推定されたク           くりか
+}
                                                    えし
> par(ps=16)                       ラスタ数を取
> plot(table(gap),xlab="k : num.   得する。
    of clusters",ylab="freq.")
                                   推定されたクラス
                                   タ数のヒストグラ
                                   ムを作成
Rでギャップ統計量を使って
 クラスタ数を求めた結果




 頻
 度




     ギャップ統計量によって求められたクラスタ数K
本日のまとめ
• K-平均法は、事前にクラスタ数を決めて分類
  するクラスタリングアルゴリズムである。
• K-平均法は、クラスタの数の決定に恣意性が
  あり、クラスタ数の決定が問題となる。
 クラスタ数の推定方法 カーネル主成分分析   ギャップ統計量


 方法の概要     次元削減して可視化    ギャップ統計量の最
           して、クラスタ数を見   大値をクラスタ数とす
           積もる。         る。

 特徴        属人的          機械的

More Related Content

PDF
機械学習と主成分分析
PDF
Newman アルゴリズムによるソーシャルグラフのクラスタリング
PDF
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
PDF
機械学習におけるオンライン確率的最適化の理論
PDF
Stanコードの書き方 中級編
PDF
線形代数の視覚的理解のためのノート
PDF
相関と因果について考える:統計的因果推論、その(不)可能性の中心
PDF
Active Learning 入門
機械学習と主成分分析
Newman アルゴリズムによるソーシャルグラフのクラスタリング
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
機械学習におけるオンライン確率的最適化の理論
Stanコードの書き方 中級編
線形代数の視覚的理解のためのノート
相関と因果について考える:統計的因果推論、その(不)可能性の中心
Active Learning 入門

What's hot (20)

PPTX
社会心理学者のための時系列分析入門_小森
PDF
Word2vecの理論背景
PDF
Stan超初心者入門
PDF
最小カットを使って「燃やす埋める問題」を解く
PDF
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
PDF
ベイズ最適化
PDF
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
PPTX
バンディット問題について
PPTX
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
PPTX
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
PDF
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
PPTX
[DL輪読会]Bayesian Uncertainty Estimation for Batch Normalized Deep Networks
PPTX
【論文紹介】How Powerful are Graph Neural Networks?
PDF
グラフニューラルネットワーク入門
PDF
よくわかるフリストンの自由エネルギー原理
PDF
因果探索: 基本から最近の発展までを概説
PDF
非ガウス性を利用した 因果構造探索
PDF
機械学習による統計的実験計画(ベイズ最適化を中心に)
PDF
機械学習のためのベイズ最適化入門
PDF
CV分野におけるサーベイ方法
社会心理学者のための時系列分析入門_小森
Word2vecの理論背景
Stan超初心者入門
最小カットを使って「燃やす埋める問題」を解く
多腕バンディット問題: 定式化と応用 (第13回ステアラボ人工知能セミナー)
ベイズ最適化
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
バンディット問題について
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
MCMCサンプルの使い方 ~見る・決める・探す・発生させる~
 
[DL輪読会]Bayesian Uncertainty Estimation for Batch Normalized Deep Networks
【論文紹介】How Powerful are Graph Neural Networks?
グラフニューラルネットワーク入門
よくわかるフリストンの自由エネルギー原理
因果探索: 基本から最近の発展までを概説
非ガウス性を利用した 因果構造探索
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習のためのベイズ最適化入門
CV分野におけるサーベイ方法
Ad

Similar to パターン認識02 k平均法ver2.0 (20)

PDF
パターン認識 04 混合正規分布
PDF
はじパタLT2
PDF
Oshasta em
PDF
Bishop prml 9.3_wk77_100408-1504
PPT
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
PDF
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
PPTX
Knn発表資料(R)
PDF
第3回集合知プログラミング勉強会 #TokyoCI グループを見つけ出す
PDF
東京都市大学 データ解析入門 8 クラスタリングと分類分析 1
PPT
K070k80 点推定 区間推定
PDF
PRML2.3.8~2.5 Slides in charge
PDF
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
PDF
PPT
K020 appstat201202
PDF
PDF
Cluster Analysis at REQUIRE 26, 2016/10/01
PDF
統計学における相関分析と仮説検定の基本的な考え方とその実践
PPTX
Prml 1.3~1.6 ver3
PDF
LET2015 National Conference Seminar
PDF
論文紹介&実験
パターン認識 04 混合正規分布
はじパタLT2
Oshasta em
Bishop prml 9.3_wk77_100408-1504
Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析
[Tokyor08] Rによるデータサイエンス 第2部 第3章 対応分析
Knn発表資料(R)
第3回集合知プログラミング勉強会 #TokyoCI グループを見つけ出す
東京都市大学 データ解析入門 8 クラスタリングと分類分析 1
K070k80 点推定 区間推定
PRML2.3.8~2.5 Slides in charge
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
K020 appstat201202
Cluster Analysis at REQUIRE 26, 2016/10/01
統計学における相関分析と仮説検定の基本的な考え方とその実践
Prml 1.3~1.6 ver3
LET2015 National Conference Seminar
論文紹介&実験
Ad

More from sleipnir002 (7)

PPTX
TSP and Geocoding on R
PDF
パターン認識 05 ロジスティック回帰
PDF
How to use animation packages in R(Japanese)
PDF
animation1.0
PDF
Japan.r 2データベース
PDF
パターン認識 08 09 k-近傍法 lvq
PDF
パターン認識 第01章-判別能力の評価
TSP and Geocoding on R
パターン認識 05 ロジスティック回帰
How to use animation packages in R(Japanese)
animation1.0
Japan.r 2データベース
パターン認識 08 09 k-近傍法 lvq
パターン認識 第01章-判別能力の評価

パターン認識02 k平均法ver2.0