トップページ -> 授業資料 -> Python によるデータ解析 -> kMeans,Mean Shift クラスタリング(Python, Google Colab を使用)
[サイトマップへ], [サイト内検索へ]

kMeans,Mean Shift クラスタリング(Python, Google Colab を使用)


Google Colab でノートブックを開く

Google Colab はオンラインの Python 開発環境. 使用するには Google アカウントが必要

  1. Google Colab のWebページを開く

    https://colab.research.google.com

    [image]
  2. ファイル」で、「PYTHON 3 の新しいノートブックの新規作成」を選ぶ

    [image]
  3. Google アカウントでのログインが求められたときはログインする

    [image]
  4. コードセルの中に Python プログラムを書き、「再生ボタン」をクリック

    [image]
  5. コードセルを追加したいときは、「挿入」で、「コードセル」をクリック

    [image]

kMeans, MeanShift クラスタリングの例

架空データ

  1. 架空のデータの合成

    N1, N2 はデータの個数.c1, c2 は平均.sd1, sd2 は標準偏差.

    import numpy as np
    N1 = 10
    N2 = 10
    c1 = (0, 0)
    c2 = (3, 5)
    sd1 = 1
    sd2 = 1
    a1 = np.zeros((N1, 2))
    a1[:,0] = np.random.normal(c1[0], sd1, N1)
    a1[:,1] = np.random.normal(c1[1], sd1, N1)
    a2 = np.zeros((N2, 2))
    a2[:,0] = np.random.normal(c2[0], sd2, N2)
    a2[:,1] = np.random.normal(c2[1], sd2, N2)
    a = np.concatenate([a1, a2])
    print(a)
    

    [image]
  2. プロットして確認

    20 個のデータがプロットされている

    import matplotlib.pyplot as plt
    plt.style.use('ggplot')
    plt.plot(a[:,0], a[:,1],  'ro')
    plt.show()
    

    [image]
  3. kMeans クラスタリング

    このデータを使い,クラスタリングを行う. クラスタ数は 3 に設定.

    from sklearn.cluster import KMeans
    c = KMeans(n_clusters = 2).fit_predict(a)
    print(c)
    

    [image]
  4. MeanShift クラスタリング

    このデータを使い,クラスタリングを行う.

    from sklearn.cluster import MeanShift
    c = MeanShift().fit_predict(a)
    print(c)
    

    [image]

iris データセット

ここでは,iris をクラスタリングする.

  1. iris データセットの読み込み
    import pandas as pd
    import seaborn as sns
    
    iris = sns.load_dataset('iris')
    
    

    [image]
  2. iris データセットの表示
    print(iris) 
    

    [image]
  3. iris データセットを,数値の行列に変換

    文字列 'setosa','versicolor','virginica' は,1, 2, 3 に置き換え.

    a = iris.values
    a[:,4] = iris['species'].map({'setosa':1, 'versicolor':2, 'virginica': 3}).values
    print(a)
    

    [image]
    (以下省略)
  4. kMeans クラスタリング

    このデータの 0, 1, 2, 3 行目を使い,クラスタリングを行う. クラスタ数は 3 に設定.

    x = a[:,(0, 1, 2, 3)]
    from sklearn.cluster import KMeans
    c = KMeans(n_clusters = 3).fit_predict(x)
    print(c)
    

    [image]
  5. MeanShift クラスタリング

    このデータの 0, 1, 2, 3 行目を使い,クラスタリングを行う.

    x = a[:,(0, 1, 2, 3)]
    from sklearn.cluster import MeanShift
    c = MeanShift().fit_predict(x)
    print(c)
    

    [image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]