《機器學(xué)習(xí)技術(shù)》課件 第4-6章 k-NN算法、聚類、線性回歸_第1頁
《機器學(xué)習(xí)技術(shù)》課件 第4-6章 k-NN算法、聚類、線性回歸_第2頁
《機器學(xué)習(xí)技術(shù)》課件 第4-6章 k-NN算法、聚類、線性回歸_第3頁
《機器學(xué)習(xí)技術(shù)》課件 第4-6章 k-NN算法、聚類、線性回歸_第4頁
《機器學(xué)習(xí)技術(shù)》課件 第4-6章 k-NN算法、聚類、線性回歸_第5頁
已閱讀5頁,還剩156頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單元4k-NN算法機器學(xué)習(xí)電氣與信息工程系CONTENTS

目錄010203任務(wù)4.1Seeds數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)4.2訓(xùn)練k-NN模型任務(wù)4.3模型評估引例描述

(a)(b)(a:該怎么判斷這粒種子是哪種小麥種子呢?b:很簡單,看這粒種子和以上三種種子中的哪種比較像,就分成哪個吧?。﹫D4-1情景描述任務(wù)4.1Seeds數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)4.1—任務(wù)情景k-NN算法是一種直觀的、應(yīng)用廣泛的分類方式,在圖像識別、推薦算法、分類算法中有著廣泛的應(yīng)用。

本任務(wù)旨在使用k-NN算法進行小麥種子分類前對其進行簡單的數(shù)據(jù)集導(dǎo)入和數(shù)據(jù)預(yù)處理,分離出需要使用的訓(xùn)練集與測試集、標(biāo)簽值與特征值。我們采用的數(shù)據(jù)集來自加利福尼亞大學(xué)(UCI)提供的Seeds數(shù)據(jù)集。

在Seeds數(shù)據(jù)集中,存放了不同品種小麥種子的區(qū)域、周長、壓實度、籽粒長度、籽粒寬度、不對稱系數(shù)、籽粒腹溝長度及類別數(shù)據(jù)。在該數(shù)據(jù)集中,總共有210條記錄、7個特征、1個標(biāo)簽,標(biāo)簽分為3類。數(shù)據(jù)集如圖所示。數(shù)據(jù)集圖示任務(wù)4.1—任務(wù)情景

在處理Seeds數(shù)據(jù)集時,首先應(yīng)該分離出訓(xùn)練集和測試集,訓(xùn)練集包括小麥種子的特征值、標(biāo)簽值,不同條的特征值對應(yīng)不同的標(biāo)簽Kama、Rosa、Canadian。若用A(a1,

a2,

a3,…)表示測試集中A種子的特征值,用B(b1,

b2,

b3,…)表示測試集中B種子的特征值,以此類推。在本單元中,要判斷新的種子數(shù)據(jù)以X(x1,

x2,

x3,…)為例為哪種類別的種子,就要先計算出新數(shù)據(jù)與訓(xùn)練數(shù)據(jù)的歐氏距離DXA,

DXB,…,再從中選取k條距離最近的訓(xùn)練數(shù)據(jù),通過多數(shù)投票制選擇k條訓(xùn)練數(shù)據(jù)中出現(xiàn)次數(shù)最多的標(biāo)簽,該標(biāo)簽則為最終的預(yù)測類別,小麥種子預(yù)測流程圖如圖所示。小麥種子預(yù)測流程圖任務(wù)4.1—任務(wù)布置

在Python中,實現(xiàn)數(shù)據(jù)集導(dǎo)入和數(shù)據(jù)預(yù)處理,提取特征值和標(biāo)簽值,隨機選取測試集與訓(xùn)練集。導(dǎo)入的Seeds數(shù)據(jù)集的部分?jǐn)?shù)值如圖所示。導(dǎo)入的Seeds數(shù)據(jù)集的部分?jǐn)?shù)值任務(wù)4.1—任務(wù)情景導(dǎo)入的Seeds數(shù)據(jù)集的部分?jǐn)?shù)據(jù)信息如圖所示。(a)導(dǎo)入的Seeds數(shù)據(jù)集的部分特征值(b)Seeds數(shù)據(jù)集部分標(biāo)簽值導(dǎo)入的Seeds數(shù)據(jù)集的部分?jǐn)?shù)據(jù)信息任務(wù)4.1—知識準(zhǔn)備1.用read_csv()函數(shù)讀取文件csv是目前十分常用的數(shù)據(jù)保存格式,pandas庫為數(shù)據(jù)處理過程中數(shù)據(jù)的讀取提供了強有力的支持。pandas讀取csv文件是通過read_csv()函數(shù)進行的。讀取本地文件夾內(nèi)的students.csv文件。importpandasaspdstu=pd.read_csv(“./student.csv”)該函數(shù)不僅可以讀取本地文件,也可以讀取統(tǒng)一資源定位器(URL)指向的文件。讀取URL上的文件importpandasaspdstu=pd.read_csv(“http://localhost/student.csv”)任務(wù)4.1—知識準(zhǔn)備2.?dāng)?shù)據(jù)切分sklearn庫包含將數(shù)據(jù)集劃分成訓(xùn)練集與測試集的函數(shù)train_test_split(),其中,test_size參數(shù)為分?jǐn)?shù)時表示測試集樣本的占比,test_size參數(shù)為整數(shù)時表示測試樣本選取的數(shù)量。選取數(shù)據(jù)集的十分之一作為測試集X_train,X_test,y_train,y_test=train_test_split(data,target,test_size=0.1)任務(wù)4.1—任務(wù)實施

Step1:引入相關(guān)模塊,NumPy模塊是Python中用于提供大量高級的數(shù)值編程工具的模塊,pandas庫可以對各種類型的文件進行處理。Step2:用read_csv()函數(shù)導(dǎo)入數(shù)據(jù)集,并使用loc函數(shù)取數(shù)據(jù)集前7列作為特征值,取數(shù)據(jù)集第8列作為標(biāo)簽值。Step3:進行數(shù)據(jù)切分,分出訓(xùn)練集與測試集。將測試集的數(shù)量設(shè)置為數(shù)據(jù)集的10%。(a)測試集特征值(b)測試集標(biāo)簽值劃分出的測試集數(shù)據(jù)任務(wù)4.2訓(xùn)練k-NN模型任務(wù)4.2—任務(wù)情景任務(wù)4.2—任務(wù)情景k-NN是一種直觀的、應(yīng)用廣泛的分類方式,其在圖像識別、推薦算法、分類算法中有著廣泛的應(yīng)用。本任務(wù)旨在使讀者了解k-NN的算法原理,模型的搭建,并使讀者學(xué)會使用Python搭建k-NN模型,訓(xùn)練集為Seeds數(shù)據(jù)集,調(diào)整參數(shù)得到較好的效果。Seeds數(shù)據(jù)集圖示如圖所示。Seeds數(shù)據(jù)集圖示任務(wù)4.2—任務(wù)布置要求通過訓(xùn)練出的k-NN模型預(yù)測測試集,并理解距離度量的變化、k值的變化對結(jié)果造成的影響。不同距離度量及k值的結(jié)果展示如圖所示。不同距離度量及k值的結(jié)果展示在本案例中,距離度量選擇曼哈頓距離與歐氏距離的結(jié)果相同,同學(xué)們可以選擇其他案例進行測試。任務(wù)4.2—知識準(zhǔn)備—1.k-NN算法k-NN算法最初由Cover和Hart于1968年提出,是一種直觀的分類或回歸算法。給定一個擁有標(biāo)簽值和特征值的訓(xùn)練集例,如新聞信息訓(xùn)練集。對于一條新輸入的新聞實例,用k-NN算法計算與該新聞實例最鄰近(相似)的k個訓(xùn)練新聞實例,假如,這個新聞實例多數(shù)屬于時政新聞,就把新的實例分類給時政新聞;假如k個新聞實例多數(shù)屬于娛樂新聞,就把新的實例分類給娛樂新聞。任務(wù)4.2—知識準(zhǔn)備—1.k-NN算法假設(shè)訓(xùn)練集為式中,n為訓(xùn)練集樣本的個數(shù);為數(shù)據(jù)集中實例i的特征向量;表示為數(shù)據(jù)集中實例i的標(biāo)簽值;若輸入一個新的實例x,根據(jù)給定的距離度量方法,在訓(xùn)練集S中找出由距離x最近的k個點組成的集合表示為類別的總數(shù)為q。根據(jù)k-NN算法分類規(guī)則,實例x所屬的分類y可以由集合

的出現(xiàn)概率最大的標(biāo)簽獲得。

任務(wù)4.2—知識準(zhǔn)備—1.k-NN算法k-NN模型圖示如圖所示,方形和三角形表示兩個類別的訓(xùn)練數(shù)據(jù),圓形表示待預(yù)測的新實例。當(dāng)k=3時,可以發(fā)現(xiàn),在距離圓形較近的三個點中,三角形有兩個,方形有一個,三角形居多,因此會將新實例分類給三角形這一類別;當(dāng)k=4時,可以發(fā)現(xiàn),在距離圓形較近的五個點中,三角形有兩個,方形有三個,方形居多,因此會將實例分類給方形這一類別。

k-NN模型圖示k-NN算法中的一個特殊情況為

的情況,表示選擇距離新實例最近的一個實例的標(biāo)簽作為新實例的標(biāo)簽。此時,這種算法被稱為最近鄰算法。任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型前面說過,k-NN模型的建立具有三個要素:①如何計算兩個節(jié)點之間的距離,也就是距離度量的選擇。②k值的選擇。③分類決策的規(guī)則。1)距離度量的選擇k-NN模型的建立需要考慮距離度量的選擇,在選擇距離實例較近的k個點時,在特征空間中,可以采取多種距離度量方法,一般采用的是p=2時的閔可夫斯基距離,也就是歐氏距離。實例特征向量和的歐氏距離的定義式為式中,,表示是n維向量。任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型

距離度量不僅可以選擇歐氏距離,也可以選擇曼哈頓距離、馬氏距離、流形距離等。其中最常用的是歐氏距離與曼哈頓距離。歐氏距離就是空間中兩個節(jié)點之間的最短距離,曼哈頓距離是兩個節(jié)點之間每個維度的距離之和。距離度量如圖所示,兩個節(jié)點之間的綠色線條表示的是直線距離,也就是歐氏距離,而紅色、藍色、黃色線條表示的是曼哈頓距離。距離度量圖示不同距離度量方法選擇的最近鄰點也是不同的。在本單元中,我們默認(rèn)選擇歐氏距離度量方法。任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型課堂隨練4-4選擇曼哈頓距離度量方法訓(xùn)練k-NN模型。knn=KNeighborsClassifier(n_neighbors,weights,algorithm,p=1,metric='minkowski')metrix=‘minkowski’

表示選擇閔可夫斯基距離度量,p(整數(shù))是Minkowski距離的冪參數(shù)。p=1表示選擇曼哈頓距離度量,p=2表示選擇歐氏距離度量。任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型2)k值的選擇k-NN模型的建立需要考慮k值的選擇,會對k-NN算法的結(jié)果產(chǎn)生較大的影響。k值越小,選擇的近鄰集合元素就越少,如果近鄰集合中剛好出現(xiàn)了噪聲點,那么預(yù)測結(jié)果就很容易出錯,因此容易出現(xiàn)過擬合現(xiàn)象。如圖所示為k=1時模型的選擇,如果k值過小(為1),盡管新實例四周方形居多,但最近一個節(jié)點為圓形,因此很容易被噪聲節(jié)點影響而被分給錯誤的類別。k=1時模型的選擇任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型k值越大,選擇的近鄰集合元素就越多,這時對新實例影響較小的訓(xùn)練實例也會被考慮在內(nèi),如圖所示。很明顯,新實例應(yīng)分給方形的類別,但當(dāng)k值選擇得特別大時,新實例的分類會被大量的不相關(guān)屬性支配,最后新實例就會被錯誤地分類給圓形的類別。k值選取過大時模型的分類情況任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型因此,k值的選擇過程也是準(zhǔn)確率和過擬合程度均衡的過程。在實際案例中,k值一般選擇較小的數(shù)值。如果想要取得最佳k值,一般采用CV法,從k=1開始,觀察分類準(zhǔn)確率,重復(fù)這個過程,每次k值增加1,允許增加一個近鄰,將準(zhǔn)確率最高的k值作為最佳k值,k值的選擇如圖所示,當(dāng)k=1時,新實例被分類給方形的類別;當(dāng)k=2時,新實例被分類給三角形的類別;當(dāng)k=3時,新實例被分類給方形的類別,依次增加計算。在一般數(shù)據(jù)集中,k的取值不超過20,但若數(shù)據(jù)集增大,則k的取值也應(yīng)該增大。k值的選擇任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型3)分類決策的規(guī)則在k-NN算法中,分類決策一般采用多數(shù)投票制,即在與新實例相近的k個實例中,哪個類別的實例較多,就把新實例分類給哪類。隨著k-NN算法的發(fā)展,衍生出針對傳統(tǒng)k-NN算法的許多改進算法,如距離加權(quán)最近鄰算法,對k個近鄰的貢獻加權(quán),根據(jù)它們相對新實例的距離,將較大的權(quán)重賦給較近的近鄰。本單元基于傳統(tǒng)的k-NN算法來建模。任務(wù)4.2—知識準(zhǔn)備—2.k-NN模型k-NN模型是一種消極(惰性)模型,那么什么是消極模型呢?首先,利用算法通過建立模型然后將測試數(shù)據(jù)應(yīng)用于模型的方法就是積極的學(xué)習(xí)方式,積極的模型在訓(xùn)練模型的過程中已經(jīng)考慮到了所有訓(xùn)練樣本的數(shù)據(jù),在決策時基本不需要時間。而消極的模型推遲對訓(xùn)練數(shù)據(jù)的建模,雖然訓(xùn)練時間短,但是在最后預(yù)測分類時,仍需要考慮訓(xùn)練樣本的情況,例如k-NN需要在分類時依次計算測試樣本與訓(xùn)練樣本的距離,這種延遲的建模技術(shù)叫作消極的學(xué)習(xí)方法。之所以稱k-NN為消極模型,并不是因為k-NN模型簡單,而是因為其只對訓(xùn)練數(shù)據(jù)進行保存和“記憶”,沒有從訓(xùn)練樣本中學(xué)到真正的模型,除非測試樣本“來了”,才會開始學(xué)習(xí)。任務(wù)4.2—知識準(zhǔn)備—3.k-NN算法的優(yōu)缺點分析1)k-NN算法的優(yōu)點(1)k-NN算法簡單直觀,易于理解,對數(shù)學(xué)基礎(chǔ)要求較低。(2)預(yù)測精度高,對異常值不敏感。(3)k值的選擇流程表明:k-NN算法適用于多樣本分類。(4)k-NN模型為惰性模型,因此模型訓(xùn)練階段用時較短。2)k-NN算法的缺點(1)內(nèi)存占用較多,需要在內(nèi)存中存儲所有訓(xùn)練數(shù)據(jù)。(2)因為需要在預(yù)測階段依次計算測試樣本與訓(xùn)練樣本的距離,所以預(yù)測階段用時較長。(3)k值的選擇對結(jié)果影響較大,且k值不好選擇。任務(wù)4.2—任務(wù)實施Step1:引入相關(guān)模塊。Step2:使用sklearn庫自帶的KNeighborsClassifier()函數(shù)創(chuàng)建k-NN模型,參數(shù)選擇模型默認(rèn)參數(shù)(也可傳入空參數(shù)),即k值選擇5,選擇的距離度量為歐氏距離。Step3:根據(jù)訓(xùn)練數(shù)據(jù)訓(xùn)練模型。任務(wù)4.3模型評估任務(wù)4.3—任務(wù)布置

模型評估是模型訓(xùn)練中必不可少的一部分,要評估k-NN模型的優(yōu)劣,不僅需要對已知數(shù)據(jù)進行預(yù)測,還需要對未知數(shù)據(jù)進行預(yù)測。在本任務(wù)中,我們通過Python中的工具對模型進行評估,并尋找合適的方法對評估結(jié)果進行可視化,以便更好地觀察模型表現(xiàn)。預(yù)測集的準(zhǔn)確率如圖所示圖測試集的準(zhǔn)確率任務(wù)4.3—任務(wù)布置

通過一個交叉表觀察k-NN模型對小麥種子的預(yù)測情況。預(yù)測出的測試樣本的熱圖展示如圖所示。預(yù)測出的測試樣本的熱圖展示預(yù)測出的測試樣本的交叉表任務(wù)4.3—知識準(zhǔn)備1.測試集預(yù)測利用sklearn庫中的predict()函數(shù)對測試集進行預(yù)測假設(shè)測試集的特征值為X={x1,x2,…,xn},模型為k-NN(已訓(xùn)練)。Y

=knn.predict(X)#predeic函數(shù)中的參數(shù)是待預(yù)測特征值,Y表示預(yù)測標(biāo)簽值由knn.score()函數(shù)可以直接得到k-NN模型的預(yù)測準(zhǔn)確率。它的兩個參數(shù)為待預(yù)測特征值與已知待預(yù)測值的標(biāo)簽值。假設(shè)測試集的特征值為X={x1,x2,…,xn},測試集的標(biāo)簽值為Y={y1,y2,…,yn}模型為k-NN(已訓(xùn)練)。求模型對測試集預(yù)測的準(zhǔn)確率。acc=knn.score(X,Y)print("測試集的準(zhǔn)確率為",acc)任務(wù)4.3—知識準(zhǔn)備2.交叉表展示pandas庫中的crosstab()函數(shù)具有強大的展示功能,crosstab()函數(shù)中的參數(shù)index和columns分別表示取其交叉表的兩個變量,rownames參數(shù)與colnames參數(shù)可以分別設(shè)置為行與列的名稱。通過交叉表可以看到同時屬于兩種變量的樣本的個數(shù)。課堂隨練—practice-1針對如圖所示的學(xué)生信息文件students.csv,畫出成績與專業(yè)交叉表。學(xué)生信息文件students.csv任務(wù)4.3—知識準(zhǔn)備importnumpyasnpimportpandasaspddata=np.array(pd.read_csv('./students.csv'))score=data[:,2]major=data[:,3]#畫交叉表cross_table=pd.crosstab(index=score,columns=major,rownames=['Predicted'],colnames=['True'],margins=True)print(cross_table)交叉表案例任務(wù)4.3—知識準(zhǔn)備crosstab()函數(shù)還可以與.heatmap()函數(shù)搭配使用,畫出更美觀的熱圖。課堂隨練—practice-2畫出如圖交叉表的熱圖importmatplotlib.pyplotaspltimportseabornassnsa=pd.crosstab(index=score,columns=major,rownames=['Predicted'],colnames=['True'],margins=True)sns.heatmap(a,cmap='rocket_r',annot=True,fmt='g');熱圖案例任務(wù)4.3—任務(wù)實施Step1:采用訓(xùn)練集訓(xùn)練好的模型預(yù)測測試集,得到預(yù)測標(biāo)簽后,使用score()函數(shù)得到預(yù)測標(biāo)簽與標(biāo)簽對比的準(zhǔn)確率。Step2:畫出21個測試集的預(yù)測標(biāo)簽與標(biāo)簽的交叉表。采用crosstabl()函數(shù),使得參數(shù)為標(biāo)簽與預(yù)測標(biāo)簽,設(shè)置表格的表頭內(nèi)容為“Ture”與“Predicted”,得到交叉表。Step3:畫出熱圖預(yù)測出的測試樣本的交叉表預(yù)測出的測試樣本的熱圖展示任務(wù)拓展

紅葡萄酒質(zhì)量預(yù)測任務(wù)和葡萄酒數(shù)據(jù)集請從華信教育資源網(wǎng)該書配套資源處下載。

通過本任務(wù)的實施,同學(xué)們可以搭建k-NN模型,從而實現(xiàn)對紅葡萄酒質(zhì)量的預(yù)測。完成紅葡萄酒數(shù)據(jù)集分類僑務(wù),根據(jù)sklearn函數(shù)搭建合適的k-NN模型,對從數(shù)據(jù)集中劃分出的測試集進行預(yù)測,輸出準(zhǔn)確率。服務(wù)器作業(yè):10-5任務(wù)

截圖交

重點位置標(biāo)紅p215-218登錄名使用xyz08abc01例如:10.4企業(yè)實戰(zhàn)與應(yīng)用

終點位置標(biāo)紅p218-222登錄名使用xyz08abc01機器學(xué)習(xí)作業(yè):作業(yè)1:歐氏距離a=(1,2,3)b=(4,5,6)結(jié)果是:5.196152422706632要求不使用distance.euclidean(a,b)函數(shù)作業(yè)2:畫出student.csv熱圖

交截圖

圖片tittle為

名字縮寫加學(xué)號xa08行列標(biāo)簽是SCORE和MAJOR作業(yè)3:完成紅葡萄酒的數(shù)據(jù)集分類任務(wù)單元5聚類機器學(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īng)驗和學(xué)識判斷鳶尾花是什么品種。如果使用計算機來完成鳶尾花的品種分類,該如何實現(xiàn)呢?可以先對花瓣的長度、花瓣的寬度、花萼的長度和花萼的寬度進行測量,然后根據(jù)機器學(xué)習(xí)的算法對采集到的測量數(shù)據(jù)進行聚類分析,即可對這些花進行歸類。在本單元中,通過一種常用的聚類算法——k-Means來給大家介紹大量鳶尾花的分類過程。任務(wù)5.1鳶尾花數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)情景k-Means算法是一種無監(jiān)督的聚類算法,由于其實用、簡單和高效的特性而廣受青睞。它被廣泛應(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中,實現(xiàn)數(shù)據(jù)集導(dǎo)入和數(shù)據(jù)預(yù)處理,提取特征值和標(biāo)簽值,并對數(shù)據(jù)進行可視化。導(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ù)集二維散點圖如圖5-4所示。(a)(b)(c)(d)(e)(f)圖5-4鳶尾花數(shù)據(jù)集二維散點圖知識準(zhǔn)備—1.數(shù)據(jù)讀取在Python中,讀取數(shù)據(jù)的方式有很多種。在單元4中通過pandas庫中的read_csv()函數(shù)對下載好的.csv格式的數(shù)據(jù)進行讀取。通過sklearn庫提供的函數(shù)實現(xiàn)數(shù)據(jù)的自動生成和自帶數(shù)據(jù)集的導(dǎo)入,本單元的案例主要通過sklearn庫提供的函數(shù)實現(xiàn)自帶數(shù)據(jù)集的導(dǎo)入。sklearn庫中的datasets模塊提供了用于加載和讀取流行的參考數(shù)據(jù)集的方法,還提供了人工數(shù)據(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ù)實現(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庫的機制更像MATLAB。它提供了plot()、xlabel()、ylabel()、scatter()及show()等函數(shù),可以實現(xiàn)數(shù)據(jù)的圖表展示。課堂隨練5-3為隨機生成的5個數(shù)據(jù)生成折線圖。知識準(zhǔn)備—2.數(shù)據(jù)可視化課堂隨練5-4隨機生成100個二維數(shù)據(jù)和100個類別,并通過圖表展示。任務(wù)實施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ù)集顯示在二維散點圖上。任務(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é)生可以選擇其他案例進行測試。知識準(zhǔn)備—1.聚類分析聚類分析既可以作為一個獨立的工具來獲得數(shù)據(jù)的分布情況,從而觀察每個類的特點,也可以作為其他算法的數(shù)據(jù)預(yù)處理的方法,從而完成數(shù)據(jù)的預(yù)處理。

聚類分析是機器學(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ù)點的相似度盡可能大一些,同時,不同子數(shù)據(jù)集的數(shù)據(jù)點的差異度也盡可能大一些。知識準(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ù)進行特征的標(biāo)準(zhǔn)化和降維。(2)數(shù)據(jù)的特征選擇和提?。涸诔跏继卣髦刑暨x最有效的特征,并將這些特征轉(zhuǎn)換成新的突出特征。(3)數(shù)據(jù)聚類:選擇合適特征類型的相似性度量準(zhǔn)則,對數(shù)據(jù)對象間的相似度進行度量,執(zhí)行聚類或分組。(4)聚類結(jié)果評估:對聚類結(jié)果進行有效性評估,涉及的準(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)用場景,在眾多的聚類算法中選擇合適的聚類算法進行分析。圖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ù),嘗試通過對象在集合間的移動來改進劃分結(jié)果?;趧澐值姆椒ㄓ衚-Means(k均值集合),k-Medoids(k中心點),CLARA(大型數(shù)據(jù)集聚類),CLARANS(隨機搜索聚類)等算法。知識準(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āng)所有的對象都在同一個類中或者滿足某個終止條件時,算法結(jié)束。分裂法(DIANA)也稱自頂向下的方法,它將所有對象所在的集合當(dāng)作一個類,每次迭代,將大的類分裂為更小的類,逐層地向下分裂,直到每個對象在一個簇中或者滿足某個終止條件時,算法結(jié)束。知識準(zhǔn)備—1.聚類分析在層次聚類算法中,絕大多數(shù)的方法都是凝聚法。對凝聚法的具體描述如下:首先,將每個對象當(dāng)作一個類;其次,合并所有類中距離最近(相似度最高)的兩個類;再次,重新計算新產(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)能通過樣本分布的緊密程度來確定。通常情形下,基于密度的法從樣本密度的角度來考察樣本之間的可連接性,并基于可連接樣本不斷擴展聚類簇,以獲得最終的聚類結(jié)果。基于密度的方法的主要優(yōu)點是可以過濾噪聲孤立點數(shù)據(jù),發(fā)現(xiàn)任意形狀的簇;缺點是結(jié)果受用戶定義的參數(shù)的影響較大。基于密度的方法的典型代表有DBSCAN、OPTICS和DENCLUE。知識準(zhǔn)備—1.聚類分析(4)基于網(wǎng)格的方法?;诰W(wǎng)格的方法首先將數(shù)據(jù)空間劃分成有限個單元的網(wǎng)格結(jié)構(gòu),然后用抽象的網(wǎng)格單元代表某個區(qū)域的數(shù)據(jù)點,在聚類處理過程中,都以網(wǎng)格單元為處理對象(即所有的聚類都是在這個網(wǎng)格結(jié)構(gòu)上進行的)。該方法的主要優(yōu)點是處理速度很快,并且處理時間與數(shù)據(jù)對象的數(shù)目無關(guān),而與每維空間劃分的單元數(shù)目有關(guān);缺點是犧牲了聚類結(jié)果的精確率?;诰W(wǎng)格的方法的典型代表有STING、WaveCluster、CLIQUE等算法。知識準(zhǔn)備—1.聚類分析(5)基于模型的方法。基于模型的方法假設(shè)數(shù)據(jù)符合潛在的概率分布,為每個類假定一個模型,尋找能夠滿足該模型的數(shù)據(jù)集來聚類?;谀P偷姆椒ㄖ饕殖蓛深悾航y(tǒng)計學(xué)方法和神經(jīng)網(wǎng)絡(luò)方法。在基于統(tǒng)計學(xué)的聚類方法中,最著名的是COBWEB算法;在基于神經(jīng)網(wǎng)絡(luò)的聚類方法中,最著名的是自組織特征映射神經(jīng)網(wǎng)絡(luò)算法。知識準(zhǔn)備—1.聚類分析3)簇內(nèi)距離和簇間距離聚類是根據(jù)樣本間的相似度進行劃分的,這里的相似度一般是以樣本點間的距離來衡量的。把整個數(shù)據(jù)集的樣本數(shù)據(jù)看成是分布在特征空間中的點,樣本數(shù)據(jù)之間的距離是對空間中點之間的距離。度量樣本數(shù)據(jù)之間的距離有閔可夫斯基距離(包含歐氏距離、曼哈頓距離和切比雪夫距離)、馬氏距離(協(xié)方差距離)、漢明距離等。評估聚類算法的聚類結(jié)果的好與差,往往通過計算簇內(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個點作為每個類的初始中心點,然后根據(jù)樣本數(shù)據(jù)與類中心點的距離,將樣本數(shù)據(jù)劃分到距離最近的類中,在將所有樣本數(shù)據(jù)都劃分到k個類中后,即完成了一輪劃分。但是,形成新的類并不是最好的劃分方法。因此,對于一輪劃分后生成的新類,需要重新計算每個類的中心點,然后重新對數(shù)據(jù)進行劃分。以此類推,直到每次劃分的結(jié)果保持不變,結(jié)束劃分得到最終的劃分結(jié)果。但是,在實際的數(shù)據(jù)處理過程中,往往經(jīng)過多輪迭代都得不到不變的劃分結(jié)果,這就需要對迭代輪次設(shè)定一個閾值,在迭代輪次達到閾值時,終止計算,獲得最終的劃分結(jié)果,k-Means算法流程圖如圖5-12所示。圖5-12k-Means算法流程圖知識準(zhǔn)備—2.k-Means算法概述通過圖5-13中的6張子圖對k-Means算法的數(shù)據(jù)劃分過程進行描述。圖5-13(a)所示為初始二維數(shù)據(jù)集的分布情況。假設(shè)k=2,那么k-Means算法會先在數(shù)據(jù)的數(shù)值空間內(nèi)隨機選擇2個類對應(yīng)的中心,如圖5-8(b)中的2個三角形所示,然后分別計算所有樣本到這2個中心的距離,并將每個樣本的類別劃分為和該樣本距離最小的中心的類別,此時已經(jīng)完成了第1輪次的迭代,如圖5-8(c)所示。對于圖5-8(c)的劃分結(jié)果,計算出當(dāng)前2個類別中的中心點,如圖5-8(d)中的2個三角形所示,此時2個類別的中心的位置發(fā)生了變化。按照新的中心,對數(shù)據(jù)重新進行劃分,得到圖5-13(e)的劃分結(jié)果。多次按照圖5-8(c)~圖5-8(d)進行操作,最終得到圖5-8(f)的結(jié)果。圖5-13k-Means算法對二維數(shù)據(jù)集的聚類過程知識準(zhǔn)備—3.k-Means模型根據(jù)前面對k-Means算法的了解,可知k-Means模型的建立具有三個核心要素:①k值的選擇。②距離度量的選擇。③初始中心點的選擇。聚類是無監(jiān)督學(xué)習(xí)方法,由于它不借助外部信息(如類標(biāo)),因此選擇不同的k值,得到的結(jié)果也必然不同。k-Means算法的初始中心點是隨機選擇的,可能會造成聚類結(jié)果不穩(wěn)定、迭代次數(shù)過多、資源消耗大、陷入局部最佳解等問題。k-Means算法默認(rèn)使用歐氏距離,歐氏距離的計算基于樣本的每個特征的尺度一致。但是,若樣本的某些特征的尺度遠高于其他特征時,則會導(dǎo)致計算的距離結(jié)果向尺度較高的特征傾斜。在用k-Means算法進行數(shù)據(jù)聚類時,選擇合適的k值、初始中心點及距離度量能夠有效保障聚類效果。知識準(zhǔn)備—3.k-Means模型1)k值的選擇k-Means模型的建立需要考慮k值的選擇,由于k-Means模型的建立不借助類標(biāo)簽,不同的k值會對模型建立結(jié)果產(chǎn)生較大的影響。k值的選擇有幾種常用的方法:經(jīng)驗法、肘部法則(ElbowMethod)、間隔統(tǒng)計量(GapStatistic)法、輪廓系數(shù)(SilhouetteCoefficient)法和Canopy算法。k-Means算法以最小化樣本與質(zhì)點平方誤差作為目標(biāo)

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

由于聚類不借助外部信息(如類標(biāo))來完成數(shù)據(jù)的歸類,聚類模型中參數(shù)的設(shè)定不同會得到不同的聚類結(jié)果。在沒有先驗知識的情況下,需要使用聚類指標(biāo)對聚類結(jié)果的有效性進行評估,常用的一些聚類有效性評估指標(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ù)進行分類,然后使用數(shù)據(jù)標(biāo)簽和調(diào)整蘭德指數(shù)指標(biāo)對模型的聚類效果進行評估,最后使用Python中的matplotlib工具對評估結(jié)果可視化,以便更好地觀察模型表現(xiàn)。任務(wù)情景由于生成的數(shù)據(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é)果進行評估。聚類有效性指標(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)是真實標(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é)果進行計算以評估算法的有效性。下面介紹幾種常見的聚類有效性指標(biāo)。知識準(zhǔn)備知識準(zhǔn)備-1.聚類有效性指標(biāo)(1)輪廓系數(shù)指標(biāo)。輪廓系數(shù)指標(biāo)利用樣本點的類分離度與樣本點的類緊密度構(gòu)造輪廓系數(shù),通過整體取平均獲取最終指標(biāo)值。設(shè)一個包含n個對象的數(shù)據(jù)集被聚類算法分成k個子集Ci(i=1,2,…,k),數(shù)據(jù)集中某一個樣本t的輪廓系數(shù)的計算公式為式中,a(t)、b(t)的計算公式分別為式(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ù)點之間的平均距離;為聚類結(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ù)對象真實分布信息構(gòu)建的參考模型,從而評估聚類結(jié)果的質(zhì)量與聚類算法的性能。給定一個數(shù)據(jù)集,n表示數(shù)據(jù)集的樣本數(shù)。數(shù)據(jù)集的真實類別中有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的計算公式為(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é)果和真實標(biāo)簽之間的相似度。蘭德指數(shù)的問題在于對于兩個隨機的數(shù)據(jù)劃分結(jié)果,其蘭德指數(shù)不是一個接近于0的常數(shù)。Hubert和Arabie在1985年提出了調(diào)整蘭德指數(shù),其計算公式為(5-15)(4)雅卡爾系數(shù)(JaccardCoefficient,JC)指標(biāo)。(5-16)知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集前面已經(jīng)用過sklearn庫中的datasets模塊自帶的數(shù)據(jù)集,但在多數(shù)情況下,我們需要自定義生成一些特殊形狀的用于算法的測試和驗證數(shù)據(jù)集。sklearn庫提供了多種隨機樣本數(shù)據(jù)生成器,可以用于建立復(fù)雜的人工數(shù)據(jù)集。下面介紹幾種簡單的人工數(shù)據(jù)集生成函數(shù)。1)make_blobs()函數(shù)make_blobs()函數(shù)用于產(chǎn)生多類單標(biāo)簽數(shù)據(jù)集,它為每個類分配服從一個或多個正態(tài)分布的點集,有助于更好地控制聚類中心

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

知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集課堂隨練5-7通過make_blobs()函數(shù)生成一個樣本總數(shù)為1500、簇個數(shù)為3的二維數(shù)據(jù)集,并通過二維圖表進行顯示。make_blobs()函數(shù)中的n_samples為生成的樣本總數(shù);n_features為所有樣本的維度;centers為產(chǎn)生的中心點的數(shù)量(即產(chǎn)生的簇的數(shù)量);cluster_std為聚簇的標(biāo)準(zhǔn)差;random_state為隨機種子,用于決定數(shù)據(jù)集創(chuàng)建過程中隨機數(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ù)集,它為每個類分配服從一個或多個(每個維度)正態(tài)分布的點集,提供為數(shù)據(jù)添加噪聲的方式,包括利用維度相關(guān)性、無效特征(隨機噪聲)及冗余特征等。課堂隨練5-8通過make_classification()函數(shù)生成一個樣本總數(shù)為1500、簇個數(shù)為3的二維數(shù)據(jù)集,并通過二維圖表進行顯示。知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集圖5-21用make_classification()函數(shù)生成的數(shù)據(jù)集圖5-20用make_blobs()函數(shù)生成的數(shù)據(jù)集知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集3)make_circles()函數(shù)make_circles()函數(shù)用于產(chǎn)生一個環(huán)狀二分類單標(biāo)簽數(shù)據(jù)集。它可以生成帶有球面決策邊界的數(shù)據(jù),可以選擇性加入高斯噪聲,用于可視化聚類和分類算法。課堂隨練5-9通過make_circles()函數(shù)生成一個樣本總數(shù)為1000、雙環(huán)形的二維數(shù)據(jù)集,并通過二維圖表進行顯示。make_circles()函數(shù)中的n_samples為生成的樣本總數(shù),factor為內(nèi)、外圓之間的比例因子,noise為加入的高斯噪聲的標(biāo)準(zhǔn)差。用make_circles()函數(shù)生成的雙環(huán)形數(shù)據(jù)集如圖5-22所示。知識準(zhǔn)備知識準(zhǔn)備-2.生成數(shù)據(jù)集圖5-22用make_circles()函數(shù)生成的雙環(huán)形數(shù)據(jù)集知識準(zhǔn)備知識準(zhǔn)備-3.測試聚類模型使用sklearn.cluster.KMeans中的predict()函數(shù)對聚類結(jié)果進行預(yù)測,可以通過訓(xùn)練數(shù)據(jù)進行測試

。課堂隨練5-10假設(shè)訓(xùn)練集為X={x1,x2,…,xn},訓(xùn)練集標(biāo)簽為Y={y1,y2,…,yn},模型為k-Means(已訓(xùn)練)。蘭德指數(shù)可以用來比較聚類結(jié)果和真實標(biāo)簽之間的相似度。蘭德指數(shù)的計算方法是先將樣本兩兩配對,然后計算配對中真實標(biāo)簽和聚類結(jié)果相同的比例。調(diào)整蘭德指數(shù)通過對蘭德指數(shù)的調(diào)整,得到獨立于樣本數(shù)據(jù)量和類別的接近于0的值,其取值范圍為[-1,1],負(fù)數(shù)代表結(jié)果不好,越接近于1,結(jié)果越好,也意味著聚類結(jié)果與真實情況吻合。sklearn庫提供了metrics.cluster.adjusted_rand_score()函數(shù),用于對聚類結(jié)果進行評估。知識準(zhǔn)備知識準(zhǔn)備-4.三維圖表展示為了能夠從更多維度觀察數(shù)據(jù)的聚類效果,使用mpl_toolkits.mplot3d工具包生成三維圖,使用Axes3D.scatter()函數(shù)實現(xiàn)數(shù)據(jù)點在三維空間中的展示。課堂隨練5-12使用Axes3D.scatter()函數(shù)生成三維圖。知識準(zhǔn)備知識準(zhǔn)備-3.測試聚類模型圖5-23生成數(shù)據(jù)的三維展示任務(wù)實施Step1:采用訓(xùn)練集的原標(biāo)簽,使用調(diào)整蘭德指數(shù)指標(biāo)對聚類結(jié)果進行評估。圖5-24聚類評估指標(biāo)值任務(wù)實施Step2:選擇鳶尾花數(shù)據(jù)的2、3、4維度上的特征,對k-Means算法的聚類結(jié)果進行三維展示。圖5-25鳶尾花數(shù)據(jù)聚類結(jié)果的三維展示任務(wù)拓展糖尿病數(shù)據(jù)集預(yù)測任務(wù)和糖尿病數(shù)據(jù)集請從華信教育資源網(wǎng)該書配套資源處下載。通過本任務(wù)的實施,讀者可以搭建k-Means模型,實現(xiàn)對人員是否患病的歸類。K=3K=11單元6線性回歸機器學(xué)習(xí)電氣與信息工程系CONTENTS

目錄010203任務(wù)6.1房價數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理

任務(wù)6.2訓(xùn)練線性回歸模型任務(wù)6.3模型評估引例描述

房價可以說是當(dāng)下民生問題中最引人關(guān)注的話題,現(xiàn)在也有眾多專家通過多種手段預(yù)測房價。對于學(xué)習(xí)機器學(xué)習(xí)的我們,有沒有一種方法可以讓電子計算機去預(yù)測房價呢?通過街區(qū)住戶的收入、房型、街區(qū)人口、入住率等因素來預(yù)測這個街區(qū)的房價,這時,我們不能使用傳統(tǒng)的分類算法來預(yù)測,因為我們想要得到的是連續(xù)的結(jié)果,本單元通過一種經(jīng)典的回歸模型——線性回歸模型來帶大家了解回歸問題的解決方法。圖6-1所述為情景描述。(a)(b)(a:想買房子,不知道明年的房價怎么樣呢?b:我用回歸模型幫你預(yù)測一下吧?。﹫D6-1情景描述任務(wù)6.1房價數(shù)據(jù)集導(dǎo)入與數(shù)據(jù)預(yù)處理任務(wù)情景

加利福尼亞房價數(shù)據(jù)集是sklearn庫自帶的一個經(jīng)典的房價數(shù)據(jù)集,本任務(wù)旨在成功讀取、導(dǎo)入數(shù)據(jù)集,查看數(shù)據(jù)集中數(shù)據(jù)的特征、大小,以及熟練劃分?jǐn)?shù)據(jù)集。

加利福尼亞房價數(shù)據(jù)集源于1990年加州人口普查的數(shù)據(jù),一共包含20

640條房屋數(shù)據(jù),包括以下8個特征:(1)MedInc:街區(qū)住戶收入的中位數(shù)。(2)HouseAge:房屋使用年數(shù)的中位數(shù)。(3)AveRooms:街區(qū)平均房屋的數(shù)量。(4)AveBedrms:街區(qū)平均的臥室數(shù)目。(5)'Population:街區(qū)人口。(6)AveOccup:平均入住率。(7)Latitude:街區(qū)的緯度。(8)Longitude:街區(qū)的經(jīng)度。任務(wù)布置

實現(xiàn)加利福尼亞房價數(shù)據(jù)集的讀取與解析,要求能夠讀取數(shù)據(jù)的條數(shù)與矩陣大小,并能夠查看數(shù)據(jù)集的一部分?jǐn)?shù)據(jù)。數(shù)據(jù)集的大小如圖6-2所示。數(shù)據(jù)的前5行如圖6-3所示。圖6-2數(shù)據(jù)集的大小圖6-3數(shù)據(jù)前5行任務(wù)布置數(shù)據(jù)集包含的特征及前5行數(shù)據(jù)如圖6-4所示。圖6-4數(shù)據(jù)集包含的特征及前5行數(shù)據(jù)劃分好的測試集數(shù)據(jù)如圖6-5所示。圖6-5劃分好的測試集數(shù)據(jù)知識準(zhǔn)備1.加利福尼亞房價數(shù)據(jù)集導(dǎo)入

加利福尼亞房價數(shù)據(jù)集可以從sklearn庫直接導(dǎo)入,sklearn庫會自帶一些數(shù)據(jù)集的讀取方式。課堂隨練6-1讀取sklearn庫自帶的鳶尾花數(shù)據(jù)集。知識準(zhǔn)備下載下來的數(shù)據(jù)集的存儲路徑為\Anaconda\Lib\site-packages\sklearn\datasets\data,如圖6-6所示。圖6-6下載下來的數(shù)據(jù)集的存儲路徑知識準(zhǔn)備2)當(dāng)下載的數(shù)據(jù)集較大時,一般不將其直接保存在sklearn庫中,而是采用在線下載的方式,需要聯(lián)網(wǎng)才可以下載,采用datasets.fetch_xxx,使用以下代碼獲取下載路徑:課堂隨練6-2下載加利福尼亞房價數(shù)據(jù)集并查看。知識準(zhǔn)備3)sklearn庫可以使用make_xxx函數(shù)來生成數(shù)據(jù)集,該類函數(shù)適用于多種類型任務(wù),舉例如下:make_blobs函數(shù):多類單標(biāo)簽數(shù)據(jù)集,為每個類分配一個或多個正態(tài)分布的點集。make_classification函數(shù):用于產(chǎn)生多類單標(biāo)簽數(shù)據(jù)集,為每個類分配一個或多個正態(tài)分布的點集,提供為數(shù)據(jù)添加噪聲的方式,包括利用維度相關(guān)性、無效特征及冗余特征等。make_gaussian-quantiles函數(shù):將一個單正態(tài)分布的點集劃分為兩個數(shù)量均等的點集,并將其作為兩類。make_hastie-10-2函數(shù):產(chǎn)生一個相似的二元分類數(shù)據(jù)集

,有10個維度。make_circle函數(shù)和make_moom函數(shù):產(chǎn)生二維二元分類數(shù)據(jù)集,以此測試某些算法的性能,可以為數(shù)據(jù)集添加噪聲,可以為二元分類器產(chǎn)生一些球形判決界面的數(shù)據(jù)。知識準(zhǔn)備課堂隨練6-3使用make_xxx函數(shù)生成數(shù)據(jù)集的訓(xùn)練。知識準(zhǔn)備2.?dāng)?shù)據(jù)集劃分使用train_test_split函數(shù)進行數(shù)據(jù)集的劃分,在機器學(xué)習(xí)訓(xùn)練中,數(shù)據(jù)集一般分為訓(xùn)練集和測試集(有些情況下還存在驗證集),train_test_split是最常用的數(shù)據(jù)集劃分方法。其中,*arrays表示輸入的是列表、數(shù)組等可索引的序列;train_size表示訓(xùn)練樣本的大小,數(shù)值為浮點數(shù)表示占總數(shù)據(jù)集的比例,數(shù)值為整數(shù)表示訓(xùn)練樣本數(shù),數(shù)值為空則表示測試集的補集;test_size表示測試樣本的大小,數(shù)值為浮點數(shù)表示占總數(shù)據(jù)集的比例,數(shù)值為整數(shù)表示測試樣本數(shù),數(shù)值為空則表示訓(xùn)練集的補集;知識準(zhǔn)備random_state表示隨機種子,也就是該組隨機數(shù)的編號,在需要重復(fù)試驗的時候,保證得到一組一樣的隨機數(shù)。例如,我們本次試驗和下次代碼循環(huán)到這個位置的時候都想要一樣的隨機數(shù),那就每次都將隨機數(shù)設(shè)置為一樣的值,默認(rèn)值為False,即雖然每次切分的比例相同,但是切分的結(jié)果不同。stratify的設(shè)置是為了保持劃分前數(shù)據(jù)的分布,若stratify的值為None,則在劃分出來的測試集或訓(xùn)練集中,類標(biāo)簽所占的比例是隨機的;若stratify的值不為None,則劃分出來的測試集或訓(xùn)練集中類標(biāo)簽所占的比例同輸入的數(shù)組中類標(biāo)簽所占的比例相同,該設(shè)置可以用于處理不均衡的數(shù)據(jù)集。任務(wù)實施Step1:導(dǎo)入庫,并導(dǎo)入數(shù)據(jù)集fetch_california_housing。Step2:將數(shù)據(jù)集讀取到DataFrame中,以便查看。Step3:查看一些數(shù)據(jù)集的內(nèi)容。Step4:劃分測試集與訓(xùn)練集。任務(wù)實施(a)數(shù)據(jù)集下載地址讀取數(shù)據(jù)集如圖6-7所示。(b)數(shù)據(jù)集內(nèi)容展示圖6-7讀取數(shù)據(jù)集任務(wù)6.2訓(xùn)練線性回歸模型任務(wù)情景線性回歸模型是機器學(xué)習(xí)中最簡單的回歸模型,是所有回歸模型的基礎(chǔ)。分類問題的目標(biāo)是得到離散型的類別,回歸問題的目標(biāo)是得到連續(xù)的目標(biāo)值,如預(yù)測銷售額、房價等。本任務(wù)旨在使讀者了解線性回歸模型的原理、搭建過程,并使讀者學(xué)會使用sklearn庫自帶的函數(shù)搭建線性回歸模型,訓(xùn)練加利福尼亞房價數(shù)據(jù)集,預(yù)測房價并展示。加利福尼亞房價數(shù)據(jù)集如圖6-8所示。圖6-8加利福尼亞房價數(shù)據(jù)集任務(wù)布置

要求通過建立線性回歸模型來預(yù)測測試樣本值,并輸出線性回歸模型的回歸系數(shù)和截距。圖6-9測試樣本的預(yù)測結(jié)果

線性加強歸模型的回歸系數(shù)如圖6-10所示。圖6-10線性加強歸模型的回歸系數(shù)知識準(zhǔn)備—1.線性回歸的原理1.線性回歸的原理1)一元線性回歸的原理一元線性回歸的原理與初中學(xué)過的一元一次方程類似,設(shè)x和y為兩個變量,假設(shè)y受x變量的影響,其之間的關(guān)系為式中,w為回歸系數(shù);b為截距?;貧w的典型例子就是給定數(shù)據(jù)點,擬合出最佳的曲線,這種只包含一個自變量x的模型被稱為一元線性回歸模型,如圖6-11所示。圖6-11一元線性回歸模型(6-1)2)多元線性回歸的原理多元線性回歸研究的是一個因變量與多個自變量之間的關(guān)系,多元線性回歸函數(shù)的計算公式為(6-2)知識準(zhǔn)備—1.線性回歸的原理知識準(zhǔn)備—2.模型評估2.模型評估如何根據(jù)多個樣本

來確定線性回歸模型的w和b呢?線性回歸模型示例如圖6-12所示,對于平面中的n個點可以有無數(shù)條直線來對它們進行擬合,如何選出最合適的直線是我們需要考慮的問題。圖6-12線性回歸模型示例知識準(zhǔn)備線性回歸模型的預(yù)測可以通過殘差來評估,線性回歸模型殘差示例如圖6-13所示。圖6-13線性回歸模型殘差示例知識準(zhǔn)備—2.模型評估知識準(zhǔn)備假設(shè)選取圖6-12中的一條擬合直線,線上連續(xù)的值為預(yù)測值,那么該點的,擬合誤差的計算公式為擬合誤差為因此,最佳的擬合直線應(yīng)該是使所有樣本總的擬合誤差最小的直線,所有點的殘差可以表示為,殘差總和被定義為模型的損失(Loss)。代價函數(shù)/代價函數(shù)(LossFunction/CostFunction)用于表示模型的預(yù)測值和真實值不一致的程度,其計算公式為(6-3)(6-4)知識準(zhǔn)備—2.模型評估知識準(zhǔn)備(6-3)注意:由式(6-3)發(fā)現(xiàn),殘差是有符號的。在選定直線上方的點,它的殘差總是正的;而在直線下方的點,它的殘差總是負(fù)的。如果將殘差簡單地相加,那么正的殘差和負(fù)的殘差就會相互抵消,這樣做的話,有可能每個樣本單獨的殘差都很大,而計算得到的殘差的和卻很小。這樣的直線顯然不滿足我們的預(yù)期,因此代價函數(shù)的值應(yīng)該是一個非負(fù)數(shù),那么我們很容易想到可以使用絕對值來消除殘差中符號的影響。用殘差絕對值的和作為代價函數(shù),可以避免正負(fù)誤差相互抵消的問題。知識準(zhǔn)備—2.模型評估知識準(zhǔn)備用殘差絕對值的和表示的損失函數(shù)為但是,求殘差和的最小值是一個求最值的問題。在求函數(shù)的最值時,一般要進行求導(dǎo)運算,而絕對值是不利于求導(dǎo)運算的。為了消除絕對值運算,可以將式(6-5)中的絕對值改為平方,使得所有樣本點的殘差平方和最小。用殘差平方和表示的損失函數(shù)為(6-6)(6-5)知識準(zhǔn)備—2.模型評估知識準(zhǔn)備經(jīng)常將代價函數(shù)寫為式中,m為訓(xùn)練集的數(shù)量;為x的i個元素;

為y的第i個元素;為第i個預(yù)測值,注意:有時部分版本也為了方便求導(dǎo)運算,直接在Loss前面加上1/2。(6-7)知識準(zhǔn)備—2.模型評估知識準(zhǔn)備(6-6)式(6-6)稱為平方和代價函數(shù),是機器學(xué)習(xí)中最常見的代價函數(shù)。平方和代價函數(shù)示意圖如圖6-14所示。圖6-14平方和代價函數(shù)示意圖知識準(zhǔn)備—2.模型評估知識準(zhǔn)備—3.最小二乘法求解回歸模型3.最小二乘法求解回歸模型下面采用最小二乘法計算w和b,假設(shè)給定一組樣本值

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論