機械学習:【学習ノート】K-Meansアルゴリズム

6664 ワード

インプリメンテーションプロセス


1プロジェクトの構築、sklearn関連パッケージのインポート

import numpy as np
from sklearn.cluster import KMeans

2データのロード、アルゴリズムインスタンスの作成

def loadData(filePath):
    fr = open(filePath, 'r+')
    lines = fr.readlines()
    retData = []
    retCityName = []
    for line in lines:
        items = line.strip().split(',')
        retCityName.append(items[0])
        retData.append([float(items[i]) for i in range(1, len(items))])
        return retData, retCityName

if __name__ == '__main__':
    data, cityName = loadData('city.txt')
    km = KMeans(n_clusters=3)
    label = km.fit_predict(data)
    expenses = np.sum(km.cluster_centers_, axis=1)
    # print(expenses)
    CityCluster = [[], [], []]
    for i in range(len(cityName)):
        CityCluster[label[i]].append(cityName[i])
    for i in range(len(CityCluster)):
        print("Expenses:%.2f" % expenses[i])
        print(CityCluster[i])

K-Meansメソッドを呼び出すために必要なパラメータ:
  • n_clusters:クラスタの中心を指定する個数
  • init:初期クラスタリング中心の初期化方法
  • max_iter:最大反復数
  • data:ロードされたデータ
  • label:クラスタリング後の各データが属するタグ
  • fit_predic():クラスタの中心を計算し、クラスタに番号
  • を割り当てる
    【注意】:デフォルトではヨーロッパ式の距離が使用されます