《人工智能概論》 課件 第三章 機(jī)器學(xué)習(xí)算法_第1頁(yè)
《人工智能概論》 課件 第三章 機(jī)器學(xué)習(xí)算法_第2頁(yè)
《人工智能概論》 課件 第三章 機(jī)器學(xué)習(xí)算法_第3頁(yè)
《人工智能概論》 課件 第三章 機(jī)器學(xué)習(xí)算法_第4頁(yè)
《人工智能概論》 課件 第三章 機(jī)器學(xué)習(xí)算法_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《人工智能概論》第三章機(jī)器學(xué)習(xí)算法目

錄CONTENT01回歸02聚類分類0304集成學(xué)習(xí)機(jī)器學(xué)習(xí)是一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科,專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能。它是人工智能核心,是使計(jì)算機(jī)具有智能的根本途徑。究竟什么是機(jī)器學(xué)習(xí)呢?我們還是要從計(jì)算機(jī)的發(fā)展歷史來(lái)看,這樣我們就能更直觀地理解機(jī)器學(xué)習(xí)。首先機(jī)器學(xué)習(xí)是計(jì)算機(jī)技術(shù)的一個(gè)領(lǐng)域。計(jì)算機(jī)俗稱電腦,是電子的大腦,這個(gè)名字也寓意著人們希望計(jì)算機(jī)能從事一些腦力勞動(dòng)。我們來(lái)看一下人們利用計(jì)算機(jī)解決問(wèn)題的一個(gè)發(fā)展歷程,如圖所示。(a)利用機(jī)器求解(早期)(b)利用機(jī)器求解(早期)(c)利用機(jī)器求解(中期)(d)利用機(jī)器求解(中期)(e)利用機(jī)器求解(當(dāng)前)利用機(jī)器求解問(wèn)題的不同階段從圖中可以看到,隨著技術(shù)的發(fā)展,人們對(duì)計(jì)算機(jī)的要求也越來(lái)越高。于是,機(jī)器學(xué)習(xí)自然而然出現(xiàn)了。機(jī)器學(xué)習(xí)簡(jiǎn)而言之,就是讓機(jī)器具有學(xué)習(xí)的能力,能自己從數(shù)據(jù)中總結(jié)規(guī)則、規(guī)律并應(yīng)用的技術(shù)。從應(yīng)用的需求來(lái)分類的話,機(jī)器學(xué)習(xí)可以分為分類、聚類和回歸。從學(xué)習(xí)方式來(lái)分類的話,機(jī)器學(xué)習(xí)可以分為有監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)。從智能的理解和現(xiàn)實(shí)問(wèn)題的解決方法演變,機(jī)器學(xué)習(xí)又可分為符號(hào)主義、貝葉斯、聯(lián)結(jié)主義、進(jìn)化主義、行為類推主義五大流派。機(jī)器學(xué)習(xí)分類的方案非常多,每一種分類都不是絕對(duì)的,都會(huì)有很多交叉的內(nèi)容。機(jī)器學(xué)習(xí)的內(nèi)容非常多,限于篇幅所限,本章只能介紹一些常用的機(jī)器學(xué)習(xí)算法。PART【例3.1】張大三對(duì)兒子張小三說(shuō):你如果考試不及格,壓歲錢就沒(méi)有啦。你如果考了80分,壓歲錢有20元。如果考了90分,壓歲錢有30元?,F(xiàn)在你考了95分,壓歲錢有多少?張小三說(shuō):我會(huì)呀。設(shè)x為分?jǐn)?shù),y為壓歲錢。假設(shè)y=ax+b,則有0=a*60+b,20=a*80+b,30=a*90+b。解出a=1,

b=-60后,代入x=95就可以得到y(tǒng)=35了。張大三:說(shuō)對(duì)的。實(shí)際上我們也可以用機(jī)器學(xué)習(xí)的方法自動(dòng)找到這個(gè)規(guī)律。sklearn包中的LinearRegression(線性回歸模型)就可以很輕松地完成這件事情。只要告訴它x和y,它就會(huì)自動(dòng)地尋找x和y之間的線性關(guān)系。代碼如下:【例3.2】張大三又對(duì)兒子張小三說(shuō):你如果考試不及格,壓歲錢就沒(méi)有啦。你如果數(shù)學(xué)考了80分,語(yǔ)文考了80分,壓歲錢有20元。如果數(shù)學(xué)90分,語(yǔ)文85分,壓歲錢有30元。如果數(shù)學(xué)85分,語(yǔ)文90分,壓歲錢有35元。如果數(shù)學(xué)90分,語(yǔ)文90分,壓歲錢有40元。現(xiàn)在你數(shù)學(xué)95分,語(yǔ)文95分,壓歲錢有多少?張小三說(shuō):這個(gè)有點(diǎn)難,大概應(yīng)該是:設(shè)x1、x2為數(shù)學(xué)和語(yǔ)文分?jǐn)?shù),y為壓歲錢,假設(shè)y=a1x1+a2x2+b。做著做著,張小三說(shuō):這個(gè)好像解不出來(lái)呀?方程無(wú)解。張大三說(shuō):那你能大致估計(jì)一下你的壓歲錢嗎?張小三說(shuō):大致的也不好估計(jì)。張大三說(shuō):讓機(jī)器學(xué)習(xí)算法linear

regression顯威力,代碼如下,基本相同的代碼(除了x、y的值變了),這一回又輕松計(jì)算出了張小三的壓歲錢。張小三說(shuō):linearregression真強(qiáng)大呀。線性回歸(Linear

Regression):在統(tǒng)計(jì)學(xué)中,線性回歸是利用稱為線性回歸方程的最小二乘函數(shù)對(duì)一個(gè)或多個(gè)自變量和因變量之間關(guān)系進(jìn)行建模的一種回歸分析。這種函數(shù)是一個(gè)或多個(gè)稱為回歸系數(shù)的模型參數(shù)的線性組合。只有一個(gè)自變量的情況稱為一元回歸(見(jiàn)圖3.2),大于一個(gè)自變量情況的叫作多元回歸(MultivariableLinearRegression)。一元線性回歸(即找出一條直線到所有點(diǎn)誤差平方和最?。┮阎猉=[x1,x2,…,xn],

Y=[y1,y2,…,yn],其中xi可以是高維向量,則線性回歸即為找到一個(gè)線性方程y=wx+b,使得式(3.1)所定義的誤差最小,其中yi^是預(yù)測(cè)值(3.1)針對(duì)此問(wèn)題,可以采用梯度下降法、極值點(diǎn)導(dǎo)數(shù)為零等方法求解。為簡(jiǎn)化計(jì)算,可以令x*=[x;

1],

w*=[w,

b],則y=w*x*。那么Y=w*X*。w*=YX*-1,即通過(guò)將x升維,簡(jiǎn)化表達(dá)形式,然后矩陣求逆/偽逆,也可以求得系數(shù)矩陣。各位感興趣的同學(xué)可以自行查閱資料?!纠?.3】張小三高興地告訴他朋友李小四,他學(xué)習(xí)了線性回歸模型,好強(qiáng)大呀。李小四說(shuō),真的嗎,我這有道物理題:已知物體大致為勻加速運(yùn)動(dòng),時(shí)間t=0s、位移s=0m,時(shí)間t=5s、位移s=10m,時(shí)間t=10s、位移s=30m,問(wèn)t=20s時(shí)刻位移是多少?張小三想了想說(shuō):線性回歸模型只能處理線性的。在這里s和t是非線性的關(guān)系,線性回歸模型處理不了這類問(wèn)題。張大三聽(tīng)見(jiàn)了笑著說(shuō):兒子,非線性的也可以轉(zhuǎn)成線性的哦。張小三說(shuō):好神奇呀。張大三說(shuō):你想一想人們?cè)诮鉀Q大部分?jǐn)?shù)學(xué)問(wèn)題時(shí),實(shí)際上最后都是做加減乘除。而乘除法又由加減法得到,減法又可以由加法得到。所以非線性問(wèn)題可以轉(zhuǎn)成線性問(wèn)題也是件很正常的事情。代碼如下:【例3.4】張小三說(shuō):線性回歸這么強(qiáng)大,以后拿到數(shù)據(jù),我就直接套用它來(lái)訓(xùn)練和預(yù)測(cè)。一技在手,走遍天下都不怕。張大三說(shuō):那可不行。沒(méi)有一個(gè)模型能夠適用所有數(shù)據(jù)。張小三說(shuō):那我怎么知道這個(gè)模型適不適合我的數(shù)據(jù)呢?張大三說(shuō):科學(xué)家研究出多個(gè)指標(biāo),用來(lái)描述線性回歸模型適不適合數(shù)據(jù)。其中有一個(gè)指標(biāo)稱作R2

Score=D(y_predict)/D(y)。式中y_predict表示預(yù)測(cè)的y值,D表示方差,即預(yù)測(cè)的y值的方差與真實(shí)的y值的方差的比。如果預(yù)測(cè)完全沒(méi)有誤差,則有R2

Score=1。如果完全沒(méi)法預(yù)測(cè),那么R2

Score會(huì)非常小。所以我們可以通過(guò)R2

Score來(lái)判斷y和x之間有沒(méi)有關(guān)系。代碼如下:代入前面幾個(gè)數(shù)據(jù),我們發(fā)現(xiàn)算出的R2

Score都接近于1,這就表示它們之間確實(shí)存在線性關(guān)系。張大三說(shuō):科學(xué)家還發(fā)明了很多變形的算法,例如嶺回歸(式3.2)、lasso回歸(式3.3)等,用來(lái)尋找自變量和因變量之間的線性關(guān)系。(3.2)(3.3)嶺回歸和lasso回歸都加入正則項(xiàng)/懲罰項(xiàng),希望能去除無(wú)關(guān)的因素(即系數(shù)為0)。Ridge回歸的正則項(xiàng)/懲罰項(xiàng)是L2范數(shù),而Lasso回歸的正則項(xiàng)/懲罰項(xiàng)是L1范數(shù)。Lasso回歸會(huì)使盡可能多的系數(shù)等于0,有助于降低模型復(fù)雜度和多重共線性。Ridge回歸在不拋棄任何一個(gè)特征的情況下,縮小了回歸系數(shù),使得模型相對(duì)而言比較穩(wěn)定,但與Lasso回歸相比,這會(huì)使得模型的特征留得特別多,模型解釋性差。運(yùn)行結(jié)果:在此實(shí)驗(yàn)中,X包含100個(gè)10維樣本,變量y與x0、x1、x2相關(guān),且加入一些小的噪聲。我們采用了不同的回歸算法,其代碼和結(jié)果如上,可以看到在Lasso

regression中,大量系數(shù)都是0,這就可以去除無(wú)關(guān)的因素。小結(jié)事實(shí)上,只要對(duì)變量做取對(duì)數(shù)、取指數(shù)、開(kāi)方、立方等處理,線性回歸也可以自動(dòng)尋找到各種各樣的非線性關(guān)系。每次運(yùn)用完線性回歸模型之后。我們要仔細(xì)觀察一下回歸的系數(shù)及截距,這些變量揭示了數(shù)據(jù)中一些很重要的規(guī)律。例如當(dāng)回歸系數(shù)接近于零時(shí),表示對(duì)應(yīng)的特征對(duì)y沒(méi)有作用,因此,就可以把這一維特征去掉,重新計(jì)算線性回歸模型。如此多次迭代,得到最終模型。線性規(guī)劃模型還有非常多的變形,如logistic回歸、嶺回歸、lasso回歸等,每種算法都有不同的應(yīng)用場(chǎng)合。PART【例3.5】張大三對(duì)張小三和李小四說(shuō)。你知道雞、狗、狼、狐貍、羊、鴨、牛、馬、鵝,駱駝這幾種動(dòng)物要聚成三類,應(yīng)該是什么樣的嗎?張小三和李小四都搶著回答:這個(gè)我知道,狗、狼、狐貍是一類;雞、鴨、鵝是一類;牛、馬、羊、駱駝是一類。張大三又問(wèn):那你們?yōu)槭裁催@樣聚類呢?張小三說(shuō):我把像狗的都聚在一起,像雞的聚在一起,像馬的聚在一起,就成了這三類。李小四說(shuō):我首先覺(jué)得鴨和鵝很像。我把它們兩個(gè)當(dāng)成一類。接下來(lái)我覺(jué)得狗和狼非常像,我把它們也當(dāng)成一類。然后我覺(jué)得狐貍和狗、狼比較像,于是狐貍和狗、狼三種動(dòng)物聚成一類。重復(fù)這個(gè)過(guò)程我就得到了這三類。張大三很高興地說(shuō):你們兩個(gè)都是聰明的孩子?!纠?.6】張大三又對(duì)張小三和李小四說(shuō),今天教你一些新的機(jī)器學(xué)習(xí)算法,首先,你知道下面這些點(diǎn)應(yīng)該聚成幾類嗎?每一類應(yīng)該包含哪些點(diǎn)?你能找到規(guī)律嗎?[6.24,8.57],[-3.2,-0.88],[-2.7,0.45],[7.06,5.51],[7.5,6.18],[8.98,7.79],[-0.3,5.05],[6.61,7.3],[-3.56,0.06],[0.47,2.62],

[-3.44,2.19],[0.74,3.81],[-5.37,0.01],[-5.21,-0.5],[1.9,5.87],[-4.95,-0.01],[0.97,3.69],[0.93,3.54],[6.94,6.9],

[1.07,3.76]張小三和李小四說(shuō)有點(diǎn)眼花。張大三說(shuō):那你可以把它們畫出來(lái)看看有什么規(guī)律?!纠?.6】張小三說(shuō):好的,那我畫出來(lái)。當(dāng)張小三畫出來(lái)之后說(shuō),我覺(jué)得應(yīng)該聚成三類,如圖所示。點(diǎn)的聚類李小四撓了撓頭說(shuō):如果數(shù)據(jù)再多點(diǎn),維度再高點(diǎn),就畫不出來(lái),就不知道怎么聚類嘍。那時(shí)候應(yīng)該怎么辦呢?張大三說(shuō):針對(duì)這個(gè)簡(jiǎn)單數(shù)據(jù),你為什么聚成三類呢?回憶一下你們剛才怎么對(duì)動(dòng)物進(jìn)行聚類的呢?張小三說(shuō):我好像明白一點(diǎn)點(diǎn)了,但還不是特別清楚?!纠?.6】張大三說(shuō):我們可以根據(jù)剛才你們對(duì)動(dòng)物聚類的想法(見(jiàn)下圖),讓機(jī)器自己學(xué)習(xí)數(shù)據(jù)的規(guī)律并聚類。張小三的聚類思想:選取中心,然后聚類李小四的聚類思想:每次把最近的兩類聚合在一起【例3.6】張小三說(shuō):如果是動(dòng)物,我覺(jué)得可以找到每一類的代表。但如果說(shuō)是平面上的一群點(diǎn),怎么找到代表呢?李小四說(shuō):能不能用這群點(diǎn)的中心去代表它們呢?張小三說(shuō):那在開(kāi)始階段怎么知道哪一堆點(diǎn)是一類呢?李小四撓撓頭說(shuō):嗯,這個(gè)我也不知道啦。張大三說(shuō):實(shí)際上我們可以采用迭代不斷修正的方式來(lái)解決這個(gè)問(wèn)題。首先我們隨機(jī)選幾個(gè)代表點(diǎn),然后把其他點(diǎn)歸入這幾個(gè)代表點(diǎn),這樣每個(gè)點(diǎn)就有了類別。然后我們讓每一類點(diǎn)重新選舉它們的代表點(diǎn)。不斷重復(fù)這個(gè)過(guò)程就好了??茖W(xué)家已經(jīng)開(kāi)發(fā)出相應(yīng)的機(jī)器學(xué)習(xí)算法,可以學(xué)習(xí)各種各樣的數(shù)據(jù)聚類,而不用人們自己去手動(dòng)寫規(guī)則。接下來(lái)讓我們看看吧。首先我們做一些數(shù)據(jù)集來(lái)為后續(xù)的實(shí)驗(yàn)做準(zhǔn)備。由于篇幅所限,這里僅介紹兩個(gè)在本章中比較重要的數(shù)據(jù)集,其他的數(shù)據(jù)集由大家自己去測(cè)試。列名說(shuō)明類型SepalLength花萼長(zhǎng)度f(wàn)loatSepalWidth花萼寬度f(wàn)loatPetalLength花瓣長(zhǎng)度f(wàn)loatPetalWidth花瓣寬度f(wàn)loatClass類別變量。0表示山鳶尾,1表示變色鳶尾,2表示維吉尼亞鳶尾int(1)模擬數(shù)據(jù)集k6:采用make_blobs函數(shù)來(lái)生成100個(gè)樣本,每個(gè)樣本維度為5,一共6類。(2)sklearn中內(nèi)置小型數(shù)據(jù)庫(kù)——鳶尾花數(shù)據(jù)集Iris(見(jiàn)表):這是一個(gè)很常用的數(shù)據(jù)集,在此數(shù)據(jù)集中它有3個(gè)類別,分別是山鳶尾(Iris-setosa)、雜色鳶尾(Iris-versicolor)和維吉尼亞鳶(Iris-virginica);4個(gè)特征,分別是萼片和花瓣的長(zhǎng)度、寬度,類型都是float類型。鳶尾花數(shù)據(jù)集總共有150樣本。Iris數(shù)據(jù)集接下來(lái),我們給出一個(gè)畫出樣本類別分布圖的函數(shù)PlotClusters,代碼如下:(a)k6數(shù)據(jù)集前2維特征分布圖(b)Iris數(shù)據(jù)集前2維特征分布圖數(shù)據(jù)集k6與Iris的特征分布圖1.

K-Means聚類算法的思想與原理1976年,J.B.MacQueen提出的K-Means算法是目前為止在工業(yè)和科學(xué)應(yīng)用中一種極有影響的聚類技術(shù)。此外,K-Means算法是一種常用于劃分的聚類分析方法,這種聚類方法的目標(biāo)就是根據(jù)輸入的參數(shù)k,把數(shù)據(jù)對(duì)象自動(dòng)聚成k個(gè)簇。該算法的基本思想是:首先,指定需要?jiǎng)澐值拇氐膫€(gè)數(shù)k值;接著,隨機(jī)選取k個(gè)初始點(diǎn)作為最開(kāi)始的類代表點(diǎn)/類中心;隨后,計(jì)算各個(gè)數(shù)據(jù)對(duì)象到這k個(gè)類代表點(diǎn)/類中心的距離,把數(shù)據(jù)對(duì)象歸到離自身最近的類代表點(diǎn)所在的簇類;最后,調(diào)整新類并計(jì)算出新類代表點(diǎn)/類中心,如果兩次計(jì)算出來(lái)的聚類一樣,就可以說(shuō)明數(shù)據(jù)對(duì)象調(diào)整過(guò)程已經(jīng)結(jié)束,即聚類所用準(zhǔn)則函數(shù)收斂,算法結(jié)束。1.

K-Means聚類算法的思想與原理K-Means的聚類過(guò)程如下圖所示?!啊痢笔穷惔睃c(diǎn)/類中心。(a)是原始的數(shù)據(jù)點(diǎn)。(b)中隨機(jī)選了兩個(gè)聚類代表點(diǎn)。(d)是最終穩(wěn)定的聚類中心與結(jié)果。K-Means聚類的可視化過(guò)程1.

K-Means聚類算法的思想與原理調(diào)用sklearn的KMeans,代碼如下,結(jié)果如圖所示。(a)k6數(shù)據(jù)集聚類結(jié)果(KMeans)(b)Iris數(shù)據(jù)集聚類結(jié)果(KMeans)k6數(shù)據(jù)集和Iris數(shù)據(jù)集聚類結(jié)果(K-Means聚類)2.層次聚類算法的思想層次聚類(

Hierarchical

Clustering)是聚類算法的一種,通過(guò)計(jì)算不同類別的相似度類創(chuàng)建一個(gè)有層次的嵌套的樹。假設(shè)有n個(gè)待聚類的樣本,對(duì)于層次聚類算法,它的算法是:(a)k6數(shù)據(jù)集聚類結(jié)果(Agglomerative)調(diào)用sklearn的AgglomerativeClustering,代碼如下,結(jié)果如圖所示。(b)Iris數(shù)據(jù)集聚類結(jié)果(Agglomerative)k6數(shù)據(jù)集和Iris數(shù)據(jù)集聚類結(jié)果(層次聚類)2.層次聚類算法的思想方法名稱參數(shù)可擴(kuò)展性應(yīng)用場(chǎng)景幾何關(guān)系(使用的度量)K-Means簇的數(shù)量適用于非常大的樣本數(shù),中等數(shù)量的簇?cái)?shù),使用MiniBatch代碼通用,簇大小均勻,平坦幾何,簇?cái)?shù)量不過(guò)多,歸納點(diǎn)之間的距離Affinitypropagation阻尼,樣本偏好樣本數(shù)不可擴(kuò)展許多簇,簇大小不均勻,非平坦幾何,歸納圖距離(例如最近鄰圖)Mean-shift帶寬樣本數(shù)不可擴(kuò)展許多簇,簇大小不均勻,非平坦幾何,歸納點(diǎn)之間的距離Spectral

clustering簇的數(shù)量中等數(shù)量的樣本數(shù),小數(shù)量的簇?cái)?shù)少量簇,簇大小均勻,非平坦幾何,推導(dǎo)圖距離(例如最近鄰圖)Wardhierarchical

clustering簇的數(shù)量或距離閾值非常大的樣本數(shù)和簇?cái)?shù)許多簇,可能有連接性約束,推導(dǎo)點(diǎn)之間的距離Agglomerative

clustering簇的數(shù)量或距離閾值,連接類型,距離非常大的樣本數(shù)和簇?cái)?shù)許多簇,可能有連接性約束,非歐幾里得距離,推導(dǎo)任意兩點(diǎn)間距離DBSCAN鄰域大小非第大的樣本數(shù),中等數(shù)量的簇?cái)?shù)非平坦幾何,簇大小不均勻,異常值移除,推導(dǎo)最近點(diǎn)之間的距離HDBSCAN最小簇成員數(shù),最小點(diǎn)鄰居數(shù)大的樣本數(shù),中等數(shù)量的簇?cái)?shù)非平坦幾何,簇大小不均勻,異常值移除,推導(dǎo)分層,可變簇密度, 最近點(diǎn)之間的距離OPTICS最小簇成員數(shù)非常大的樣本數(shù),大數(shù)量的簇?cái)?shù)非平坦幾何,簇大小不均勻,可變簇密度,異常值移除,推導(dǎo)點(diǎn)之間的距離Gaussianmixtures許多不可擴(kuò)展平坦幾何,適用于密度估計(jì),推導(dǎo)到中心的馬氏距離BIRCH分支因子,閾值,可選全局聚類器大數(shù)量的簇?cái)?shù)和樣本數(shù)大數(shù)據(jù)集,異常值移除,數(shù)據(jù)降維,推導(dǎo)點(diǎn)之間的歐氏距離BisectingK-Means簇的數(shù)量非常大的樣本數(shù),中等數(shù)量的簇?cái)?shù)通用,簇大小均勻,平坦幾何,無(wú)空簇,推導(dǎo),分層點(diǎn)之間的距離在Python的sklearn數(shù)據(jù)包中提供了非常多的聚類算法。這些聚類算法的比較見(jiàn)下表。不同聚類算法的比較小結(jié)現(xiàn)在研究人員開(kāi)發(fā)出了非常多的聚類算法,如高斯混合聚類、譜聚類、密度聚類等,以適用不同領(lǐng)域的數(shù)據(jù)。實(shí)際上就算是在K-Means和層次聚類中,也有很多參數(shù)可以選擇。例如我們可以選擇距離來(lái)聚類,也可以選擇相似性來(lái)聚類。距離又有歐式距離、曼哈頓距離、切比雪夫距離、閔可夫斯基距離等。相似性包括皮爾遜相似性、余弦相似性等。因此要用好聚類,還是需要對(duì)數(shù)據(jù)比較熟悉。PART【例3.7】張大三問(wèn)張小三和李小四:你們知道圖上動(dòng)物的名字嗎?張小三和李小四說(shuō):不知道。張大三:那你們知道它大概是什么動(dòng)物嗎?張小三說(shuō):看起來(lái)……想到一種猴子。李小四說(shuō):應(yīng)該是鳥。張小三笑著說(shuō):難道就是傳說(shuō)中的猴鳥?或鳥猴?張大三說(shuō):你們?cè)趺磁袛嗨区B的?張小三說(shuō):因?yàn)樗臀覀円?jiàn)過(guò)的麻雀鴿子比較像,所以應(yīng)該是鳥。張大三說(shuō):對(duì)的。我們?nèi)祟惻龅轿粗氖挛飼r(shí),想把它歸類到已知的種類中。就要看看它和哪些個(gè)體比較相近,這些個(gè)體又屬于什么類別,從而判斷這個(gè)未知的事物屬于什么類別。這件事情就叫作分類。計(jì)算機(jī)也能模擬我們的這個(gè)思想,通過(guò)和已知類別的事物比較,或者通過(guò)總結(jié)已知類別事物的特征規(guī)律,來(lái)判斷新事物的類別。不知名動(dòng)物K最鄰近(K-Nearest

Neighbor,KNN)分類算法是數(shù)據(jù)挖掘分類技術(shù)中最簡(jiǎn)單的方法之一。KNN的意思是K個(gè)最近的鄰居。從這個(gè)名字我們就能看出一些KNN算法的思想。KNN的原理就是當(dāng)預(yù)測(cè)一個(gè)新的值x的時(shí)候,根據(jù)它距離最近的K個(gè)點(diǎn)是什么類別來(lái)判斷x屬于哪個(gè)類別,即x的K個(gè)鄰居中哪一類的點(diǎn)最多,x就屬于哪一類。怎么樣,非常簡(jiǎn)單吧。如圖所示,圓形的點(diǎn)是未知類別的,其他點(diǎn)類別已知,取K=3,那么圓形的點(diǎn)大概率和三角形的點(diǎn)是同一類。KNN示意圖K最鄰近分類算法為了驗(yàn)證KNN算法的有效性,我們采用交叉驗(yàn)證方式。交叉驗(yàn)證是在機(jī)器學(xué)習(xí)建立模型和驗(yàn)證模型參數(shù)時(shí)常用的辦法。交叉驗(yàn)證,顧名思義,就是重復(fù)地使用數(shù)據(jù),即把樣本數(shù)據(jù)進(jìn)行切分,組合為不同的訓(xùn)練集和測(cè)試集,用訓(xùn)練集來(lái)訓(xùn)練模型,用測(cè)試集來(lái)評(píng)估模型預(yù)測(cè)的性能。因?yàn)槭请S機(jī)切分的,每次切分都可以得到不同的訓(xùn)練集和測(cè)試集,某次訓(xùn)練集中的某樣本在下次可能成為測(cè)試集中的樣本,即所謂交叉。首先將數(shù)據(jù)集分成訓(xùn)練集(已知類別,80%)和測(cè)試集(假設(shè)未知類別,20%),采用train_test_split函數(shù),代碼如下:K最鄰近分類算法接下來(lái)調(diào)用sklearn中的KNeighboursClassifier(K近鄰分類),代碼如下:運(yùn)行結(jié)果為“Accuracy

is:

0.967”,這說(shuō)明KNN是一種非常有效的分類算法。貝葉斯分類算法貝葉斯分類是一類分類算法的總稱,這類算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類。而樸素貝葉斯分類時(shí)貝葉斯分類中最簡(jiǎn)單,也是最常見(jiàn)的一種分類方法。貝葉斯學(xué)派的思想可以概括為先驗(yàn)概率+數(shù)據(jù)=后驗(yàn)概率。也就是說(shuō),在實(shí)際問(wèn)題中需要得到的后驗(yàn)概率,可以通過(guò)先驗(yàn)概率和數(shù)據(jù)一起綜合得到。首先介紹一個(gè)概念,條件概率就是事件X在另外一個(gè)事件Y已經(jīng)發(fā)生條件下的概率,條件概率表示為P(X|Y)。【例3.8】張大三問(wèn)張小三和李小四:一班有50名男生,50名女生,現(xiàn)在告訴你有一位一班學(xué)生,你知道他/她是男/女的概率嗎?張小三和李小四說(shuō):簡(jiǎn)單,50%。張大三:對(duì),這個(gè)就是先驗(yàn)概率。如果告訴你有20%男生踢球,10%女生踢球,現(xiàn)在告訴你這位同學(xué)踢球,你知道他/她是男/女的概率嗎?張小三說(shuō):2∶1,他是男生的概率為2/3,她是女生的概率1/3。張大三說(shuō):對(duì)的,這個(gè)就是后驗(yàn)概率,即知道了一些數(shù)據(jù)后的概率。李小四說(shuō):這里好像沒(méi)有用到先驗(yàn)概率呀。張大三笑了笑說(shuō):已知有20%男生踢球,10%女生踢球。情況1:一班有50名男生,50名女生。情況2:一班有80名男生,20名女生?,F(xiàn)在告訴你這位同學(xué)踢球,你知道他/她是男/女的概率在這兩種情況下一樣嗎?李小四說(shuō):應(yīng)該不一樣,但是我不會(huì)算。貝葉斯分類算法【例3.8】張大三說(shuō):如果不告訴你這位同學(xué)踢球,情況1下,這位同學(xué)是男生的概率為50%,情況2下為男生概率80%。這就是先驗(yàn)概率。情況1下:任選一位同學(xué),這位同學(xué)是男生,且踢球(事件A),概率為0.5*20%,這位同學(xué)是女生,且踢球(事件B),概率為0.5*10%,所以任選一位同學(xué)剛好踢球(事件S=A并B,其中A、B互斥)的概率為0.5*20%+0.5*10%,故此同學(xué)為男生概率為P(A)/P(A)+P(B)=2/3,約為0.67。情況2下:任選一位同學(xué),這位同學(xué)是男生,且踢球(事件A),概率為0.8*20%,這位同學(xué)是女生,且踢球(事件B),概率為0.2*10%,所以任選一位同學(xué)剛好踢球(事件S=A并B,其中A、B互斥)的概率為0.8*20%+0.2*10%,故此同學(xué)為男生概率為P(A)/P(A)+P(B)=16/18,約為0.89??梢?jiàn)踢球和不踢球?qū)ε袛嗍欠駷槟猩幸欢ǖ挠绊懀绊懞蟮母怕史Q為后驗(yàn)概率。事實(shí)上,可以記X為該同學(xué)性別,Y表示是否踢球。知道男女生踢球比例,即知道了P(Y|X),想求出P(X|Y)。因?yàn)镻(Y|X)=P(XY)/P(X),P(X|Y)=P(XY)/P(Y)P(X|Y)=P(XY)/P(Y)

=P(Y|X)P(X)/P(Y)P(Y)表示學(xué)生踢球的概率,即為事件A并B。P(X=男生|Y=踢球)=P(Y=踢球|X=男生)P(X=男生)/P(Y=踢球)而P(Y=踢球)=P(X=男生)P(Y=踢球|X=男生)+P(X=女生)P(Y=踢球|X=女生)故P(X=男生|Y=踢球)=

P(Y=踢球|X=男生)P(X=男生)/{

P(X=男生)P(Y=踢球|X=男生)+

P(X=女生)P(Y=踢球|X=女生)}在這里,先驗(yàn)概率就是P(X),后驗(yàn)概率知道了Y=踢球后的X的概率,就是P(X|Y=踢球)同樣地,我們可能還知道男女學(xué)生跳舞、玩游戲等各種事件概率,假設(shè)這些事情獨(dú)立,這些事件同樣對(duì)后驗(yàn)概率有影響。假設(shè)Y1、Y2條件獨(dú)立(樸素貝葉斯模型,Navie

Bayes),則具體推導(dǎo)也非常簡(jiǎn)單,如下:P(X|Y1,Y2)=P(X,Y1,Y2)/P(Y1,Y2)=P(X)P(Y1|X)P(Y2|X)/

(P(Y1)P(Y2))貝葉斯分類算法在sklearn.naive_bayes中,有各種貝葉斯模型可以調(diào)用,代碼如下:運(yùn)行結(jié)果為“Accuracy

is:

0.967”,這表明貝葉斯分類是一類簡(jiǎn)單有效的分類算法。它適合離散情況下的推斷。Logistic分類算法線性分類實(shí)際上,我們的線性回歸稍微修改一下就可以做分類。如圖所示,如果我們能找到一條直線使得一類點(diǎn)在直線上方,另一類點(diǎn)在直線下方,那么此直線就可以作為分類線/決策函數(shù)來(lái)預(yù)測(cè)新樣本的類別。在高維空間中,直線可以由超平面代替。根據(jù)分類線/決策函數(shù),可以寫出約束方程式(3.4),其中為預(yù)測(cè)值,為實(shí)際類別。(3.4)這個(gè)方程可以用梯度下降法或其他方法求解。但是有些很大,有些很小,當(dāng)類別為1時(shí),取1、2、3都可以,這就對(duì)求解帶來(lái)了一定的困難。如果約束如式(3.5),那么求解相對(duì)簡(jiǎn)單。(3.5)Logistic分類算法但是怎么樣才能變成式(3.5)呢?這里可以引入一個(gè)變換y

=

1/(1+e-x),如圖所示。這個(gè)變換可以將大于0的數(shù)很快變成接近1的數(shù),小于0的數(shù)很快變成接近0的數(shù)。而且這個(gè)函數(shù)是有界的,當(dāng)一個(gè)數(shù)遠(yuǎn)遠(yuǎn)大于1的時(shí)候,經(jīng)過(guò)這個(gè)變換,它是接近于1的。當(dāng)一個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于0的時(shí)候,經(jīng)過(guò)這個(gè)變換,它也是接近于0的。也就是說(shuō),此變換將負(fù)無(wú)窮大到正無(wú)窮大的數(shù)都變換到0或者1附近,更方便進(jìn)行2分類。也就是說(shuō),我們希望式(3.4)能變成式(3.5),但是因?yàn)樗愠龅膟值的范圍為整個(gè)實(shí)數(shù)域,所以我們必須通過(guò)某種變換,例如本節(jié)的y

=

1/(1+e-x),將值域變換到0和1附近,即式(3.6),就可以采用線性回歸的解法來(lái)解決此問(wèn)題。y=

1/(1+e-x)(3.5)Logistic分類算法通過(guò)此變換的線性回歸也稱作logistic回歸,它也可以用來(lái)做分類。接下來(lái),我們看一下代碼與結(jié)果。運(yùn)行結(jié)果為“Logistic

Regression模型正確率:0.967”。結(jié)果表明logistic

regression分類也是一種簡(jiǎn)單有效的分類算法。logistic

regression分類只是做2分類,如果是多分類,可以用多個(gè)logistic

regression來(lái)做。這些在LogisticRegression中已經(jīng)封裝好了,只需要設(shè)置參數(shù)multi_class='multinomial'即可。小結(jié)針對(duì)不同類型以及不同領(lǐng)域的數(shù)據(jù),研究人員開(kāi)發(fā)出了非常多的分類算法,沒(méi)有哪一種能適用所有數(shù)據(jù),所以需要在分類前對(duì)數(shù)據(jù)分析,分類后,仍然要仔細(xì)觀察結(jié)果?,F(xiàn)在有很多性能評(píng)價(jià)指標(biāo)都是用來(lái)做這件事情的。想用好分類算法,需要對(duì)這些指標(biāo)有一定了解。PART集成學(xué)習(xí)(Ensemble

Learning)是目前機(jī)器學(xué)習(xí)算法中非常火的一個(gè)研究方向,它本身不是一個(gè)單獨(dú)的機(jī)器學(xué)習(xí)算法,而是一個(gè)框架。它的思想是使用數(shù)據(jù)集進(jìn)行訓(xùn)練生成多個(gè)模型,最后對(duì)這些模型進(jìn)行集成得到最終的結(jié)果,這就是集成學(xué)習(xí)完整的過(guò)程(見(jiàn)圖)。集成學(xué)習(xí)結(jié)合的策略主要有平均法、投票法和學(xué)習(xí)法等。如果對(duì)這些模型進(jìn)行集成模型都屬于同種類型的個(gè)體學(xué)習(xí)器,如全部使用決策樹或者全部使用神經(jīng)網(wǎng)絡(luò),就稱為同質(zhì)集成;如果對(duì)這些模型進(jìn)行集成模型都屬于不同類型的個(gè)體學(xué)習(xí)器,如既使用決策樹又使用神經(jīng)網(wǎng)絡(luò),就稱為異質(zhì)集成。集成學(xué)習(xí)集成模型的種類非常多,包括套袋法(Bagging)、隨機(jī)森林、提升法(Boosting)、堆疊法(Stacking)以及許多其他的基礎(chǔ)集成學(xué)習(xí)模型。集成學(xué)習(xí)算法的目標(biāo)是:集成學(xué)習(xí)一般是先通過(guò)算法生成多個(gè)弱學(xué)習(xí)機(jī),然后使用數(shù)據(jù)集對(duì)弱學(xué)習(xí)機(jī)進(jìn)行訓(xùn)練得到多個(gè)模型,最后通過(guò)集成算法對(duì)這些模型進(jìn)行集成得到最終的結(jié)果。集成學(xué)習(xí)這樣做的目的是通過(guò)集成獲得比單一模型更精準(zhǔn)的預(yù)測(cè)結(jié)果和性能提升,真實(shí)結(jié)果也表明這樣做確實(shí)會(huì)使集成后的結(jié)果比單個(gè)模型的結(jié)果更優(yōu),因此在現(xiàn)實(shí)中集成學(xué)習(xí)也深受廣大研究者所喜愛(ài),如在Kaggle競(jìng)賽中大部分選手都會(huì)使用集成學(xué)習(xí)。集成學(xué)習(xí)示意圖下面先看一個(gè)例子,仍然是使用Iris數(shù)據(jù)集,使用了3個(gè)分類器,分別是決策樹、KNN和Lo

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論