最全机器学习种类讲解:监督、无监督、在线和批量学习都讲明白了
導(dǎo)讀:現(xiàn)有的機(jī)器學(xué)習(xí)系統(tǒng)種類繁多,根據(jù)以下內(nèi)容將它們進(jìn)行分類有助于我們理解:
是否在人類監(jiān)督下訓(xùn)練(監(jiān)督式學(xué)習(xí)、無監(jiān)督式學(xué)習(xí)、半監(jiān)督式學(xué)習(xí)和強(qiáng)化學(xué)習(xí))
是否可以動態(tài)地進(jìn)行增量學(xué)習(xí)(在線學(xué)習(xí)和批量學(xué)習(xí))
是簡單地將新的數(shù)據(jù)點(diǎn)和已知的數(shù)據(jù)點(diǎn)進(jìn)行匹配,還是像科學(xué)家那樣,對訓(xùn)練數(shù)據(jù)進(jìn)行模式檢測,然后建立一個預(yù)測模型(基于實(shí)例的學(xué)習(xí)和基于模型的學(xué)習(xí))
這些標(biāo)準(zhǔn)之間互相并不排斥,你可以以你喜歡的方式將其任意組合。例如,現(xiàn)在最先進(jìn)的垃圾郵件過濾器可能是使用深度神經(jīng)網(wǎng)絡(luò)模型對垃圾郵件和常規(guī)郵件進(jìn)行訓(xùn)練,完成動態(tài)學(xué)習(xí)。這使其成為一個在線的、基于模型的、監(jiān)督式學(xué)習(xí)系統(tǒng)。
作者:奧雷利安·杰龍(Aurélien Géron)
本文摘編自《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》,如需轉(zhuǎn)載請聯(lián)系我們
我們來看看這幾個標(biāo)準(zhǔn)。
01 監(jiān)督式/無監(jiān)督式學(xué)習(xí)
根據(jù)訓(xùn)練期間接受的監(jiān)督數(shù)量和監(jiān)督類型,可以將機(jī)器學(xué)習(xí)系統(tǒng)分為以下四個主要類別:監(jiān)督式學(xué)習(xí)、無監(jiān)督式學(xué)習(xí)、半監(jiān)督式學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。
1. 監(jiān)督式學(xué)習(xí)
在監(jiān)督式學(xué)習(xí)中,提供給算法的包含所需解決方案的訓(xùn)練數(shù)據(jù),稱之為標(biāo)簽或標(biāo)記(圖1-5)。
▲圖1-5:監(jiān)督式學(xué)習(xí)中被標(biāo)記的訓(xùn)練集(例如,垃圾郵件分類)
分類任務(wù)是一個典型的監(jiān)督式學(xué)習(xí)任務(wù)。垃圾郵件過濾器就是個很好的例子:通過大量的電子郵件示例及其所屬的類別(垃圾郵件或是常規(guī)郵件)進(jìn)行訓(xùn)練,然后學(xué)習(xí)如何對新郵件進(jìn)行分類。
還有典型的任務(wù),是通過預(yù)測變量——也就是一組給定的特征(里程、使用年限、品牌等)——來預(yù)測一個目標(biāo)數(shù)值,例如汽車的價格。這種類型的任務(wù)被稱為回歸任務(wù)(圖1-6)。要訓(xùn)練這樣一個系統(tǒng),你需要提供大量的汽車示例,包括它們的預(yù)測變量和它們的標(biāo)簽(也就是它們的價格)。
在機(jī)器學(xué)習(xí)里,屬性是一種數(shù)據(jù)類型(例如“里程”);而特征取決于上下文,可能有多個含義,但是通常狀況下,特征意味著一個屬性加上其值(例如,“里程=15,000”)。盡管如此,許多人還是會交替使用屬性和特征這兩個名詞。
▲圖1-6:回歸任務(wù)
值得注意的是,一些回歸算法也可以用于分類任務(wù),反之亦然。例如,邏輯回歸就被廣泛地用于分類,因?yàn)樗梢暂敵觥皩儆谀硞€給定類別的概率”的值(例如,20%的機(jī)率是垃圾郵件)。
這里是一些最重要的監(jiān)督式學(xué)習(xí)的算法:
K-近臨算法(k-Nearest Neighbors)
線性回歸(Linear Regression)
邏輯回歸(Logistic Regression)
支持向量機(jī)(Support Vector Machines,簡稱SVMs)
決策樹和隨機(jī)森林(Decision Trees and Random Forests)
神經(jīng)網(wǎng)絡(luò)(Neural networks)
2. 無監(jiān)督式學(xué)習(xí)
無監(jiān)督式學(xué)習(xí),顧名思義,你可能已經(jīng)猜到,訓(xùn)練數(shù)據(jù)都是未經(jīng)標(biāo)記的(圖1-7)。系統(tǒng)會在沒有老師的情況下進(jìn)行學(xué)習(xí)。
▲圖1-7:無監(jiān)督式學(xué)習(xí)的未標(biāo)記訓(xùn)練集
這里有一些最重要的無監(jiān)督式學(xué)習(xí)的算法:
聚類算法
k-平均算法(k-Means)
系統(tǒng)聚類分析(Hierarchical Cluster Analysis,簡稱HCA)
最大期望算法(Expectation Maximization)
可視化和降維
主成分分析(PCA)
核主成分分析(Kernel PCA)
局部線性嵌入(LLE)
t-分布隨機(jī)近臨嵌入(t-SNE)
關(guān)聯(lián)規(guī)則學(xué)習(xí)
Apriori
Eclat
例如,假設(shè)你現(xiàn)在擁有大量的自己博客訪客的數(shù)據(jù)。你想通過一個聚類算法來檢測相似訪客的分組(圖1-8)。你不大可能告訴這個算法每個訪客屬于哪個分組——而是要它自己去尋找這種關(guān)聯(lián),無需你的幫助。
比如說,它可能會注意到40%的訪客是喜歡漫畫的男性,并且通常是在夜晚閱讀你的博客,20%的訪客是年輕的科幻愛好者,通常是在周末訪問,等等。如果你使用的是層次聚類的算法,它還可以將每組細(xì)分為更小的組。這可能有助于你針對不同的分組來發(fā)布博客內(nèi)容。
▲圖1-8:聚類
可視化算法也是無監(jiān)督式學(xué)習(xí)算法的好例子:你提供大量復(fù)雜的、未標(biāo)記的數(shù)據(jù),得到輕松繪制而成的2D或3D的數(shù)據(jù)呈現(xiàn)作為輸出(圖1-9)。這些算法會盡其所能地保留盡量多的結(jié)構(gòu)(譬如,嘗試保持讓輸入的單獨(dú)集群在可視化中不會被重疊),以便于你理解這些數(shù)據(jù)是怎么組織的,甚至識別出一些未知的模式。
▲圖1-9:一個使用t-SNE算法的可視化示例,突顯了各種語義叢
與之相關(guān)的另一種任務(wù)是降維,降維的目的是在不丟失太多信息的前提下簡化數(shù)據(jù)。方法之一是將多個相關(guān)特征合并為一個。例如,汽車的里程與其使用年限存在很大的相關(guān)性,所以降維算法會將它們合并成一個代表汽車磨損的特征。這個過程被稱之為特稱提取。
通常比較好的做法是,先使用降維算法減少訓(xùn)練數(shù)據(jù)的維度,再將其提供給另一個機(jī)器學(xué)習(xí)算法(例如監(jiān)督式學(xué)習(xí)算法)。這會使它運(yùn)行得更快,數(shù)據(jù)占用的磁盤空間和內(nèi)存都會更小,在某些情況下,執(zhí)行性能也會更好。
另一個很重要的無監(jiān)督式任務(wù)是異常檢測——例如,檢測異常信用卡交易從而防止欺詐,捕捉制造缺陷,或者是在提供數(shù)據(jù)給一種機(jī)器學(xué)習(xí)算法之前,自動從數(shù)據(jù)集中移除異常值。系統(tǒng)用正常實(shí)例進(jìn)行訓(xùn)練,然后當(dāng)它看到新的實(shí)例時,它就可以判斷出這個新實(shí)例看上去是正常還是異常(見圖1-10)。
▲圖1-10:異常檢測
最后,還有一個常見的無監(jiān)督式任務(wù)是關(guān)聯(lián)規(guī)則學(xué)習(xí),其目的是挖掘大量數(shù)據(jù),發(fā)現(xiàn)屬性之間的有趣聯(lián)系。比如說,假設(shè)你開了一家超市,在銷售日志上運(yùn)行關(guān)聯(lián)規(guī)則之后發(fā)現(xiàn)買燒烤醬和薯片的人,也傾向于購買牛排。那么,你可能會將這幾樣商品擺放得更為靠近一些。
3. 半監(jiān)督式學(xué)習(xí)
有些算法可以處理部分標(biāo)記的訓(xùn)練數(shù)據(jù)——通常是大量未標(biāo)記數(shù)據(jù)和少量的標(biāo)記數(shù)據(jù)。這被稱為半監(jiān)督式學(xué)習(xí)(圖1-11)。
有些照片托管服務(wù)(例如 Google 相冊)就是很好的例子。一旦你將所有的家庭照片上傳到服務(wù)后,它會自動識別出人物A出現(xiàn)在照片1、5和11中,另一個人B出現(xiàn)在照片2、5和7中。這是算法中無監(jiān)督的部分(聚類)。現(xiàn)在系統(tǒng)需要你做的只是,告訴它這些人都是誰。給每個人一個標(biāo)簽之后,它就可以給每張照片中的每個人命名,這對于搜索圖片非常重要。
▲圖1-11:半監(jiān)督式學(xué)習(xí)
大多數(shù)半監(jiān)督式學(xué)習(xí)算法是無監(jiān)督和監(jiān)督式算法的結(jié)合。例如深度信念網(wǎng)絡(luò)(DBNs),它基于一種互相堆疊的無監(jiān)督式組件,這個組件叫做受限玻爾茲曼機(jī)(RBMs)。受限玻爾茲曼機(jī)以無監(jiān)督的方式進(jìn)行訓(xùn)練,然后使用監(jiān)督式學(xué)習(xí)對整個系統(tǒng)進(jìn)行微調(diào)。
4. 強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)則是一個非常與眾不同的巨獸。它的學(xué)習(xí)系統(tǒng)(在其語境中被稱為智能體)能夠觀察環(huán)境,做出選擇,執(zhí)行操作,并獲得回報(rewards),或者是以負(fù)面回報的形式獲得懲罰,見圖1-12。所以它必須自行學(xué)習(xí)什么是最好的策略 (policy),從而隨著時間推移獲得最大的回報。策略代表智能體在特定情況下應(yīng)該選擇的操作。
▲圖1-12:強(qiáng)化學(xué)習(xí)
例如,許多機(jī)器人通過強(qiáng)化學(xué)習(xí)算法來學(xué)習(xí)如何行走。DeepMind的AlphaGo項(xiàng)目也是一個強(qiáng)化學(xué)習(xí)的好例子——2016年3月,AlphaGo在圍棋比賽中擊敗世界冠軍李世乭而聲名鵲起。通過分析數(shù)百萬場比賽,然后自己跟自己下棋,它學(xué)到了它的制勝策略。要注意,在跟世界冠軍對弈的時候,AlphaGo處于關(guān)閉學(xué)習(xí)狀態(tài)下,它只是應(yīng)用它所學(xué)到的策略而已。
02 批量學(xué)習(xí)和在線學(xué)習(xí)
還有一個給機(jī)器學(xué)習(xí)系統(tǒng)分類的標(biāo)準(zhǔn),是看系統(tǒng)是否可以從傳入的數(shù)據(jù)流中進(jìn)行增量學(xué)習(xí)。
1. 批量學(xué)習(xí)
批量學(xué)習(xí)中,系統(tǒng)無法進(jìn)行增量學(xué)習(xí)——即必須使用所有可用數(shù)據(jù)進(jìn)行訓(xùn)練。這需要大量時間和計(jì)算資源,所以通常情形下,都是離線完成的。離線學(xué)習(xí)就是先訓(xùn)練系統(tǒng),然后將其投入生產(chǎn)環(huán)境,這時學(xué)習(xí)過程停止,它只是將其所學(xué)到的應(yīng)用出來。
如果你希望批量學(xué)習(xí)系統(tǒng)學(xué)習(xí)新數(shù)據(jù)(例如新型垃圾郵件),你需要在完整數(shù)據(jù)集(不僅僅是新數(shù)據(jù),還要包括舊數(shù)據(jù))的基礎(chǔ)上重新訓(xùn)練一個新版本的系統(tǒng),然后停用舊系統(tǒng),用新系統(tǒng)取而代之。
幸運(yùn)的是,整個訓(xùn)練、評估和啟動機(jī)器學(xué)習(xí)系統(tǒng)的過程可以很輕易地實(shí)現(xiàn)自動化(如圖1-13所示),所以即使是批量學(xué)習(xí)系統(tǒng)也能夠適應(yīng)變化。只是需要不斷地更新數(shù)據(jù),以及根據(jù)需要,頻繁地訓(xùn)練新版本的系統(tǒng)。
▲圖1-13:在線學(xué)習(xí)
這個解決方法比較簡單,通常情況下也都能正常工作,只是每次都使用全套數(shù)據(jù)集進(jìn)行訓(xùn)練可能需要花上好幾個小時,所以,你很有可能會選擇每天甚至每周訓(xùn)練一次新系統(tǒng)。如果你的系統(tǒng)需要應(yīng)對快速變化的數(shù)據(jù)(例如,預(yù)測股票價格),那么你需要一個更具響應(yīng)力的解決方案。
此外,使用完整數(shù)據(jù)訓(xùn)練需要耗費(fèi)大量的計(jì)算資源(CPU、內(nèi)存空間、磁盤空間、磁盤I/O、網(wǎng)絡(luò)I/O等等)。如果你的數(shù)據(jù)量非常大,并且每天自動執(zhí)行重新訓(xùn)練系統(tǒng),那最終你將為此花費(fèi)大量的金錢。而假如數(shù)據(jù)量更海量一些,你甚至可能無法再應(yīng)用批量學(xué)習(xí)算法。
所以如果你的資源有限(例如,智能手機(jī)應(yīng)用程序或者是火星上的漫游器),而系統(tǒng)需要實(shí)現(xiàn)自主學(xué)習(xí),那么像這樣攜帶大量訓(xùn)練數(shù)據(jù),占用大量資源,動輒每天耗費(fèi)幾小時來進(jìn)行訓(xùn)練的方式,肯定是心有余而力不足。
幸運(yùn)的是,在所有這些情況下,我們有了一個更好的選擇——也就是能夠進(jìn)行增量學(xué)習(xí)的算法。
2. 在線學(xué)習(xí)
在在線學(xué)習(xí)中,你可以循序漸進(jìn)地給系統(tǒng)提供訓(xùn)練數(shù)據(jù),逐步積累學(xué)習(xí)成果。這種提供數(shù)據(jù)的方式可以是單獨(dú)地,也可以采用小批量(mini-batches)的小組數(shù)據(jù)來進(jìn)行訓(xùn)練。每一步學(xué)習(xí)都很快速并且便宜,所以系統(tǒng)就可以根據(jù)飛速寫入的最新數(shù)據(jù)進(jìn)行學(xué)習(xí)(見圖1-13)。
對于這類系統(tǒng)——需要接收持續(xù)的數(shù)據(jù)流(例如股票價格)同時對數(shù)據(jù)流的變化做出快速或自主的反應(yīng),使用在線學(xué)習(xí)系統(tǒng)是一個非常好的方式。如果你的計(jì)算資源有限,它同樣也是一個很好的選擇:新的數(shù)據(jù)實(shí)例一旦經(jīng)過系統(tǒng)的學(xué)習(xí),就不再需要,你可以將其丟棄(除非你想要回滾到前一個狀態(tài),再“重新學(xué)習(xí)”數(shù)據(jù)),這可以節(jié)省大量的空間。
對于超大數(shù)據(jù)集——超出一臺計(jì)算機(jī)的主存儲器的數(shù)據(jù),在線學(xué)習(xí)算法也同樣適用(這被稱為out-of-core核外學(xué)習(xí))。算法每次只加載部分?jǐn)?shù)據(jù),并針對這部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練,然后不斷重復(fù)這個過程,直到完成所有數(shù)據(jù)的訓(xùn)練(見圖1-14)。
▲圖1-14:使用在線學(xué)習(xí)處理超大數(shù)據(jù)集
整個過程通常是離線完成的(也就是不在live系統(tǒng)上),因此在線學(xué)習(xí)這個名字很容易讓人產(chǎn)生誤解。可以將其視為增量學(xué)習(xí)。
在線學(xué)習(xí)系統(tǒng)的一個重要參數(shù),是看它能夠多快適應(yīng)不斷變化的數(shù)據(jù),這就是所謂的學(xué)習(xí)率。如果設(shè)置的學(xué)習(xí)率很高,那么系統(tǒng)將會迅速適應(yīng)新數(shù)據(jù),但同時也很快忘記舊數(shù)據(jù)(你肯定不會希望垃圾郵件過濾器只對最新顯示的郵件進(jìn)行標(biāo)記)。
反過來,如果學(xué)習(xí)率很低,系統(tǒng)會有更高的惰性,也就是說,它學(xué)習(xí)會更緩慢,同時也會對新數(shù)據(jù)中的噪聲或者非典型數(shù)據(jù)點(diǎn)的序列更不敏感。
在線學(xué)習(xí)面臨的一個重大挑戰(zhàn)是,如果給系統(tǒng)輸入不良數(shù)據(jù),系統(tǒng)的性能將會逐漸下降。現(xiàn)在某些實(shí)時系統(tǒng)的客戶,說不定已經(jīng)注意到了這個現(xiàn)象。不良數(shù)據(jù)的來源可能是,例如,機(jī)器上發(fā)生故障的傳感器,或者是有人對搜索引擎惡意刷屏以提高搜索結(jié)果排名等等。
為了降低這種風(fēng)險,你需要密切監(jiān)控你的系統(tǒng),一旦檢測到性能下降,要及時中斷學(xué)習(xí)(可能還需要恢復(fù)到之前的工作狀態(tài))。當(dāng)然,你同時還需要監(jiān)控?cái)?shù)據(jù)輸入,并對異常數(shù)據(jù)做出響應(yīng)(例如,使用異常檢測算法)。
03 基于實(shí)例與基于模型的學(xué)習(xí)
另一種對機(jī)器學(xué)習(xí)系統(tǒng)進(jìn)行分類的方法是看它們?nèi)绾?/span>泛化。大多數(shù)機(jī)器學(xué)習(xí)任務(wù)是要做出預(yù)測。這意味著,系統(tǒng)需要通過給定的訓(xùn)練示例,在它此前并未見過的示例上進(jìn)行泛化。在訓(xùn)練數(shù)據(jù)上實(shí)現(xiàn)良好的性能指標(biāo)固然重要,但是還不夠充分;真正的目的是要在新的對象實(shí)例上表現(xiàn)出色。
泛化的主要方法有兩種:基于實(shí)例的學(xué)習(xí)和基于模型的學(xué)習(xí)。
1. 基于實(shí)例的學(xué)習(xí)
我們最司空見慣的學(xué)習(xí)方法就是簡單的死記硬背。如果你以這種方式創(chuàng)建一個垃圾郵件過濾器,那它可能只會標(biāo)記那些跟已被用戶標(biāo)記為垃圾郵件完全相同的郵件——這雖然不是最差的解決方案,但肯定也不是最好的。
除了完全相同的,你還可以通過編程讓系統(tǒng)標(biāo)記與已知的垃圾郵件非常相似的郵件。這里需要兩封郵件之間的相似度度量。有一種(基本的)相似度度量方式,是計(jì)算它們之間相同的單詞數(shù)目。如果一封新郵件與一封已知的垃圾郵件有許多字句相同,系統(tǒng)就可以將其標(biāo)記為垃圾郵件。
這便是基于實(shí)例的學(xué)習(xí):系統(tǒng)先完全記住學(xué)習(xí)示例(examples),然后通過某種相似度度量方式將其泛化到新的實(shí)例(圖1-15)。
▲圖1-15:基于實(shí)例的學(xué)習(xí)
2. 基于模型的學(xué)習(xí)
從一組示例集中實(shí)現(xiàn)泛化的另一種方法,是構(gòu)建這些示例的模型,然后使用該模型進(jìn)行預(yù)測。這就是基于模型的學(xué)習(xí)(圖1-16)。
▲圖1-16:基于模型的學(xué)習(xí)
舉例來說,假設(shè)你想知道金錢是否讓人感到快樂,你可以從經(jīng)合組織(OECD)的網(wǎng)站上下載“幸福指數(shù)”的數(shù)據(jù),再從國際貨幣基金組織(IMF)的網(wǎng)站上找到人均GDP的統(tǒng)計(jì)數(shù)據(jù),將數(shù)據(jù)并入表格,按照人均GDP排序,你會得到如表1-1顯示的摘要。
國家 | 人均GDP | 生活滿意度 |
匈牙利 | 12 240 | 4.9 |
韓國 | 27 195 | 5.8 |
法國 | 37 675 | 6.5 |
澳大利亞 | 50 962 | 7.3 |
美國 | 55 805 | 7.2 |
▲表1-1:金錢是否讓人感到快樂?
讓我們隨機(jī)繪制幾個國家的數(shù)據(jù)(圖1-17)。
▲圖1-17:看出趨勢了么?
這里似乎有一個趨勢!雖然數(shù)據(jù)包含噪聲(即部分隨機(jī)),但是仍然可以看出隨著國內(nèi)生產(chǎn)總值的增加,生活滿意度或多或少呈現(xiàn)線性上升的趨勢。所以你可以把生活滿意度建模成一個關(guān)于人均GDP的線性函數(shù)。這個過程稱之為模型選擇:你為生活滿意度選擇了一個線性模型,該模型只有一個屬性,就是人均GDP(見以下公式)。
生活滿意度=θ0+θ1×人均GDP
這個模型有兩個參數(shù),θ0和θ1。通過調(diào)整這兩個參數(shù),你可以用這個模型來代表任意線性函數(shù),如圖1-18所示。
▲圖1-18:可能的線性模型
在使用模型之前,需要先定義參數(shù)θ0和? θ1的值。怎么才能知道什么值可以使得模型表現(xiàn)最佳呢?要回答這個問題,需要先確定怎么衡量模型的性能表現(xiàn)。要么定義一個效用函數(shù)(或適應(yīng)度函數(shù))來衡量模型有多好,要么定義一個成本函數(shù)來衡量模型有多差。
對于線性回歸問題,通常的選擇是使用成本函數(shù)來衡量線性模型的預(yù)測與訓(xùn)練實(shí)例之間的差距,目的在于盡量使這個差距最小化。
這正是線性回歸算法的意義所在:通過你提供的訓(xùn)練樣本,找出最符合所提供數(shù)據(jù)的線性模型的參數(shù),這就是訓(xùn)練模型的過程。在我們這個案例中,算法找到的最優(yōu)參數(shù)值為θ0 = 4.85,θ1 = 4.91× 10-5
現(xiàn)在,模型基本接近訓(xùn)練數(shù)據(jù)(對于線性模型而言),如圖1-19所示。
▲圖1-19:對訓(xùn)練數(shù)據(jù)擬合最佳的線性模型
現(xiàn)在終于可以運(yùn)用模型來進(jìn)行預(yù)測了。例如,你想知道塞浦路斯的人民有多幸福,但是經(jīng)合組織的數(shù)據(jù)沒有提供答案。幸好你有這個模型可以做出預(yù)測:先查查塞浦路斯的人均GDP是多少,22,587美元,然后應(yīng)用到模型中,發(fā)現(xiàn)生活滿意度可能在4.85 + 22587 × 4.91 × 10-5 = 5.96。
為了激發(fā)你的興趣,下面的示例是一段加載數(shù)據(jù)的Python代碼,包括準(zhǔn)備數(shù)據(jù),創(chuàng)建一個可視化的散點(diǎn)圖,然后訓(xùn)練線性模型并作出預(yù)測。
示例:使用Scikit-Learn訓(xùn)練并運(yùn)行一個線性模型
如果使用基于實(shí)例的學(xué)習(xí)算法,那么你會發(fā)現(xiàn)斯洛文尼亞的人均GDP最接近塞浦路斯(20,732美元),而經(jīng)合組織的數(shù)據(jù)告訴我們,斯洛文尼亞人民的生活滿意度是5.7,因此你很可能會預(yù)測塞浦路斯的生活滿意度為5.7。
如果稍微拉遠(yuǎn)一些,看看兩個與之最接近的國家——葡萄牙和西班牙的生活滿意度分別為5.1和6.5。取這三個數(shù)值的平均值,得到5.77,這也非常接近你基于模型預(yù)測所得的值。這個簡單的算法被稱為k-近臨回歸算法(在本例中,k = 3)。
要將前面代碼中的線性回歸模型替換為k-近臨回歸模型非常簡單,只需要將下面這行代碼:
替換為:
如果一切順利,你的模型將能做出很棒的預(yù)測。如果不行,你可能需要使用更多的屬性(例如就業(yè)率、健康、空氣污染等等),或者是獲得更多或更高質(zhì)量的訓(xùn)練數(shù)據(jù),再或者是選擇一個更強(qiáng)大的模型(例如,多項(xiàng)式回歸模型)。
簡而言之:
學(xué)習(xí)數(shù)據(jù)。
選擇模型。
使用訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練(即前面學(xué)習(xí)算法搜索模型參數(shù)值,從而使成本函數(shù)最小化的過程)。
最后,應(yīng)用模型對新示例進(jìn)行預(yù)測(這稱之為推斷),祈禱模型的泛化結(jié)果不錯。
以上就是一個典型的機(jī)器學(xué)習(xí)項(xiàng)目。到目前為止,我們已經(jīng)介紹了多個領(lǐng)域,你已經(jīng)知道了機(jī)器學(xué)習(xí)系統(tǒng)最常見的類別有哪些,以及典型的項(xiàng)目工作流程。
關(guān)于作者:奧雷利安·杰龍(Aurélien Géron)是機(jī)器學(xué)習(xí)方面的顧問。他曾是Google軟件工程師,在2013年到2016年主導(dǎo)了YouTube視頻分類工程。2002年和2012年,他還是Wifirst公司(一家法國的無線ISP)的創(chuàng)始人和首席技術(shù)官,2001年是Ployconseil公司(現(xiàn)在管理電動汽車共享服務(wù)Autolib)的創(chuàng)始人和首席技術(shù)官。
本文摘編自《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》,經(jīng)出版方授權(quán)發(fā)布。
延伸閱讀《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》
點(diǎn)擊上圖了解及購買
轉(zhuǎn)載請聯(lián)系微信:togo-maruko
推薦語:前谷歌工程師撰寫,“美亞”人工智能圖書暢銷榜首圖書 從實(shí)踐出發(fā),手把手教你從零開始搭建起一個神經(jīng)網(wǎng)絡(luò)。
據(jù)統(tǒng)計(jì),99%的大咖都完成了這個神操作
▼
更多精彩
在公眾號后臺對話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
PPT?|?報告?|?讀書?|?書單
Python?|?機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)
區(qū)塊鏈?|?揭秘?|?干貨?|?數(shù)學(xué)
猜你想看
干掉圍棋九段后,可定制計(jì)算能讓AI打敗程序員和芯片工程師嗎?
揭秘“21世紀(jì)最性感的職業(yè)”:數(shù)學(xué)、編程、溝通和商業(yè)技能一個都不能少!
一文讀懂量子計(jì)算機(jī)的前世今生,它的未來人類連想都不敢想
如何科學(xué)地評價妹子身材?三圍符合黃金比例是審美標(biāo)準(zhǔn)?你錯了!
Q:?這些分類你都應(yīng)用過哪些?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請聯(lián)系:baiyu@hzbook.com
更多精彩,請?jiān)诤笈_點(diǎn)擊“歷史文章”查看
點(diǎn)擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的最全机器学习种类讲解:监督、无监督、在线和批量学习都讲明白了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 都9012了,这几个公众号你还没关注?
- 下一篇: 解决交通拥堵、监测核辐射、野外搜救…无人