大家新年好,在經(jīng)歷過(guò)新年假期以后,現(xiàn)在讓我們來(lái)看看機(jī)器學(xué)習(xí)常用的算法的分類(lèi)。
在以前我簡(jiǎn)書(shū)的文章中我們可以發(fā)現(xiàn)機(jī)器學(xué)習(xí)是一個(gè)及其龐大的門(mén)類(lèi),里面包括各種五花八門(mén)的算法,然后呢我們可以將這些算法進(jìn)行分類(lèi),并且這些分類(lèi)的方法也不僅有一種,那現(xiàn)在讓我們來(lái)一探究竟。
首先我們先來(lái)看看對(duì)于算法的一個(gè)分類(lèi)方法:
第一個(gè)算法分類(lèi),我們可以將機(jī)器學(xué)習(xí)的算法分為有監(jiān)督學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí),半監(jiān)督學(xué)習(xí)。那么什么是有監(jiān)督學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí),半監(jiān)督學(xué)習(xí)呢,其實(shí)這個(gè)在我之前的文章中對(duì)于這一方面有一定的概述,在這里就簡(jiǎn)單的說(shuō)幾句。其實(shí)我們?cè)谧鰴C(jī)器學(xué)習(xí),做一個(gè)算法,實(shí)際上就是對(duì)一個(gè)樣本數(shù)據(jù)進(jìn)行一個(gè)訓(xùn)練,不管你這個(gè)模型是一個(gè)分類(lèi)模型或者是一個(gè)預(yù)測(cè)模型,總之,我們最后都是要建立一個(gè)模型,最后來(lái)通過(guò)這個(gè)模型來(lái)判斷X和Y之間的關(guān)系。那所謂的有監(jiān)督學(xué)習(xí),實(shí)際上就是在訓(xùn)練數(shù)據(jù)中明確的給出了這個(gè)Y是個(gè)什么值,比如說(shuō)我們是一個(gè)分類(lèi)算法,如果使用有監(jiān)督學(xué)習(xí),在我們的訓(xùn)練數(shù)據(jù)中已經(jīng)明確的給出了這個(gè)數(shù)據(jù)屬于那樣的類(lèi)別,這樣的話可以比喻成訓(xùn)練數(shù)據(jù)已經(jīng)被提前打好了標(biāo)簽。就好比我們識(shí)別垃圾郵件,我們先會(huì)給系統(tǒng)一堆訓(xùn)練數(shù)據(jù),這批數(shù)據(jù)呢就是先給系統(tǒng)一堆垃圾郵件,這個(gè)郵件已經(jīng)被我們事先打好標(biāo)簽是垃圾郵件還是不是垃圾郵件,那這樣我們對(duì)于這個(gè)數(shù)據(jù)進(jìn)行分析時(shí),實(shí)際上我們就已經(jīng)知道這個(gè)Y類(lèi)就是垃圾郵件類(lèi),然后我們就根據(jù)這個(gè)已知的Y去訓(xùn)練模型的參數(shù)。針對(duì)上述的一些數(shù)據(jù)的訓(xùn)練方法,我們就統(tǒng)稱(chēng)為有監(jiān)督學(xué)習(xí)。典型的有監(jiān)督學(xué)習(xí)算法就包括分類(lèi)算法和回歸算法。因?yàn)椴还苁欠诸?lèi)算法還是回歸算法,我們?cè)谟?xùn)練集數(shù)據(jù)中已經(jīng)明確的給出了那個(gè)分類(lèi)Y了。對(duì)于分類(lèi),這個(gè)Y可能就是一個(gè)類(lèi)別,對(duì)于回歸,這個(gè)Y可能就是個(gè)數(shù)據(jù)。我們最后的結(jié)果應(yīng)該盡量的接近我們所給的Y才可以。
那跟有監(jiān)督學(xué)習(xí)相對(duì)的就是無(wú)監(jiān)督學(xué)習(xí),簡(jiǎn)單點(diǎn)概述就是在無(wú)監(jiān)督學(xué)習(xí)中,我們是沒(méi)有Y這個(gè)分類(lèi)的,換句話說(shuō)這個(gè)Y是什么樣子我們是不知道的。這個(gè)最常見(jiàn)的算法就是聚類(lèi),就是在之前文章中提到的電信用戶分類(lèi)的那種算法,畢竟我們將用戶分為幾類(lèi)我們自己也是不知道的,所以就可以用無(wú)監(jiān)督學(xué)習(xí)用機(jī)器把用戶進(jìn)行分類(lèi)。
最后一類(lèi)呢就是半監(jiān)督學(xué)習(xí),也就是所謂的強(qiáng)化學(xué)習(xí)。其實(shí)這個(gè)半監(jiān)督學(xué)習(xí)挺好理解,就跟我們家里的寶寶剛開(kāi)始學(xué)走路一樣。剛開(kāi)始走路的時(shí)候?qū)殞毧隙〞?huì)磕磕絆絆,但是走的次數(shù)多了,就可以走的很平很穩(wěn),甚至可以加快速度小跑起來(lái)。那所謂的半監(jiān)督學(xué)習(xí)其實(shí)和這個(gè)例子類(lèi)似,在其算法中可能會(huì)有一些Y值,剛開(kāi)始你的訓(xùn)練模型可能訓(xùn)練的結(jié)果并不好,但是可能隨著你的訓(xùn)練樣本越多,你的模型結(jié)果會(huì)越好。
好,上述就是第一類(lèi)的算法,這個(gè)算法就根據(jù)你的數(shù)據(jù)中有沒(méi)有那個(gè)Y來(lái)把算法分成三類(lèi)。那現(xiàn)在讓我們看第二類(lèi)算法分類(lèi):
第二種算法的分類(lèi)實(shí)際上是根據(jù)我們要實(shí)際解決的問(wèn)題來(lái)進(jìn)行分類(lèi)的,比如說(shuō)分類(lèi)和回歸,我們要預(yù)測(cè)一個(gè)Y值,聚類(lèi),就是要針對(duì)一個(gè)你要具體解決的類(lèi)型來(lái)分類(lèi),最后一個(gè),標(biāo)注,標(biāo)注其實(shí)在某種程度上有點(diǎn)類(lèi)似于分類(lèi),但是和分類(lèi)又有一點(diǎn)不同。那什么是標(biāo)注呢?
現(xiàn)在我寫(xiě)出一段文本:
這個(gè)文本其實(shí)是可以標(biāo)注成一個(gè)一個(gè)詞的
———————————————————————————————
我正在努力的學(xué)習(xí)機(jī)器學(xué)習(xí)
———————————————————————————————
比如說(shuō)我現(xiàn)在想看看這個(gè)句子里那個(gè)詞是名詞,那個(gè)詞是形容詞,哪個(gè)是動(dòng)詞,這樣實(shí)際上就是給句子里的每一個(gè)詞語(yǔ)進(jìn)行一個(gè)標(biāo)簽,然后拆分出來(lái)。
上述的就是第二種算法分類(lèi),他們主要都是根據(jù)這個(gè)要解決的實(shí)際問(wèn)題來(lái)進(jìn)行分類(lèi)的。
現(xiàn)在我們來(lái)看看第三類(lèi)算法分類(lèi):
生成模型和判別模型
這個(gè)第三類(lèi)是一個(gè)非常重要的算法,因?yàn)檫@種算法已經(jīng)直接深入到你的算法的本質(zhì)了,所以第三類(lèi)算法是一個(gè)非常重要的內(nèi)容,無(wú)論如何也要研究出來(lái),并且在面試的時(shí)候很有可能會(huì)考你,但是并不會(huì)直接問(wèn)你概念,什么是生成模型什么是判別模型之類(lèi)的,但是他可能會(huì)問(wèn)你生成模型算法和其他的算法之間有什么區(qū)別?比如邏輯回歸算法和樸素貝葉斯算法有什么本質(zhì)的區(qū)別?這樣的問(wèn)題你要想找出到底有什么區(qū)別,說(shuō)實(shí)話就是考你的生成模型和判別模型有什么本質(zhì)的區(qū)別。所以我們說(shuō)第三類(lèi)算法是比較重要的,其實(shí)前倆種也很重要,只不過(guò)是前兩種的算法比較簡(jiǎn)單。比如說(shuō)你去面試,面試的那伙人通常默認(rèn)你會(huì)知道這些。第三類(lèi)其實(shí)就屬于比較高階的知識(shí)了。但是對(duì)于這個(gè)入門(mén)的文章,如果介紹生成模型和判別模型之間有什么區(qū)別,我個(gè)人認(rèn)為還是有點(diǎn)早。因?yàn)楫?dāng)中還有很多概念還是比較難以理解的,所以我就簡(jiǎn)單的提一下,不深入概述。
那我們先看下這個(gè)判別模型吧。這個(gè)生成模型和判別模型從基本上說(shuō)都是用來(lái)判別這個(gè)分類(lèi)問(wèn)題的。就是把一件東西分為ABC這樣幾個(gè)類(lèi)這樣的。
這個(gè)判別模型呢就類(lèi)似于直接給你一個(gè)函數(shù),然后你把你的數(shù)據(jù)丟給這個(gè)函數(shù),函數(shù)就會(huì)返回一個(gè)結(jié)果,函數(shù)就會(huì)告訴你屬于哪一類(lèi)。判別模型直接指向你的目的。
這個(gè)生成模型呢實(shí)際上有點(diǎn)類(lèi)似于法庭上的陪審團(tuán),(那判別模型就是屬于大法官了),他不會(huì)直接告訴你你的數(shù)據(jù)屬于哪一類(lèi),只是會(huì)告訴你你的數(shù)據(jù)屬于這個(gè)類(lèi)的概率會(huì)是多大,比如說(shuō)我們現(xiàn)在有ABC三類(lèi),生成模型會(huì)告訴你你的A類(lèi)概率會(huì)有多大,你的B類(lèi)概率會(huì)有多大,你的C類(lèi)概率會(huì)有多大。概率最大的就有很大的可能屬于這一類(lèi)。但是概率小也有可能屬于這一類(lèi)。
那我們從上述可以看出,判別模型和生成模型給出的結(jié)果是不一樣的,判別模型是非一即二,生成模型是模棱兩可,但是他們兩個(gè)更重要的區(qū)別是在他們訓(xùn)練的思想上是不一樣的,有時(shí)間我們?cè)敿?xì)概述。
這就是這篇文章所包含的幾種算法,在下一篇文章我將繼續(xù)講述機(jī)器學(xué)習(xí)的算法,也請(qǐng)大家都多多指教,我也將繼續(xù)努力,努力學(xué)習(xí)更多的知識(shí)。