0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于距離的聚類算法K-means的設(shè)計(jì)實(shí)現(xiàn)

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-07-18 09:19 ? 次閱讀

K-means 算法是典型的基于距離的聚類算法,采用距離作為相似性的評(píng)價(jià)指標(biāo),兩個(gè)對(duì)象的距離越近,其相似度就越大。而簇是由距離靠近的對(duì)象組成的,因此算法目的是得到緊湊并且獨(dú)立的簇。

假設(shè)要將對(duì)象分成 k 個(gè)簇,算法過程如下:

(1) 隨機(jī)選取任意 k 個(gè)對(duì)象作為初始聚類的中心(質(zhì)心,Centroid),初始代表每一個(gè)簇;

(2) 對(duì)數(shù)據(jù)集中剩余的每個(gè)對(duì)象根據(jù)它們與各個(gè)簇中心的距離將每個(gè)對(duì)象重新賦給最近的簇;

(3) 重新計(jì)算已經(jīng)得到的各個(gè)簇的質(zhì)心;

(4) 迭代步驟(2)-(3)直至新的質(zhì)心與原來的質(zhì)心相等或小于設(shè)定的閾值,算法結(jié)束。

注意!

(1) 在 K-means 算法 k 值通常取決于人的主觀經(jīng)驗(yàn);

(2) 距離公式常用歐氏距離和余弦相似度公式,前者是根據(jù)位置坐標(biāo)直接計(jì)算的,主要體現(xiàn)個(gè)體數(shù)值特征的差異,而后者更多體現(xiàn)了方向上的差異而不是位置上的,cosθ越接近 1 個(gè)體越相似,可以修正不同度量標(biāo)準(zhǔn)不統(tǒng)一的問題;

(3) K-means 算法獲得的是局部最優(yōu)解,在算法中,初始聚類中心常常是隨機(jī)選擇的,一旦初始值選擇的不好,可能無法得到有效的聚類結(jié)果。

對(duì)于一堆數(shù)據(jù),K 值(簇?cái)?shù))的最優(yōu)解如何確定呢?常見的有“肘”方法

(Elbow method)和輪廓系數(shù)法(Silhouette Coeffient):

① “肘”方法:核心指標(biāo)是 SSE(sum of the squared errors,誤差平方和),即所有樣本的聚類誤差(累計(jì)每個(gè)簇中樣本到質(zhì)心距離的平方和),隨著 K 的增大每個(gè)簇聚合度會(huì)增強(qiáng),SSE 下降幅度會(huì)增大,隨著 K 值繼續(xù)增大 SSE 的下降幅度會(huì)減少并趨于平緩,SSE 和 K 值的關(guān)系圖會(huì)呈現(xiàn)成一個(gè)手肘的形狀,此肘部對(duì)應(yīng)的 K 值就是最佳的聚類數(shù)。

② 輪廓系數(shù)法:結(jié)合聚類的凝聚度(Cohesion)和分離度(Separation)來考慮,凝聚度為樣本與同簇其他樣本的平均距離,分離度為樣本與最近簇中所有樣本的平均距離,該值處于-1~1 之間,值越大表示聚類效果越好。

以 iris 數(shù)據(jù)為例:

poYBAGLUtSOAJKcwAAFOOJv4bLs862.jpg

代碼實(shí)現(xiàn)

poYBAGLUtTuADjHJAACKef0dKCo616.jpg

由圖看出拐點(diǎn)在 K=2 處,K=3 次之,iris 實(shí)際數(shù)據(jù)分成了三類。



審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4612

    瀏覽量

    92890
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84687

原文標(biāo)題:Python實(shí)現(xiàn)所有算法-K-means

文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Web文檔k-means算法的改進(jìn)

    Web文檔k-means算法的改進(jìn) 介紹了Web文檔中普遍使用的、基于分割的
    發(fā)表于 09-19 09:17 ?1057次閱讀
    Web文檔<b class='flag-5'>聚</b><b class='flag-5'>類</b>中<b class='flag-5'>k-means</b><b class='flag-5'>算法</b>的改進(jìn)

    K-means+算法研究綜述

    介紹了K-means 算法的目標(biāo)函數(shù)、算法流程,并列舉了一個(gè)實(shí)例,指出了數(shù)據(jù)子集的數(shù)目K、初
    發(fā)表于 05-07 14:09 ?27次下載
    <b class='flag-5'>K-means</b>+<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>研究綜述

    基于離散量改進(jìn)k-means初始中心選擇的算法

    傳統(tǒng)kmeans算法由于初始中心的選擇是隨機(jī)的,因此會(huì)使結(jié)果不穩(wěn)定。針對(duì)這個(gè)問題,提出一種基于離散量改進(jìn)
    發(fā)表于 11-20 10:03 ?2次下載

    基于密度的K-means算法數(shù)目中應(yīng)用

    針對(duì)傳統(tǒng)的K-means算法無法預(yù)先明確數(shù)目,對(duì)初始中心選取敏感且易受離群孤點(diǎn)影響導(dǎo)致
    發(fā)表于 11-25 11:35 ?0次下載

    K均值算法的MATLAB實(shí)現(xiàn)

    K-means算法是最簡(jiǎn)單的一種算法。算法的目的是使各個(gè)樣本與所在
    發(fā)表于 12-01 14:07 ?2.1w次閱讀
    <b class='flag-5'>K</b>均值<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>的MATLAB<b class='flag-5'>實(shí)現(xiàn)</b>

    K-Means算法改進(jìn)及優(yōu)化

    局部最優(yōu)出現(xiàn)錯(cuò)誤的結(jié)果。針對(duì)傳統(tǒng)的k-means算法初始中心的缺點(diǎn),本文提出了p-
    發(fā)表于 12-05 18:32 ?0次下載
    <b class='flag-5'>K-Means</b><b class='flag-5'>算法</b>改進(jìn)及優(yōu)化

    基于布谷鳥搜索的K-means算法

    針對(duì)原始K-means算法受初始中心影響過大以及容易陷入局部最優(yōu)的不足,提出一種基于改進(jìn)
    發(fā)表于 12-13 17:24 ?3次下載

    大數(shù)據(jù)處理的優(yōu)化抽樣K-means算法

    針對(duì)大數(shù)據(jù)環(huán)境下K-means算法精度不足和收斂速度慢的問題,提出一種基于優(yōu)化抽樣
    發(fā)表于 12-22 15:47 ?4次下載
    大數(shù)據(jù)處理的優(yōu)化抽樣<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>K-means</b><b class='flag-5'>算法</b>

    基于距離最大化和缺失數(shù)據(jù)的填充算法

    通過對(duì)基于K-means的缺失值填充算法的改進(jìn),文中提出了基于距離最大化和缺失數(shù)據(jù)
    發(fā)表于 01-09 10:56 ?0次下載
    基于<b class='flag-5'>距離</b>最大化和缺失數(shù)據(jù)<b class='flag-5'>聚</b><b class='flag-5'>類</b>的填充<b class='flag-5'>算法</b>

    K-Means算法的簡(jiǎn)單介紹

    K-Means是十大經(jīng)典數(shù)據(jù)挖掘算法之一。K-Means和KNN(K鄰近)看上去都是K打頭,但卻是不同種類的
    發(fā)表于 07-05 14:18 ?4918次閱讀

    如何使用K-Means算法改進(jìn)的特征加權(quán)算法詳細(xì)資料概述

    聚類分析是將研究對(duì)象分為相對(duì)同質(zhì)的群組的統(tǒng)計(jì)分析技術(shù),聚類分析的核心就是發(fā)現(xiàn)有用的對(duì)象簇。K-means算法由于具有出色的速度和良好的可擴(kuò)展性,一直備受廣大學(xué)者的關(guān)注。然而,傳統(tǒng)的
    發(fā)表于 12-20 10:28 ?10次下載

    集成簇內(nèi)和簇間距離的加權(quán)k-means方法

    文本演化分析、圖像、社區(qū)發(fā)現(xiàn)等。然而在過程中,大部分現(xiàn)有的k-
    發(fā)表于 04-28 16:43 ?1次下載
    集成簇內(nèi)和簇間<b class='flag-5'>距離</b>的加權(quán)<b class='flag-5'>k-means</b><b class='flag-5'>聚</b><b class='flag-5'>類</b>方法

    K-MEANS算法概述及工作原理

    K-means 是一種算法,且對(duì)于數(shù)據(jù)科學(xué)家而言,是簡(jiǎn)單且熱門的無監(jiān)督式機(jī)器學(xué)習(xí)(ML)算法之一。
    的頭像 發(fā)表于 06-06 11:53 ?4019次閱讀

    K-means算法指南

    技術(shù)領(lǐng)域中,K-means可能是最常見和經(jīng)常使用的技術(shù)之一。K-means使用迭代細(xì)化方法,基于用戶定義的集群數(shù)量(由變量K表示)和數(shù)
    的頭像 發(fā)表于 10-28 14:25 ?1467次閱讀

    大學(xué)課程 數(shù)據(jù)分析 實(shí)戰(zhàn)之K-means算法(2)算法代碼

    繼續(xù)講解! 程序來啦! 最后看一下程序示例!看看如何用K-means算法實(shí)現(xiàn)數(shù)據(jù)的過程。程序很簡(jiǎn)單,側(cè)重讓大家了解和掌握
    的頭像 發(fā)表于 02-11 07:20 ?454次閱讀