• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    K-means算法及其應用實踐

    2021-12-06 17:13:43張松慧
    科學與生活 2021年23期
    關鍵詞:means算法機器學習聚類

    摘要:機器學習分為監(jiān)督學習和無監(jiān)督學習,無監(jiān)督學習一個非常重要的用途就是對數(shù)據(jù)進行聚類。聚類算法則是在完全沒有標簽的情況下,算法“猜測”哪些數(shù)據(jù)應該聚為一類。K-means算法是被廣泛應用的一種聚類算法,K-means算法的關鍵是選擇合適的k值,文章通過鳶尾花聚類展示K-means算法應用。

    關鍵詞:K-means算法;聚類;無監(jiān)督學習;機器學習

    一、何為聚類

    聚類(Clustering)是一種典型的“無監(jiān)督學習”。聚類算法是對大量未知標記的數(shù)據(jù)集,根據(jù)數(shù)據(jù)之間的距離或者說是相似性(親疏性)將數(shù)據(jù)集劃分為多個簇(Cluster),使簇內(nèi)的數(shù)據(jù)相似度盡可能大,而簇間的數(shù)據(jù)相似度盡可能小。

    聚類的目的是把數(shù)據(jù)分類,但是事先我們不知道如何劃分,即聚類的類別和數(shù)目沒有預先的定義,是根據(jù)數(shù)據(jù)點的相似性(即數(shù)據(jù)點之間的距離)來劃分的。

    聚類與分類最大的區(qū)別是:聚類為無監(jiān)督學習,待處理數(shù)據(jù)沒有任何先驗知識,而分類是有監(jiān)督學習,即存在先驗知識的訓練數(shù)據(jù)集。

    二、K-means聚類算法原理

    K-means算法也稱為k均值算法,由于其簡潔和效率,成為所有聚類算法中應用最為廣泛的一種聚類算法。對于給定的樣本集,按照樣本之間距離的大小,將樣本集劃分成k個簇,讓簇內(nèi)的數(shù)據(jù)點盡量緊密地連接,而簇與簇之間的距離盡量大。k是簇的個數(shù),k由用戶指定,每個簇中所有點的中心稱為質心,k均值算法根據(jù)某個距離函數(shù)反復把數(shù)據(jù)分入k個簇中。

    K-means聚類算法的工作原理是:先隨機選取k個點作為初始的聚類中心,然后針對每個數(shù)據(jù)點,計算每個點與各個聚類中心之間的距離,把每個點歸為距離它最近的聚類中心代表的簇類。一次迭代結束之后,重新計算每個簇類的中心點,然后針對每個點,重新尋找距離自己最近的中心點。如此循環(huán),直到前后兩次迭代的簇類沒有變化。

    終止條件可以是以下任何一個:

    (1)沒有(或最小數(shù)目)對象被重新分配給不同的聚類。

    (2)沒有(或最小數(shù)目)聚類中心再發(fā)生變化。

    (3)誤差平方和局部最小。

    三、K-means算法流程

    K-means算法是一個反復迭代的過程,算法的基本步驟為:

    步驟1:選定要聚類的類別數(shù)目k,隨機選擇k個中心點(質心)。

    步驟2:針對每個樣本點,找到距離其最近的中心點(尋找組織),距離同一中心點最近的點為一個類,這樣完成了一次聚類。

    步驟3:判斷聚類前后的樣本點的類別情況是否相同,如果相同,則算法終止,否則進入步驟4。

    步驟4:針對每個類別中的樣本點,計算這些樣本點的中心點,當做該類的新的中心點(即將每個類別中所有對象所對應的均值作為該類別的聚類中心點),繼續(xù)步驟2。

    上述步驟的關鍵兩點是:1. 找到距離自己最近的中心點。2. 更新中心點。

    常用的距離度量標準是歐幾里得距離的平方:

    四、K-means算法中K值的選擇

    K-means算法中的k值需要預先確定,k值設為幾即聚幾類。在實際應用中k值是非常難以選擇的,通常的做法是多嘗試幾個k值,看聚成幾類的結果更好解釋,更符合分析目的等。

    還可以采用“肘”方法(Elbow method)確定k值。該方法的原理就是最小化點到聚類中心的距離。

    “肘”方法的步驟:

    (1)對于n個點的數(shù)據(jù)集,迭代計算k from 1 to n,每次聚類完成后計算每個點到其所屬的簇中心的距離的平方和;

    (2)平方和是會逐漸變小的,直到k==n時平方和為0,因為每個點都是它所在的簇中心本身;

    (3)在這個平方和變化過程中,會出現(xiàn)一個拐點也即“肘”點,下降率突然變緩時即認為是最佳的k值。

    一般來說,手肘圖都會展現(xiàn)出一個肘部輪廓,下降率突然變緩時即認為是最佳的k值。

    隨著聚類數(shù)k的增大,樣本劃分會更加精細,每個簇的聚合程度會逐漸提高,那么簇內(nèi)距離平方和自然會逐漸變小。并且,當k小于真實聚類數(shù)時,由于k的增大會大幅增加每個簇的聚合程度,故簇內(nèi)距離平方和的下降幅度會很大,而當k到達真實聚類數(shù)時,再增加k所得到的聚合程度回報會迅速變小,所以簇內(nèi)距離平方和的下降幅度會驟減,然后隨著k值的繼續(xù)增大而趨于平緩,也就是說簇內(nèi)距離平方和和k的關系圖是一個手肘的形狀,而這個肘部對應的k值就是數(shù)據(jù)的真實聚類數(shù)。

    五、K-means算法實現(xiàn)鳶尾花數(shù)據(jù)的聚類

    任務目標:使用scikit-learn內(nèi)置的鳶尾花數(shù)據(jù)集,該數(shù)據(jù)集每條記錄都有4個特征:花萼長度(calyx length)、花萼寬度(calyx width)、花瓣長度(petal length)、花瓣寬度(petal width),通過這4個特征可以預測鳶尾花屬于哪一品種。我們選取數(shù)據(jù)的后兩個特征,即花瓣長度和花瓣寬度作為訓練數(shù)據(jù),首先根據(jù)繪制的鳶尾花數(shù)據(jù)分布圖查看數(shù)據(jù)分分布情況,然后繪制出手肘圖,進一步輔助確定合理的k值。

    步驟一:選取鳶尾花數(shù)據(jù)集的后兩個特征即花瓣長度和寬度,繪制出鳶尾花數(shù)據(jù)分布圖,如圖1所示。

    從鳶尾花數(shù)據(jù)分布圖可以大致看出鳶尾數(shù)據(jù)的分布情況。

    步驟二:繪制出分類數(shù)1到7時,分類數(shù)(k)和簇內(nèi)距離和inertia的對應關系圖,即手肘圖,如圖2所示。

    觀察圖中各點的曲率可以看到,k=3之后,簇內(nèi)距離平方和inertia的下降變得很緩慢了,因此最佳的k值為3。

    步驟三:選擇最佳k值,k=3時繪制聚類效果圖,如圖3所示。

    3個類別的鳶尾花數(shù)據(jù)分別用綠色的五角星、紅色的圓點和藍色的+號表示,可以看到k=3時的聚類效果很好。

    六、總結

    聚類用于數(shù)據(jù)集內(nèi)種類屬性不明晰,希望通過數(shù)據(jù)挖掘或自動歸類出有相似特點的對象的場景。K-means算法可用于維數(shù)、數(shù)值都很小且連續(xù)的數(shù)據(jù)集,比如在市場營銷領域,建立合理的客戶價值評估模型,對客戶進行分群,分析不同客戶群的客戶價值,從而制定相應的營銷策略,對不同的客戶群提供個性化的服務等。

    K-means算法原理比較簡單,實現(xiàn)也很容易,收斂速度快,聚類效果也比較好,算法的可解釋度比較強,主要需要調(diào)參的參數(shù)是簇數(shù)k。但k值的選取不好把握,本文采用繪制手肘圖的方法輔助選取最佳的k值。

    參考文獻

    [1] 鐘志峰,李明輝,張艷.機器學習中自適應k 值的k 均值算法改進[J].計算機工程與設計,2021,42(1):136-141.

    [2] 李玥.機器學習的分類、聚類研究[J].電腦知識與技術,2020,16(4):161-162.

    [3] 季杰,陳強仁,朱東.基于機器學習的航空客戶價值分析[J].電腦知識與技術,2020,16(14):238-239.

    作者簡介:張松慧(1980-),女,湖北武漢人,武漢軟件工程職業(yè)學院副教授/信息系統(tǒng)項目管理師,碩士,研究方向人工智能技術應用。

    猜你喜歡
    means算法機器學習聚類
    基于DBSACN聚類算法的XML文檔聚類
    電子測試(2017年15期)2017-12-18 07:19:27
    基于機器學習的圖像特征提取技術在圖像版權保護中的應用
    基于網(wǎng)絡搜索數(shù)據(jù)的平遙旅游客流量預測分析
    時代金融(2016年27期)2016-11-25 17:51:36
    前綴字母為特征在維吾爾語文本情感分類中的研究
    科教導刊(2016年26期)2016-11-15 20:19:33
    基于支持向量機的金融數(shù)據(jù)分析研究
    基于K—Means聚類算法入侵檢測系統(tǒng)研究
    基于Weka的Apriori算法在原油產(chǎn)量預測中的應用
    基于HSI顏色空間的小麥粉精度自動識別研究
    基于聚類的Web日志挖掘
    基于改進的遺傳算法的模糊聚類算法
    吕梁市| 湖南省| 礼泉县| 万荣县| 镇远县| 纳雍县| 庆元县| 阿克陶县| 治多县| 兴城市| 新河县| 嫩江县| 灵武市| 岳阳县| 东明县| 达日县| 那曲县| 乳源| 沙雅县| 兴文县| 迁安市| 文山县| 报价| 沂源县| 红原县| 南陵县| 英德市| 马龙县| 阳新县| 会泽县| 福清市| 云阳县| 鹤庆县| 德保县| 青河县| 托里县| 邵武市| 栾城县| 兴国县| 怀安县| 察雅县|