クラスターアルゴリズム(一):k-平均値(k-means)アルゴリズム
1789 ワード
まず、手書きコードを使う前に、クラスター分析とは何かを知っていることを確認します.
k−均匀アルゴリズム――形心地技術に基づくクラスターアルゴリズム.K-平均アルゴリズムの英語名はk-meansですが、このアルゴリズムはどうやって働きますか?
k−平均アルゴリズムはクラスタの外形をクラスタ内点の平均として定義した.その処理の流れは以下の通りです.1.データポイントセットDにおいてランダムにk個のオブジェクトを選択します.(このkはデータセットをいくつかのクラスタに分けます.)各オブジェクトは一つのクラスタの初期平均または中心を表します.2.残りの各オブジェクトに対して、兄クラスタ中心の欧氏との距離に応じて、最も似たようなクラスタに割り当てます.3.k−均匀アルゴリズムの反復による内変差の改善.各クラスタについては,前回の反復を用いてクラスタに割り当てられたオブジェクトを用いて,新しい平均を計算した. 4.新しいクラスタ中心として更新された平均値を使用します.すべてのオブジェクトを再割り当てします. 5.振り分けが安定するまで反復し続け、本船ストロークのクラスタの中心点座標は前ラウンドストロークのクラスタと同じである.
アルゴリズム:k-平均値
入力:k:クラスタの数
D:n個のオブジェクトを含むデータセット
出力:kクラスタの集合
方法:
1.Dから任意のk個のオブジェクトを初期クラスタ中心として選択します.
2.repeat
3.クラスタ内のオブジェクトの平均値に基づいて、各オブジェクトを最も似たようなクラスタに割り当てる.
4. クラスタの平均値を更新する、すなわち各クラスタ内のオブジェクトの平均値を再計算する.
5.untilはもう変化しません.
ソースコード(Python)
k−均匀アルゴリズム――形心地技術に基づくクラスターアルゴリズム.K-平均アルゴリズムの英語名はk-meansですが、このアルゴリズムはどうやって働きますか?
k−平均アルゴリズムはクラスタの外形をクラスタ内点の平均として定義した.その処理の流れは以下の通りです.1.データポイントセットDにおいてランダムにk個のオブジェクトを選択します.(このkはデータセットをいくつかのクラスタに分けます.)各オブジェクトは一つのクラスタの初期平均または中心を表します.2.残りの各オブジェクトに対して、兄クラスタ中心の欧氏との距離に応じて、最も似たようなクラスタに割り当てます.3.k−均匀アルゴリズムの反復による内変差の改善.各クラスタについては,前回の反復を用いてクラスタに割り当てられたオブジェクトを用いて,新しい平均を計算した. 4.新しいクラスタ中心として更新された平均値を使用します.すべてのオブジェクトを再割り当てします. 5.振り分けが安定するまで反復し続け、本船ストロークのクラスタの中心点座標は前ラウンドストロークのクラスタと同じである.
アルゴリズム:k-平均値
入力:k:クラスタの数
D:n個のオブジェクトを含むデータセット
出力:kクラスタの集合
方法:
1.Dから任意のk個のオブジェクトを初期クラスタ中心として選択します.
2.repeat
3.クラスタ内のオブジェクトの平均値に基づいて、各オブジェクトを最も似たようなクラスタに割り当てる.
4. クラスタの平均値を更新する、すなわち各クラスタ内のオブジェクトの平均値を再計算する.
5.untilはもう変化しません.
ソースコード(Python)
__author__ = 'ChiXu_15s103144_HIT'
import random
import math
def K_means(data, k):
center = []
cluster = []
dis = []
demo_cluster = []
flag = 0
i = 0
len_data = len(data)
while i