實驗七、數據挖掘之K-means聚類算法
一、實驗目的
1. 理解K-means聚類算法的基本原理
2. 學會用python實現K-means算法
二、實驗工具
1. Anaconda
2. sklearn
3. matplotlib
三、實驗簡介
1 K-means算法簡介
k-means算法是一種聚類算法,所謂聚類,即根據相似性原則,將具有較高相似度的數據對象划分至同一類簇,將具有較高相異度的數據對象划分至不同類簇。聚類與分類最大的區別在於,聚類過程為無監督過程,即待處理數據對象沒有任何先驗知識,而分類過程為有監督過程,即存在有先驗知識的訓練數據集。
2 K-means算法原理
k-means算法中的k代表類簇個數,means代表類簇內數據對象的均值(這種均值是一種對類簇中心的描述),因此,k-means算法又稱為k-均值算法。k-means算法是一種基於划分的聚類算法,以距離作為數據對象間相似性度量的標准,即數據對象間的距離越小,則它們的相似性越高,則它們越有可能在同一個類簇。數據對象間距離的計算有很多種,k-means算法通常采用歐氏距離來計算數據對象間的距離
四、實驗內容
1. 隨機生成100個數,並對這100個數進行k-mean聚類(k=3,4,5,6)(並用matplot畫圖)
1) 隨機創建100個樣本的二維數據作為訓練集
2)k=3進行聚類
3)k=4進行聚類
4)k=5 進行聚類
5)k=6進行聚類,並觀察簇分布
2. 對鳶尾花數據進行K-means算法聚類(並用matplot畫圖)。
五、實驗總結(寫出本次實驗的收獲,遇到的問題等)
通過本次實驗的學習與操作,我掌握了KMeans算法的基本原理,以及使用sklearn方便的進行聚類構造的方法。並且使用matplot畫圖,形象直觀地看出了K=3,4,5時不同的簇分布情況。