1. 程式人生 > >k-means演算法實際應用的一個例子

k-means演算法實際應用的一個例子

下面引用

原創地址:

1、從D中隨機取k個元素,作為k個簇的各自的中心。

      2、分別計算剩下的元素到k個簇中心的相異度,將這些元素分別劃歸到相異度最低的簇。

      3、根據聚類結果,重新計算k個簇各自的中心,計算方法是取簇中所有元素各自維度的算術平均數。

      4、將D中全部元素按照新的中心重新聚類。

      5、重複第4步,直到聚類結果不再變化。

      6、將結果輸出。

      由於演算法比較直觀,沒有什麼可以過多講解的。下面,我們來看看k-means演算法一個有趣的應用示例:中國男足近幾年到底在亞洲處於幾流水平?

      今年中國男足可算是杯具到家了,幾乎到了過街老鼠人人喊打的地步。對於目前中國男足在亞洲的地位,各方也是各執一詞,有人說中國男足亞洲二流,有人說三流,還有人說根本不入流,更有人說其實不比日韓差多少,是亞洲一流。既然爭論不能解決問題,我們就讓資料告訴我們結果吧。

      下圖是我採集的亞洲15只球隊在2005年-2010年間大型盃賽的戰績(由於澳大利亞是後來加入亞足聯的,所以這裡沒有收錄)。

 

      其中包括兩次世界盃和一次亞洲盃。我提前對資料做了如下預處理:對於世界盃,進入決賽圈則取其最終排名,沒有進入決賽圈的,打入預選賽十強賽賦予40,預選賽小組未出線的賦予50。對於亞洲盃,前四名取其排名,八強賦予5,十六強賦予9,預選賽沒出現的賦予17。這樣做是為了使得所有資料變為標量,便於後續聚類。

      下面先對資料進行[0,1]規格化,下面是規格化後的資料:

      接著用k-means演算法進行聚類。設k=3,即將這15支球隊分成三個集團。

      現抽取日本、巴林和泰國的值作為三個簇的種子,即初始化三個簇的中心為A:{0.3, 0, 0.19},B:{0.7, 0.76, 0.5}和C:{1, 1, 0.5}。下面,計算所有球隊分別對三個中心點的相異度,這裡以歐氏距離度量。下面是我用程式求取的結果:

 

      從做到右依次表示各支球隊到當前中心點的歐氏距離,將每支球隊分到最近的簇,可對各支球隊做如下聚類:

      中國C,日本A,韓國A,伊朗A,沙特A,伊拉克C,卡達C,阿聯酋C,烏茲別克B,泰國C,越南C,阿曼C,巴林B,朝鮮B,印尼C。

      第一次聚類結果:

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

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

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

      下面根據第一次聚類結果,調整各個簇的中心點。

      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.1575} = {0.21, 0.4175, 0.1575}

      用同樣的方法計算得到B和C簇的新中心點分別為{0.7, 0.7333, 0.4167},{1, 0.94, 0.40625}。

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

 

      第二次迭代後的結果為:

      中國C,日本A,韓國A,伊朗A,沙特A,伊拉克C,卡達C,阿聯酋C,烏茲別克B,泰國C,越南C,阿曼C,巴林B,朝鮮B,印尼C。

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

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

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

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

===================================================================完

相關推薦

k-means演算法實際應用一個例子

下面引用原創地址:1、從D中隨機取k個元素,作為k個簇的各自的中心。      2、分別計算剩下的元素到k個簇中心的相異度,將這些元素分別劃歸到相異度最低的簇。      3、根據聚類結果,重新計算k個簇各自的中心,計算方法是取簇中所有元素各自維度的算術平均數。      4

k-means演算法實際應用

4.1、摘要      在前面的文章中,介紹了三種常見的分類演算法。分類作為一種監督學習方法,要求必須事先明確知道各個類別的資訊,並且斷言所有待分類項都有一個類別與之對應。但是很多時候上述條件得不到滿足,尤其是在處理海量資料的時候,如果通過預處理使得資料滿足分類演算法的要求,

K-Means++演算法應用

k-means演算法是一種基本的聚類演算法,這個演算法的先決條件是   1)必須選擇最終結果需要聚為幾類,就是k的大小。   2)初始化聚類中心點,也就是seeds。   當然,我們可以在輸入的資料集中隨機的選擇k個點作為seeds,但是隨機選擇初始seeds可能會

第九次作業---K-means演算法應用:圖片壓縮

讀取一張示例圖片或自己準備的圖片,觀察圖片存放資料特點。 from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt import

K-means演算法應用:圖片壓縮

from sklearn.datasets import load_sample_image from matplotlib import pyplot as plt from sklearn.cluster import KMeans import numpy as np #讀取一張示例圖片或自己準

第九次作業——K-means演算法應用:圖片壓縮

一.讀取一張示例圖片或自己準備的圖片,觀察圖片存放資料特點。 根據圖片的解析度,可適當降低解析度。 再用k均值聚類演算法,將圖片中所有的顏色值做聚類。 然後用聚類中心的顏色代替原來的顏色值。 形成新的圖片。 觀察原始圖片與新圖片所佔用記憶體的大小。 將原始圖片與新圖片儲存成檔案,觀察檔案的大小。

作業:K-means演算法應用:圖片壓縮

from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt #讀取一張示例圖片或自己準備的圖片,觀察圖片存放資料特點 china =

【原創】資料探勘案例——ReliefF和K-means演算法的醫學應用

  資料探勘方法的提出,讓人們有能力最終認識資料的真正價值,即蘊藏在資料中的資訊和知識。資料探勘 (DataMiriing),指的是從大型資料庫或資料倉庫中提取人們感興趣的知識,這些知識是隱含的、事先未知的潛在有用資訊,資料探勘是目前國際上,資料庫和資訊決策領域的最前沿研究方向之一。因此分享一下很久以前做的一

K-means演算法原理以及應用(R)

K-means是一種無監督學習演算法,是聚類演算法中最簡單的一種了。不同與一些分類的監督學習演算法,比如邏輯迴歸、SVM、隨機森林等,k-means聚類無需給定Y變數,只有特徵X。下面是k-means演算法原理及思想。  在聚類問題中,給我們的訓練樣本是,每個,沒有了y

聚類演算法K-Means原理與應用

聚類演算法是一類非監督學習的演算法,在給定的一個數據集中,給了N個樣本,沒有給出樣本對應的標籤類別資料y,可以利用聚類演算法,進行標籤的分類。 K-Means演算法的原理與步驟: 1>   在N個樣本總體中,隨機抽出k個初始資料的質心,接著把資料集中的樣本取出,計算

8.2 聚類(Clustering) K-means演算法應用

1.python實現kmean 演算法 import numpy as np def kmeans(X,k,maxIt): numPoints,numDim=X.shape dataSet=np.zeros((numPoints,num

分組聚集的K-means演算法應用例項

概述 在許多實際應用中,需要對許多資料點進行分組,劃分成一個個簇(cluster),並計算出每一個簇的中心。這就是著名的k-means演算法。 k-means演算法的輸入是N個d維資料點:x_1, …, x_N,以及需要劃分的簇的數目k。演算法執行的結果是每個簇的中心

Spark K-Means 演算法例子

k-means演算法是以空間的點距離為基準,隨機或者按照一定規則選擇幾個中心點資料,計算每個點到該幾個中心點的距離,按照距離值最近歸為一類的原則,把空間所有的點歸為初始化的幾個中心,稱之為中心簇。 然後,找到每個中心簇的中心,再次計算空間所有的點到新的中心點的

基於改進的K-means演算法在共享交通行業客戶細分中的應用

對應實現程式碼:傳送門(實現程式碼專注於方案的實現,k-means演算法的改進並沒有在程式碼雲中體現,為方便實現直接採用sklearn標準庫演算法)摘要:資訊時代的來臨使得企業營銷焦點從產品中心轉變為客戶中心,客戶關係管理成為企業的核心問題。準確的客戶分類結果是企業優化營銷資

機器學習——K-means演算法(聚類演算法

聚類 在說K-means聚類演算法之前必須要先理解聚類和分類的區別。 分類其實是從特定的資料中挖掘模式,作出判斷的過程。比如Gmail郵箱裡有垃圾郵件分類器,一開始的時候可能什麼都不過濾,在日常使用過程中,我人工對於每一封郵件點選“垃圾”或“不是垃圾”,過一段時間,Gmail就體現出

K-means算法應用:圖片壓縮

特點 num () otl user col mea load read from sklearn.datasets import load_sample_image from matplotlib import pyplot as plt from sklearn.cl

吳恩達機器學習 - 無監督學習——K-means演算法 吳恩達機器學習 - 無監督學習——K-means演算法

原 吳恩達機器學習 - 無監督學習——K-means演算法 2018年06月25日 12:02:37 離殤灬孤狼 閱讀數:181

機器學習--K-means演算法

概述 聚類(K-mean)是一種典型的無監督學習。 採用距離作為相似性的評價指標,即認為兩個物件的距離越近,其相似度就越大。 該演算法認為類簇是由距離靠近的物件組成的,因此把得到緊湊且獨立的簇作為最終目標。 核心思想 通過迭代尋找k個類簇的一種劃分方案,使得用這k個類簇的均值來代

K-means演算法的matlab程式 K-means演算法的matlab程式(初步)

K-means演算法的matlab程式 在“K-means演算法的matlab程式(初步)”這篇文章中已經用matlab程式對iris資料庫進行簡單的實現,下面的程式最終的目的是求準確度。 作者:凱魯嘎吉 - 部落格園 http://www.cnblogs.com/kailugaji/ 1.採

學習筆記(十一):使用K-Means演算法檢測DGA域名

1.資料收集與清洗:同(十) 2.特徵化:同(十) 3.訓練樣本 model = KMeans(n_clusters = 2, random_state=random_state) y_pred = model.fit_predict(x)  4.效果驗證:使用TSNE將