想要知道如何優化kmeans,首先得知道:
什麼是kmeans?
kmeans的優點;
kmeans的缺陷;
知道了以上這些知識點,我們才能針對性優化kmeans。
kmeans是一種非監督的聚類演算法,首先選取k值,並隨機初始化k個質心,計算每個樣本與質心的相似度,將樣本劃分到距離其最近的乙個質心的堆簇,然後計算每個堆簇的新的質心,迭代上述過程,直到質心沒有新的變動。如果資料集很大,kmeans的收斂速度會很慢。
kmeans的演算法流程
• 初始化常數k,隨機選取初始點為質心
• 重複計算以下過程,直到質心不再改變
o 計算樣本與每個質心之間的相似度,將樣本歸類到最相似的類中
o 重新計算質心
• 輸出最終的質心以及每個類
kmeans的優點:
非常簡單,易於實現。
kmeans的缺陷:
k值需要預先選定,k值的選擇對於最後的聚類效果影響非常大。需要一定的先驗知識。
kmeans對於質心的初始點位置敏感,不同的初始化位置會導致不同的聚類結果。
對離群點(異常點)敏感。
針對以上三個缺陷,提出如下三個優化方法:
針對k值選擇,使用先驗知識選取k的備選。
針對初始化質心,二分k-均值。具體:首先將資料集劃分為乙個群簇(整體),然後將其一分為二,最大限度降低聚類代價函式(誤差平方和函式),形成兩個群簇。迭代這個過程,直到群簇數量等於k值。
對資料集的異常樣本做處理。
深度學習網路總結
機器學習演算法及其應用場景
演算法與資料結構(leetcode 題解)
cuda程式設計與並行優化
其他讀書分享如:《戰國策》,《智囊全集》
宇宙常識科普與星座辨別等等.
k means演算法優化
一 k means演算法介紹 k means 演算法是首先從含有n個資料物件的資料集中隨機選擇k個資料物件作為初始中心。然後計算每個資料物件到各中心的距離,根據最近鄰原則,所有資料物件將會被劃分到離它最近的那個中心所代表的簇中。接著分別計算新生成的各個簇中資料物件的均值作為各簇新的中心,比較新的中心...
K means演算法及其優化
聚類演算法是一種典型的無監督學習演算法,主要用於將相似的樣本自動歸到乙個類別中。聚類演算法與分類演算法最大的區別是 聚類演算法是無監督的學習演算法,而分類演算法屬於監督的學習演算法。在聚類演算法中根據樣本之間的相似性,將樣本劃分到不同的類別中,對於不同的相似度計算方法,會得到不同的聚類結果,常用的相...
Kmeans演算法及相關優化
1 kmeans演算法是一種無監督聚類演算法。2 演算法的目標 給定樣本集,根據樣本之間的距離大小,將樣本劃分為k個簇,讓簇內的點之間的距離盡可能近,讓簇間的點的距離盡可能的遠。3 演算法的思路 在給定k值和k個初始類簇中心點的情況下,把每個點 樣本資料 分到距離最近的類簇中心點代表的類簇中。分配完...