《機(jī)器學(xué)習(xí)技術(shù)》課件 第五章 聚類_第1頁
《機(jī)器學(xué)習(xí)技術(shù)》課件 第五章 聚類_第2頁
《機(jī)器學(xué)習(xí)技術(shù)》課件 第五章 聚類_第3頁
《機(jī)器學(xué)習(xí)技術(shù)》課件 第五章 聚類_第4頁
《機(jī)器學(xué)習(xí)技術(shù)》課件 第五章 聚類_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

單元5聚類機(jī)器學(xué)習(xí)電氣與信息工程系CONTENTS

目錄010203任務(wù)5.1鳶尾花數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)5.2訓(xùn)練k-Means模型任務(wù)5.3模型評估引例描述

假設(shè)花海公園進(jìn)了一批鳶尾花并需要移植,不同種類的鳶尾花混在一起,由于活動需求,需要將不同種類的鳶尾花分開進(jìn)行種植,工人往往憑經(jīng)驗(yàn)和學(xué)識判斷鳶尾花是什么品種。如果使用計(jì)算機(jī)來完成鳶尾花的品種分類,該如何實(shí)現(xiàn)呢?可以先對花瓣的長度、花瓣的寬度、花萼的長度和花萼的寬度進(jìn)行測量,然后根據(jù)機(jī)器學(xué)習(xí)的算法對采集到的測量數(shù)據(jù)進(jìn)行聚類分析,即可對這些花進(jìn)行歸類。在本單元中,通過一種常用的聚類算法——k-Means來給大家介紹大量鳶尾花的分類過程。任務(wù)5.1鳶尾花數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)情景k-Means算法是一種無監(jiān)督的聚類算法,由于其實(shí)用、簡單和高效的特性而廣受青睞。它被廣泛應(yīng)用于植物分類、圖像分割、客戶分類等場景。鳶尾花數(shù)據(jù)集包含鳶尾花的3個亞屬,分別是山鳶尾(IrisSetosa)、變色鳶尾(IrisVersicolour)和維吉尼亞鳶尾(IrisVirginica),存放了這3個品種鳶尾花的花萼長度、花萼寬度、花瓣長度、花瓣寬度及類別數(shù)據(jù)。該數(shù)據(jù)集總共150條記錄,每條記錄由4個特征和1個標(biāo)簽構(gòu)成,其中,標(biāo)簽按照3個品種分為3類。鳶尾花的3個亞屬如圖5-1所示。圖5-1鳶尾花的3個亞屬

任務(wù)情景由于聚類是一種無監(jiān)督的學(xué)習(xí)方法,因此模型構(gòu)建所需的訓(xùn)練集無須帶有類標(biāo)簽。但是模型的構(gòu)建需要依賴于訓(xùn)練數(shù)據(jù)兩兩之間的距離,即數(shù)據(jù)之間的距離。在構(gòu)建距離之前需要了解訓(xùn)練數(shù)據(jù)的分布情況。任務(wù)布置

在Python中,實(shí)現(xiàn)數(shù)據(jù)集導(dǎo)入和數(shù)據(jù)預(yù)處理,提取特征值和標(biāo)簽值,并對數(shù)據(jù)進(jìn)行可視化。導(dǎo)入的鳶尾花數(shù)據(jù)集的部分?jǐn)?shù)值如圖5-2所示。圖5-2導(dǎo)入的鳶尾花數(shù)據(jù)集的部分?jǐn)?shù)值任務(wù)布置導(dǎo)入的鳶尾花數(shù)據(jù)集的部分?jǐn)?shù)據(jù)信息如圖5-3所示。(a)導(dǎo)入的鳶尾花數(shù)據(jù)集的部分特征值(b)導(dǎo)入的鳶尾花數(shù)據(jù)集的部分標(biāo)簽值圖5-3導(dǎo)入的鳶尾花數(shù)據(jù)集的部分?jǐn)?shù)據(jù)信息任務(wù)布置鳶尾花數(shù)據(jù)集二維散點(diǎn)圖如圖5-4所示。(a)(b)(c)(d)(e)(f)圖5-4鳶尾花數(shù)據(jù)集二維散點(diǎn)圖知識準(zhǔn)備—1.數(shù)據(jù)讀取在Python中,讀取數(shù)據(jù)的方式有很多種。在單元4中通過pandas庫中的read_csv()函數(shù)對下載好的.csv格式的數(shù)據(jù)進(jìn)行讀取。通過sklearn庫提供的函數(shù)實(shí)現(xiàn)數(shù)據(jù)的自動生成和自帶數(shù)據(jù)集的導(dǎo)入,本單元的案例主要通過sklearn庫提供的函數(shù)實(shí)現(xiàn)自帶數(shù)據(jù)集的導(dǎo)入。sklearn庫中的datasets模塊提供了用于加載和讀取流行的參考數(shù)據(jù)集的方法,還提供了人工數(shù)據(jù)生成器,該生成器用于得到計(jì)算機(jī)生成的數(shù)據(jù)集。datasets模塊提供了幾種數(shù)據(jù)集讀取方式,如表5-1所示。表5-1datasets模塊提供的數(shù)據(jù)集讀取方式知識準(zhǔn)備—1.數(shù)據(jù)讀取

本單元的案例將直接通過sklearn.datasets.load_<name>()函數(shù)來讀取Sklearn庫自帶的部分?jǐn)?shù)據(jù)集,如表5-2所示。表5-2sklearn庫自帶的部分?jǐn)?shù)據(jù)集的讀取方式知識準(zhǔn)備—1.數(shù)據(jù)讀取通過sklearn.datasets.load_<name>()函數(shù)讀取的數(shù)據(jù)集是一個字典的數(shù)據(jù)結(jié)構(gòu),下面以load_iris()函數(shù)的返回結(jié)果為例,它的屬性及其描述如表5-3所示。表5-3load_iris()函數(shù)返回結(jié)果的屬性及其描述知識準(zhǔn)備—1.數(shù)據(jù)讀取課堂隨練5-1使用sklearn庫的make_classification()函數(shù)實(shí)現(xiàn)分類數(shù)據(jù)的自動生成,即可生成特征數(shù)據(jù)和類標(biāo)簽。使用sklearn庫中的load_digits()函數(shù)直接導(dǎo)入手寫數(shù)字?jǐn)?shù)據(jù)集。知識準(zhǔn)備—2.數(shù)據(jù)可視化matplotlib.pyplot是一個命令風(fēng)格函數(shù)的集合,使matplotlib庫的機(jī)制更像MATLAB。它提供了plot()、xlabel()、ylabel()、scatter()及show()等函數(shù),可以實(shí)現(xiàn)數(shù)據(jù)的圖表展示。課堂隨練5-3為隨機(jī)生成的5個數(shù)據(jù)生成折線圖。知識準(zhǔn)備—2.數(shù)據(jù)可視化課堂隨練5-4隨機(jī)生成100個二維數(shù)據(jù)和100個類別,并通過圖表展示。任務(wù)實(shí)施Step1:引入相關(guān)模塊,sklearn庫中的datasets模塊提供了用于加載和讀取流行的參考數(shù)據(jù)集的方法,matplotlib庫提供了構(gòu)建圖表的函數(shù),itertools庫提供了讀取排列組合數(shù)據(jù)的函數(shù)。Step2:使用datasets.load_iris()函數(shù)導(dǎo)入數(shù)據(jù)集。Step3:將鳶尾花數(shù)據(jù)集顯示在二維散點(diǎn)圖上。任務(wù)5.2訓(xùn)練k-Means模型任務(wù)布置要求訓(xùn)練出對鳶尾花聚類最佳的k-Means模型,k值在2~11范圍內(nèi)變化,找出聚類評估最佳的k-Means模型。需要分析k值的變化圖,找到最佳的k值,圖5-6所示為不同k值下的SSE值展示。圖5-6不同k值下的SSE值展示在本任務(wù)中,當(dāng)k值為3時,得到最優(yōu)化聚類模型,學(xué)生可以選擇其他案例進(jìn)行測試。知識準(zhǔn)備—1.聚類分析聚類分析既可以作為一個獨(dú)立的工具來獲得數(shù)據(jù)的分布情況,從而觀察每個類的特點(diǎn),也可以作為其他算法的數(shù)據(jù)預(yù)處理的方法,從而完成數(shù)據(jù)的預(yù)處理。

聚類分析是機(jī)器學(xué)習(xí)中的一種方法,屬于無監(jiān)督學(xué)習(xí),其在很多領(lǐng)域都有相當(dāng)成功的應(yīng)用。在當(dāng)前大數(shù)據(jù)時代,面對海量的數(shù)據(jù),聚類分析的數(shù)據(jù)挖掘和數(shù)據(jù)分析、處理功能更會發(fā)揮重要的作用。

聚類依據(jù)某種特定的規(guī)則,將一個數(shù)據(jù)集劃分成若干不同的子數(shù)據(jù)集,使得每個子數(shù)據(jù)集內(nèi)數(shù)據(jù)點(diǎn)的相似度盡可能大一些,同時,不同子數(shù)據(jù)集的數(shù)據(jù)點(diǎn)的差異度也盡可能大一些。知識準(zhǔn)備—1.聚類分析1)聚類的定義

聚類問題可以抽象成數(shù)學(xué)中的集合劃分問題,給定一個樣本集

,將其分成m個子集C1,C2,…,Cm,這些子集又稱為簇。聚類的嚴(yán)格數(shù)學(xué)定義需滿足下面3個條件:(1),。(2)(3)。

由以上3個條件可知,樣本集的對象必定屬于某一個類,且每個樣本最多屬于一個類。知識準(zhǔn)備—1.聚類分析對一個數(shù)據(jù)集聚類的整個過程可以由以下4個階段構(gòu)成:(1)數(shù)據(jù)初始準(zhǔn)備:對數(shù)據(jù)進(jìn)行特征的標(biāo)準(zhǔn)化和降維。(2)數(shù)據(jù)的特征選擇和提?。涸诔跏继卣髦刑暨x最有效的特征,并將這些特征轉(zhuǎn)換成新的突出特征。(3)數(shù)據(jù)聚類:選擇合適特征類型的相似性度量準(zhǔn)則,對數(shù)據(jù)對象間的相似度進(jìn)行度量,執(zhí)行聚類或分組。(4)聚類結(jié)果評估:對聚類結(jié)果進(jìn)行有效性評估,涉及的準(zhǔn)則包括內(nèi)部準(zhǔn)則、外部準(zhǔn)則、相關(guān)準(zhǔn)則。知識準(zhǔn)備—1.聚類分析2)聚類算法的分類聚類算法大體上可以分為幾種:基于劃分的方法、基于層次的方法、基于密度的方法、基于網(wǎng)格的方法和基于模型的方法。要獲得優(yōu)質(zhì)的聚類效果,則需要根據(jù)數(shù)據(jù)類型、聚類目的和應(yīng)用場景,在眾多的聚類算法中選擇合適的聚類算法進(jìn)行分析。圖5-7所示為聚類算法的分類。圖5-7聚類算法的分類知識準(zhǔn)備—1.聚類分析(1)基于劃分的方法。首先,給定一個包含n個數(shù)據(jù)對象的數(shù)據(jù)集X及需要劃分的分區(qū)數(shù)k,基于劃分的方法將數(shù)據(jù)集X劃分成k個分區(qū),其中,每個分區(qū)表示一個簇。基于劃分的方法采用目標(biāo)最小化的規(guī)則,將數(shù)據(jù)對象組織為k(k≤n)個集合,這樣組織形成的每個集合都代表一個類。這些類必須滿足以下要求:①

每個數(shù)據(jù)對象必須屬于且只能屬于某一個類。②每個類不能為空(至少包含一個對象)。然后,采用一種迭代的重定位技術(shù),嘗試通過對象在集合間的移動來改進(jìn)劃分結(jié)果?;趧澐值姆椒ㄓ衚-Means(k均值集合),k-Medoids(k中心點(diǎn)),CLARA(大型數(shù)據(jù)集聚類),CLARANS(隨機(jī)搜索聚類)等算法。知識準(zhǔn)備—1.聚類分析(2)基于層次的方法。層次聚類算法又叫作樹聚類算法。該算法是將數(shù)據(jù)集按照樹的層次架構(gòu)來分裂或者聚合。根據(jù)層次分解的方式是自底向上還是自頂向下,可以將層次聚類算法分成凝聚法和分裂法。層次聚類的凝聚法和分裂法在1個包含5個對象的數(shù)據(jù)集{a,b,c,d,e}中的處理過程如圖5-8所示。圖5-8凝聚和分裂層次聚類知識準(zhǔn)備—1.聚類分析凝聚法(AGNES)也稱自底向上的方法,它首先將每個對象都設(shè)定為一個單獨(dú)的類,再合并相近(相似度最高)的對象或類,然后合并這些類為更大的類,逐層地向上聚合,最后當(dāng)所有的對象都在同一個類中或者滿足某個終止條件時,算法結(jié)束。分裂法(DIANA)也稱自頂向下的方法,它將所有對象所在的集合當(dāng)作一個類,每次迭代,將大的類分裂為更小的類,逐層地向下分裂,直到每個對象在一個簇中或者滿足某個終止條件時,算法結(jié)束。知識準(zhǔn)備—1.聚類分析在層次聚類算法中,絕大多數(shù)的方法都是凝聚法。對凝聚法的具體描述如下:首先,將每個對象當(dāng)作一個類;其次,合并所有類中距離最近(相似度最高)的兩個類;再次,重新計(jì)算新產(chǎn)生的類與其他類之間的距離,重復(fù)合并距離最近的兩個類;直到所有對象都在同一個類中或者滿足終止條件時,算法結(jié)束。根據(jù)類與類之間的距離度量方式的不同,可以將層次聚類算法分為三種典型的算法:單鏈接(SingleLink)、全鏈接(CompleteLink)和平均鏈接(AverageLink)。具有代表性的層次聚類算法還有CURE、ROCK、BIRCH、Chameleon等。知識準(zhǔn)備—1.聚類分析單鏈接:兩個簇之間的距離為兩個簇中所有對象之間的最短距離。圖5-9描述了單鏈接的簇A與簇B之間的距離度量方式,距離公式為,式中,;n為A的對象數(shù)目;m為B的對象數(shù)目;dist(a,b)表示樣本a與樣本b之間的相似度。圖5-9單鏈接算法知識準(zhǔn)備—1.聚類分析全鏈接:兩個簇之間的距離為兩個簇中所有對象之間的最長距離。圖5-10描述了全鏈接的簇A與簇B之間的距離度量方式,距離公式為,,式中,,n為A的對象數(shù)目;m為B的對象數(shù)目;dist(a,b)表示樣本a與樣本b之間的相似度。圖5-10全鏈接算法知識準(zhǔn)備—1.聚類分析平均鏈接:兩個簇之間的距離為兩個簇中所有對象之間距離的均值。圖5-11描述了平均鏈接的簇A與簇B之間的距離度量方式,距離公式為式中,;n為A的對象數(shù)目;m為B的對象數(shù)目;dist(a,b)表示樣本a與樣本b之間的相似度。知識準(zhǔn)備—1.聚類分析(3)基于密度的方法。絕大部分的聚類算法都是基于對象之間的距離來聚類的。這樣的算法只能發(fā)現(xiàn)球狀的類,對于其他形狀的類就無能為力。基于這一缺陷,提出了基于密度的方法。它的基本思想如下:只要距離相近的區(qū)域的密度(數(shù)據(jù)對象的個數(shù))超過某個閾值,就繼續(xù)聚類。此方法假設(shè)聚類結(jié)構(gòu)能通過樣本分布的緊密程度來確定。通常情形下,基于密度的法從樣本密度的角度來考察樣本之間的可連接性,并基于可連接樣本不斷擴(kuò)展聚類簇,以獲得最終的聚類結(jié)果?;诿芏鹊姆椒ǖ闹饕獌?yōu)點(diǎn)是可以過濾噪聲孤立點(diǎn)數(shù)據(jù),發(fā)現(xiàn)任意形狀的簇;缺點(diǎn)是結(jié)果受用戶定義的參數(shù)的影響較大?;诿芏鹊姆椒ǖ牡湫痛碛蠨BSCAN、OPTICS和DENCLUE。知識準(zhǔn)備—1.聚類分析(4)基于網(wǎng)格的方法?;诰W(wǎng)格的方法首先將數(shù)據(jù)空間劃分成有限個單元的網(wǎng)格結(jié)構(gòu),然后用抽象的網(wǎng)格單元代表某個區(qū)域的數(shù)據(jù)點(diǎn),在聚類處理過程中,都以網(wǎng)格單元為處理對象(即所有的聚類都是在這個網(wǎng)格結(jié)構(gòu)上進(jìn)行的)。該方法的主要優(yōu)點(diǎn)是處理速度很快,并且處理時間與數(shù)據(jù)對象的數(shù)目無關(guān),而與每維空間劃分的單元數(shù)目有關(guān);缺點(diǎn)是犧牲了聚類結(jié)果的精確率?;诰W(wǎng)格的方法的典型代表有STING、WaveCluster、CLIQUE等算法。知識準(zhǔn)備—1.聚類分析(5)基于模型的方法。基于模型的方法假設(shè)數(shù)據(jù)符合潛在的概率分布,為每個類假定一個模型,尋找能夠滿足該模型的數(shù)據(jù)集來聚類。基于模型的方法主要分成兩類:統(tǒng)計(jì)學(xué)方法和神經(jīng)網(wǎng)絡(luò)方法。在基于統(tǒng)計(jì)學(xué)的聚類方法中,最著名的是COBWEB算法;在基于神經(jīng)網(wǎng)絡(luò)的聚類方法中,最著名的是自組織特征映射神經(jīng)網(wǎng)絡(luò)算法。知識準(zhǔn)備—1.聚類分析3)簇內(nèi)距離和簇間距離聚類是根據(jù)樣本間的相似度進(jìn)行劃分的,這里的相似度一般是以樣本點(diǎn)間的距離來衡量的。把整個數(shù)據(jù)集的樣本數(shù)據(jù)看成是分布在特征空間中的點(diǎn),樣本數(shù)據(jù)之間的距離是對空間中點(diǎn)之間的距離。度量樣本數(shù)據(jù)之間的距離有閔可夫斯基距離(包含歐氏距離、曼哈頓距離和切比雪夫距離)、馬氏距離(協(xié)方差距離)、漢明距離等。評估聚類算法的聚類結(jié)果的好與差,往往通過計(jì)算簇內(nèi)距離和簇間距離,簇內(nèi)距離越小越好,簇間距離越大越好。知識準(zhǔn)備—1.聚類分析(1)簇內(nèi)距離。給定一個樣本數(shù)為n的簇,簇X的簇內(nèi)距離公式為式中,,dist(a,b)表示樣本a與樣本b之間的距離度量。(2)簇間距離。簇間距離的定義方式有多種,采用不同的類間距離定義方式可以

得到不同的聚類效果。簇間距離的定義方式有最短距離法、最長距離法、組間平均距離等。知識準(zhǔn)備—2.k-Means算法概述1967年,由MacQueen提出的k-Means(k均值聚類)算法是最經(jīng)典的基于劃分的方法,已發(fā)展成為一種經(jīng)典的聚類算法。該算法的思想如下:在數(shù)據(jù)集中,首先根據(jù)一定的策略選擇k個點(diǎn)作為每個類的初始中心點(diǎn),然后根據(jù)樣本數(shù)據(jù)與類中心點(diǎn)的距離,將樣本數(shù)據(jù)劃分到距離最近的類中,在將所有樣本數(shù)據(jù)都劃分到k個類中后,即完成了一輪劃分。但是,形成新的類并不是最好的劃分方法。因此,對于一輪劃分后生成的新類,需要重新計(jì)算每個類的中心點(diǎn),然后重新對數(shù)據(jù)進(jìn)行劃分。以此類推,直到每次劃分的結(jié)果保持不變,結(jié)束劃分得到最終的劃分結(jié)果。但是,在實(shí)際的數(shù)據(jù)處理過程中,往往經(jīng)過多輪迭代都得不到不變的劃分結(jié)果,這就需要對迭代輪次設(shè)定一個閾值,在迭代輪次達(dá)到閾值時,終止計(jì)算,獲得最終的劃分結(jié)果,k-Means算法流程圖如圖5-12所示。圖5-12k-Means算法流程圖知識準(zhǔn)備—2.k-Means算法概述通過圖5-13中的6張子圖對k-Means算法的數(shù)據(jù)劃分過程進(jìn)行描述。圖5-13(a)所示為初始二維數(shù)據(jù)集的分布情況。假設(shè)k=2,那么k-Means算法會先在數(shù)據(jù)的數(shù)值空間內(nèi)隨機(jī)選擇2個類對應(yīng)的中心,如圖5-8(b)中的2個三角形所示,然后分別計(jì)算所有樣本到這2個中心的距離,并將每個樣本的類別劃分為和該樣本距離最小的中心的類別,此時已經(jīng)完成了第1輪次的迭代,如圖5-8(c)所示。對于圖5-8(c)的劃分結(jié)果,計(jì)算出當(dāng)前2個類別中的中心點(diǎn),如圖5-8(d)中的2個三角形所示,此時2個類別的中心的位置發(fā)生了變化。按照新的中心,對數(shù)據(jù)重新進(jìn)行劃分,得到圖5-13(e)的劃分結(jié)果。多次按照圖5-8(c)~圖5-8(d)進(jìn)行操作,最終得到圖5-8(f)的結(jié)果。圖5-13k-Means算法對二維數(shù)據(jù)集的聚類過程知識準(zhǔn)備—3.k-Means模型根據(jù)前面對k-Means算法的了解,可知k-Means模型的建立具有三個核心要素:①k值的選擇。②距離度量的選擇。③初始中心點(diǎn)的選擇。聚類是無監(jiān)督學(xué)習(xí)方法,由于它不借助外部信息(如類標(biāo)),因此選擇不同的k值,得到的結(jié)果也必然不同。k-Means算法的初始中心點(diǎn)是隨機(jī)選擇的,可能會造成聚類結(jié)果不穩(wěn)定、迭代次數(shù)過多、資源消耗大、陷入局部最佳解等問題。k-Means算法默認(rèn)使用歐氏距離,歐氏距離的計(jì)算基于樣本的每個特征的尺度一致。但是,若樣本的某些特征的尺度遠(yuǎn)高于其他特征時,則會導(dǎo)致計(jì)算的距離結(jié)果向尺度較高的特征傾斜。在用k-Means算法進(jìn)行數(shù)據(jù)聚類時,選擇合適的k值、初始中心點(diǎn)及距離度量能夠有效保障聚類效果。知識準(zhǔn)備—3.k-Means模型1)k值的選擇k-Means模型的建立需要考慮k值的選擇,由于k-Means模型的建立不借助類標(biāo)簽,不同的k值會對模型建立結(jié)果產(chǎn)生較大的影響。k值的選擇有幾種常用的方法:經(jīng)驗(yàn)法、肘部法則(ElbowMethod)、間隔統(tǒng)計(jì)量(GapStatistic)法、輪廓系數(shù)(SilhouetteCoefficient)法和Canopy算法。k-Means算法以最小化樣本與質(zhì)點(diǎn)平方誤差作為目標(biāo)

,將每個聚類的質(zhì)點(diǎn)與類內(nèi)樣本點(diǎn)的平方距離誤差和稱為畸變程度,這也是肘部法則的核心指標(biāo)——誤差平方和(SumoftheSquaredErrors,SSE),其計(jì)算公式為式中,Si為第i個類的子數(shù)據(jù)集;x為Si中的樣本數(shù)據(jù),Ci為Si中所有樣本數(shù)據(jù)的均值;SSE為所有樣本的聚類誤差。知識準(zhǔn)備—3.k-Means模型肘部法則的核心思想如下:對于一個聚類,它的SSE值越低,代表類內(nèi)結(jié)構(gòu)越緊密;SSE值越高,代表類內(nèi)結(jié)構(gòu)越松散。SSE值會隨著類別的增加而降低,但對于有一定區(qū)分度的數(shù)據(jù),在SSE值達(dá)到某個臨界點(diǎn)時,畸變程度會得到極大改善,之后緩慢下降,這個臨界點(diǎn)可以考慮為聚類性能較好的點(diǎn)。在圖5-14中,當(dāng)k小于3時,由于k的增大會大幅提高每個簇的聚合程度,故SSE值的下降幅度會很大;而當(dāng)k等于3時,再增大k所得到的每個簇的聚合程度會迅速降低,所以SSE值的下降幅度會驟減。隨著k值的繼續(xù)增大,SSE值的曲線趨于平緩,此時最佳k值為3。圖5-14SSE值隨著k值的變化趨勢圖知識準(zhǔn)備—3.k-Means模型課堂隨練5-5我們使用matplotlib庫中的pyplot函數(shù)完成數(shù)據(jù)圖表的展示訓(xùn)練知識準(zhǔn)備—3.k-Means模型2)距離度量的選擇k-Means模型的建立需要考慮距離度量的選擇,在計(jì)算樣本與質(zhì)心的相似度時,需要計(jì)算二者之間的距離,距離越小表示兩者的相似度越高,距離越大表示兩者的差異度越高。k-Means算法采用的距離度量方法與單元4中介紹的距離度量方法一致。在特征空間中,可以采取多種距離度量方法,一般采用的是p=2時的閔可夫斯基距離(也就是歐氏距離),實(shí)例特征向量和的歐氏距離的定義式為式中,,表示是n維向量。知識準(zhǔn)備—3.k-Means模型樣本之間的距離需要根據(jù)樣本的數(shù)據(jù)特點(diǎn)進(jìn)行選擇,一般情況下,在歐幾里得空間中,選擇歐氏距離;在處理文檔時,選擇余弦相似度函數(shù)距離或者曼哈頓距離;在處理時間序列樣本數(shù)據(jù)時,選擇DTW距離或者歐氏距離。采用不同的距離度量方式計(jì)算樣本之間的相似度,會得到不同的效果。在本單元中,我們采用默認(rèn)的歐氏距離度量方法。知識準(zhǔn)備—3.k-Means模型課堂隨練5-6sklearn庫中的k-Means函數(shù)默認(rèn)采用歐氏距離度量方式,下面使用歐氏距離完成k-Means模型的訓(xùn)練。其中,n_clusters表示聚類個數(shù),默認(rèn)值為0;init表示初始中心點(diǎn)的選擇方法,默認(rèn)為'k-means++';max_iter表示k-Means算法的最大迭代次數(shù),默認(rèn)值為300。知識準(zhǔn)備—3.k-Means模型3)初始中心點(diǎn)的選擇k-Means算法在最開始隨機(jī)選取數(shù)據(jù)集中的k個點(diǎn)作為聚類中心,由于數(shù)據(jù)具有隨機(jī)性,容易造成初始中心點(diǎn)聚集,導(dǎo)致最終的聚類結(jié)果容易陷入局部最佳解及出現(xiàn)迭代次數(shù)過多的現(xiàn)象。2017年,D.Arthur等人提出了k-Means++算法,該算法的基本思想是選擇的k個初始中心點(diǎn)之間的距離盡可能遠(yuǎn)。這也符合聚類算法的目的,讓類內(nèi)樣本之間的差異度越小,讓類之間的差異度越大。k-Means++算法在原有k-Means算法的基礎(chǔ)上對初始中心點(diǎn)的選擇進(jìn)行改進(jìn),首先隨機(jī)選擇第一個中心點(diǎn),然后在剩余的樣本中選擇距離第一個中心點(diǎn)最遠(yuǎn)的樣本點(diǎn)作為第二個中心點(diǎn),以此類推,每次選擇的中心點(diǎn)都是與已選擇的所有中心點(diǎn)最遠(yuǎn)的樣本點(diǎn),直到選出k個中心點(diǎn)為止。對于第一個中心點(diǎn)的選擇,可以隨機(jī)挑選樣本,還可以選擇距離樣本數(shù)據(jù)均值最遠(yuǎn)的樣本點(diǎn),但是后者容易受到噪聲點(diǎn)的影響。知識準(zhǔn)備—3.k-Means模型k-Means++算法的聚類中心選擇流程圖如圖5-15所示。圖5-15k-Means++算法的聚類中心選擇流程圖知識準(zhǔn)備—3.k-Means模型假設(shè)一組數(shù)據(jù)如圖5-16(a)所示,用k-Means++算法對其聚類,聚類個數(shù)為3,那么k-Means++算法首先在該數(shù)據(jù)集中隨機(jī)選擇第一個中心點(diǎn),如圖5-16(b)中編號為8的圓形。然后,選擇距離第一個中心點(diǎn)最遠(yuǎn)的樣本點(diǎn),如圖5-16(c)中編號為5的圓形。接下來,在選擇第三個中心點(diǎn)時,計(jì)算剩下的樣本點(diǎn)與編號為5、編號為8的樣本點(diǎn)之間的距離均值,取距離均值最大的樣本點(diǎn)為第三個中心點(diǎn),如圖5-16(d)所示。(a)(b)(c)(d)圖5-16k-Means++算法初始中心點(diǎn)的選擇過程圖知識準(zhǔn)備—4.k-Means算法的優(yōu)缺點(diǎn)分析1)k-Means算法的優(yōu)點(diǎn)(1)原理簡單,易于理解,收斂速度快,聚類效果較好。(2)當(dāng)類中數(shù)據(jù)近似為正態(tài)分布時,聚類效果較好。(3)在處理大數(shù)據(jù)集時,k-Means算法可以保證較好的伸縮性和高效率。2)k-Means算法的缺點(diǎn)(1)k值要事先確定,不合適的k值會導(dǎo)致聚類效果較差。(2)對初始中心點(diǎn)的選擇敏感。(3)不適合發(fā)現(xiàn)非凸形狀的類或者大小差別較大的類。(4)噪聲和異常點(diǎn)對模型的建立影響較大。任務(wù)實(shí)施Step1:引入相關(guān)模塊。Step2:使用sklearn庫自帶的KMeans()函數(shù)創(chuàng)建k-Means模型,參數(shù)選擇模型默認(rèn)參數(shù)(也可傳入空參數(shù)),默認(rèn)的距離度量為歐氏距離,同時k-Means模型算法的初始中心點(diǎn)的選擇使用k-Means++方法Step3:完成SSE值的圖表展示。任務(wù)實(shí)施任務(wù)5.3模型評估任務(wù)情景

由于聚類不借助外部信息(如類標(biāo))來完成數(shù)據(jù)的歸類,聚類模型中參數(shù)的設(shè)定不同會得到不同的聚類結(jié)果。在沒有先驗(yàn)知識的情況下,需要使用聚類指標(biāo)對聚類結(jié)果的有效性進(jìn)行評估,常用的一些聚類有效性評估指標(biāo)有蘭德指數(shù)(RandIndex)指標(biāo)、調(diào)整蘭德指數(shù)(AdjustedRandIndex)指標(biāo)、誤差平方和(SSE)指標(biāo)、輪廓系數(shù)(SilhouetteCoefficient)指標(biāo)和卡林斯基-哈拉巴斯指數(shù)(Calinski-HarabaszIndex,簡稱CH系數(shù))指標(biāo)等。在本任務(wù)中,對于生成的分類數(shù)據(jù)集,我們先使用k-Means算法對特征數(shù)據(jù)進(jìn)行分類,然后使用數(shù)據(jù)標(biāo)簽和調(diào)整蘭德指數(shù)指標(biāo)對模型的聚類效果進(jìn)行評估,最后使用Python中的matplotlib工具對評估結(jié)果可視化,以便更好地觀察模型表現(xiàn)。任務(wù)情景由于生成的數(shù)據(jù)具有隨機(jī)性,最終聚類評估指標(biāo)值如圖5-18所示。圖5-18聚類評估指標(biāo)值聚類結(jié)果的三維展示如5-19所示。圖5-19聚類后結(jié)果的三維展示知識準(zhǔn)備-1.聚類有效性指標(biāo)1.聚類有效性指標(biāo)聚類分析是一種無監(jiān)督學(xué)習(xí)行為,由于它不借助外部信息,因此即使采用相同的聚類算法、設(shè)置的參數(shù)不同,也會得到不同的聚類效果。為了評估聚類算法的有效性及參數(shù)設(shè)置的合理性,需要通過聚類有效性指標(biāo)對聚類結(jié)果進(jìn)行評估。聚類有效性指標(biāo)大致可以分為兩類:內(nèi)部聚類有效性指標(biāo)和外部聚類有效性指標(biāo)。內(nèi)部聚類有效性指標(biāo)和外部聚類有效性指標(biāo)的主要區(qū)別在于數(shù)據(jù)所屬的類別是否已知。內(nèi)部聚類有效性指標(biāo)適用于缺乏外部信息時對聚類劃分結(jié)果的評估。常見的內(nèi)部聚類有效性指標(biāo)有輪廓系數(shù)指標(biāo)、戴維斯-博爾丁指數(shù)(DBI)指標(biāo)、同質(zhì)性與差異性指標(biāo)等。外部有效性指標(biāo)是真實(shí)標(biāo)簽與劃分結(jié)果之間的相似性(或非相似性)度量,適用于數(shù)據(jù)類別已知的情況。常見的外部聚類有效性指標(biāo)有福爾克斯和馬洛斯指數(shù)(FMI)指標(biāo)、蘭德指數(shù)指標(biāo)、雅卡爾系數(shù)(JC)指標(biāo)等。知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)1)內(nèi)部聚類有效性指標(biāo)內(nèi)部聚類有效性指標(biāo)用來描述數(shù)據(jù)集的內(nèi)部結(jié)構(gòu)與數(shù)據(jù)之間的緊密關(guān)系,通過具體的目標(biāo)函數(shù)對聚類結(jié)果進(jìn)行計(jì)算以評估算法的有效性。下面介紹幾種常見的聚類有效性指標(biāo)。知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)(1)輪廓系數(shù)指標(biāo)。輪廓系數(shù)指標(biāo)利用樣本點(diǎn)的類分離度與樣本點(diǎn)的類緊密度構(gòu)造輪廓系數(shù),通過整體取平均獲取最終指標(biāo)值。設(shè)一個包含n個對象的數(shù)據(jù)集被聚類算法分成k個子集Ci(i=1,2,…,k),數(shù)據(jù)集中某一個樣本t的輪廓系數(shù)的計(jì)算公式為式中,a(t)、b(t)的計(jì)算公式分別為式(5-8)與式(5-9)中的d(x,y)代表樣本x與樣本y的平均不相似度或距離,j=1,2,…,k。通常,以數(shù)據(jù)集中所有樣本的平均輪廓系數(shù)值作為聚類有效性指標(biāo)值,輪廓系數(shù)值越大表示聚類結(jié)果的質(zhì)量越好。(5-8)(5-9)知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)(2)戴維斯-博爾丁指數(shù)(Davies-BouldinIndex,DBI)指標(biāo)。式中,k為類簇個數(shù);為第i個簇內(nèi)的樣本數(shù)據(jù)點(diǎn)之間的平均距離;為聚類結(jié)果中的第i個類簇;為第i個類簇的聚類中心。知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)(3)同質(zhì)性與差異性指標(biāo)。同質(zhì)性與差異性指標(biāo)分為同質(zhì)性指標(biāo)與差異性指標(biāo)。同質(zhì)性指標(biāo)體現(xiàn)類內(nèi)的樣本聚合程度,也就是類內(nèi)樣本之間的平均相似度。而差異性指標(biāo)體現(xiàn)類與類的分離程度,也就是不同類的樣本之間的平均相似度。這二者的定義式分別為(5-11)(5-12)式中,k為數(shù)據(jù)集劃分的聚類數(shù)目;ni為第i個聚類Ci的樣本數(shù)目;d(s,t)為樣本s與樣本t的相似度。知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)2)外部聚類有效性指標(biāo)外部聚類有效性指標(biāo)用來對比聚類結(jié)果與通過數(shù)據(jù)集數(shù)據(jù)對象真實(shí)分布信息構(gòu)建的參考模型,從而評估聚類結(jié)果的質(zhì)量與聚類算法的性能。給定一個數(shù)據(jù)集,n表示數(shù)據(jù)集的樣本數(shù)。數(shù)據(jù)集的真實(shí)類別中有m個簇,它們是,通過聚類算法獲得的聚類結(jié)果為k個簇,那么經(jīng)過聚類的每個樣本數(shù)據(jù)均存在于以下4種情況中:①

數(shù)據(jù)對象在C和中均同屬一個類簇,本情形下的數(shù)據(jù)量為a。②

數(shù)據(jù)對象在C中同屬一個類簇,而在中不同屬一個類簇,本情形下的數(shù)據(jù)量為b。③

數(shù)據(jù)對象在C中不同屬一個類簇,而在中同屬一個類簇,本情形下的數(shù)據(jù)量為c。④

數(shù)據(jù)對象在C和中均不同屬一個類簇,本情形下的數(shù)據(jù)量為d。知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)(1)福爾克斯和馬洛斯指數(shù)(FowlkesandMallowsIndex,F(xiàn)MI)指標(biāo)。FMI的定義為精確率和召回率之間的幾何平均值,其取值范圍為[0,1]。FMI的計(jì)算公式為(5-13)(2)蘭德指數(shù)(RandIndex,RI)指標(biāo)。(5-14)知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)(3)調(diào)整蘭德指數(shù)指標(biāo)。調(diào)整蘭德指數(shù)(adjustedRandIndex,ARI)指標(biāo)是一種常見的外部聚類有效性指標(biāo),它可以用來判斷聚類結(jié)果和真實(shí)標(biāo)簽之間的相似度。蘭德指數(shù)的問題在于對于兩個隨機(jī)的數(shù)據(jù)劃分結(jié)果,其蘭德指數(shù)不是一個接近于0的常數(shù)。Hubert和Arabie在1985年提出了調(diào)整蘭德指數(shù),其計(jì)算公式為(5-15)(4)雅卡爾系數(shù)(JaccardCoefficient,JC)指標(biāo)。(5-16)知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集前面已經(jīng)用過sklearn庫中的datasets模塊自帶的數(shù)據(jù)集,但在多數(shù)情況下,我們需要自定義生成一些特殊形狀的用于算法的測試和驗(yàn)證數(shù)據(jù)集。sklearn庫提供了多種隨機(jī)樣本數(shù)據(jù)生成器,可以用于建立復(fù)雜的人工數(shù)據(jù)集。下面介紹幾種簡單的人工數(shù)據(jù)集生成函數(shù)。1)make_blobs()函數(shù)make_blobs()函數(shù)用于產(chǎn)生多類單標(biāo)簽數(shù)據(jù)集,它為每個類分配服從一個或多個正態(tài)分布的點(diǎn)集,有助于更好地控制聚類中心

和各簇的標(biāo)準(zhǔn)偏差,可用于實(shí)現(xiàn)聚類

知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集課堂隨練5-7通過make_blobs()函數(shù)生成一個樣本總數(shù)為1500、簇個數(shù)為3的二維數(shù)據(jù)集,并通過二維圖表進(jìn)行顯示。make_blobs()函數(shù)中的n_samples為生成的樣本總數(shù);n_features為所有樣本的維度;centers為產(chǎn)生的中心點(diǎn)的數(shù)量(即產(chǎn)生的簇的數(shù)量);cluster_std為聚簇的標(biāo)準(zhǔn)差;random_state為隨機(jī)種子,用于決定數(shù)據(jù)集創(chuàng)建過程中隨機(jī)數(shù)的生成。用make_blobs()函數(shù)生成的數(shù)據(jù)集如圖5-20所示。知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集2)make_classification()函數(shù)make_classification()函數(shù)用于產(chǎn)生多類單標(biāo)簽數(shù)據(jù)集,它為每個類分配服從一個或多個(每個維度)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論