1. 程式人生 > >聚類分析-實現亞洲足球聚類

聚類分析-實現亞洲足球聚類

Description:利用K-Means演算法實現亞洲足球的聚類;

下圖是亞洲15只球隊在2005年-2010年間大型盃賽的戰績:

下圖是0-1規格化後的資料:


Analysis:

1.確定K值及K個初始類簇中心點的選取(詳見Blog底部連結)

設 K = 3,即將這15支球隊分成3個集團;

現抽取日本、巴林、泰國的值作為3個簇的種子,即初始化3個簇的中心為A:{0.3, 0, 0.19}、B:{0.7, 0.76, 0.5}、C:{1, 1, 0.5};

2.從左到右依次表示各支球隊到當前中心點的歐氏距離,將每支球隊分到離自己最近的簇,以中國為例:

D(中國, A) = sqrt( pow( ( 1 - 0.3 ), 2 ), pow( ( 1 - 0 ), 2 ), pow( ( 1 - 0.19 ), 2 ) ) = 1.59 ;

D(中國, B) = 0.15 ;

D(中國, C) = 0 ;

3.根據歐式距離得第一次聚類結果:

A:日本,韓國,伊朗,沙特;

B:烏茲別克,巴林,朝鮮;

C:中國,伊拉克,卡達,阿聯酋,泰國,越南,阿曼,印尼;

4.根據第一次聚類結果,調整各個簇的中心點:

*A簇的新中心點為:

( 0.3 + 0 + 0.24 + 0.3 ) / 4 = 0.21,

 ( 0 + 0.15 + 0.76 + 0.76 ) / 4 = 0.4175,

 ( 0.19 + 0.13 + 0.25 + 0.06 ) / 4 = 0.157}

中心點(0.21, 0.4175, 0.1575);

*B簇的新中心點為{0.7, 0.7333, 0.4167};

*C簇的新中心點為{1, 0.94, 0.40625};

5.用調整後的中心點再次進行聚類,得到:

第二次迭代後的結果為:中國C,日本A,韓國A,伊朗A,沙特A,伊拉克C,卡達C,阿聯酋C,烏茲別克B,泰國C,越南C,阿曼C,巴林B,朝鮮B,印尼C;

結果無變化,說明結果已收斂,於是給出最終聚類結果:

亞洲一流:日本,韓國,伊朗,沙特;

亞洲二流:烏茲別克,巴林,朝鮮;

亞洲三流:中國,伊拉克,卡達,阿聯酋,泰國,越南,阿曼,印尼

K值及K個初始類簇中心點的選取:

<a href='http://www.cnblogs.com/kemaswill/archive/2013/01/26/2877434.html'>http://www.cnblogs.com/kemaswill/archive/2013/01/26/2877434.html</a>