在本文中,根本沒有足夠的空間來涵蓋所有的機(jī)器學(xué)習(xí)算法!相反,更好的方法是專注于最常見的那些。
在本章的剩余部分,我們將研究以下內(nèi)容:
· 監(jiān)督學(xué)習(xí):你可以將這些算法歸結(jié)為兩種變體。一種是分類,它將數(shù)據(jù)集分為常見的標(biāo)簽。算法示例包括樸素貝葉斯分類器和k-最近鄰算法。接下來是回歸,它在數(shù)據(jù)中找到連續(xù)的模式。對(duì)于這一點(diǎn),我們將研究線性回歸、集成建模和決策樹。
· 無監(jiān)督學(xué)習(xí):在這個(gè)類別中,我們將介紹聚類。在這方面,我們將涵蓋k均值聚類。
圖3-3展示了機(jī)器學(xué)習(xí)算法的一般框架。
在本章早些時(shí)候,我們看過貝葉斯定理。至于機(jī)器學(xué)習(xí),已經(jīng)被修改成了一種稱為樸素貝葉斯分類器的東西。它是“樸素”的,因?yàn)榧僭O(shè)變量是相互獨(dú)立的,也就是說,一個(gè)變量的發(fā)生與其他變量無關(guān)。的確,這可能看起來像是一個(gè)缺點(diǎn)。但事實(shí)是,樸素貝葉斯分類器已經(jīng)被證明是非常有效且開發(fā)速度很快的。
還有另一個(gè)要注意的假設(shè):先驗(yàn)假設(shè)。這表示如果數(shù)據(jù)發(fā)生了變化,預(yù)測將是錯(cuò)誤的。
樸素貝葉斯分類器有三種變體:
· 伯努利:如果您有二進(jìn)制數(shù)據(jù)(真/假,是/否)。
· 多項(xiàng)式:如果數(shù)據(jù)是離散的,比如書的頁數(shù)。
· 高斯:如果您正在處理符合正態(tài)分布的數(shù)據(jù)。
樸素貝葉斯分類器的常見用例包括文本分析。例如,電子郵件垃圾郵件檢測、客戶細(xì)分、情感分析、醫(yī)學(xué)診斷和天氣預(yù)測。原因在于,這種方法對(duì)基于關(guān)鍵特征和模式的數(shù)據(jù)分類很有用。
為了了解如何做到這一點(diǎn),讓我們舉個(gè)例子:假設(shè)您經(jīng)營一家電子商務(wù)網(wǎng)站,擁有大量的客戶交易數(shù)據(jù)庫。您想了解產(chǎn)品評(píng)論評(píng)級(jí)、折扣和年度時(shí)間等變量如何影響銷售。
表3-2顯示了數(shù)據(jù)集的一個(gè)示例。
然后,您將把這些數(shù)據(jù)組織成頻率表,如表3-3和表3-4所示。
在研究這些數(shù)據(jù)時(shí),我們將購買稱為一個(gè)事件,而將折扣和產(chǎn)品評(píng)價(jià)視為獨(dú)立變量。然后,我們可以為其中一個(gè)獨(dú)立變量制作概率表,比如產(chǎn)品評(píng)價(jià)。請參閱表3-5。
利用這張圖表,我們可以看到在產(chǎn)品評(píng)價(jià)較低的情況下購買的概率為7/24,約為29%。換句話說,樸素貝葉斯分類器允許在數(shù)據(jù)集內(nèi)進(jìn)行更精細(xì)的預(yù)測。它相對(duì)容易訓(xùn)練,可以在小型數(shù)據(jù)集上表現(xiàn)良好。
K-近鄰算法(k-NN)是一種用于對(duì)數(shù)據(jù)集進(jìn)行分類的方法(k代表近鄰算法的數(shù)量)。其理論是,彼此接近的值很可能是模型的良好預(yù)測因子。可以將其類比為“物以類聚”。
K-NN的一個(gè)用例是信用評(píng)分,該評(píng)分基于多種因素,如收入、付款歷史、地理位置、房屋所有權(quán)等。算法將數(shù)據(jù)集劃分為不同的客戶段。然后,當(dāng)新客戶加入數(shù)據(jù)庫時(shí),您可以查看他或她屬于哪個(gè)群體,這將成為信用評(píng)分。
K-NN實(shí)際上很容易計(jì)算。事實(shí)上,它被稱為“惰性學(xué)習(xí)”,因?yàn)閿?shù)據(jù)沒有訓(xùn)練過程。
要使用K-NN,您需要確定最近值之間的距離。如果值是數(shù)值型的,可以基于歐幾里得距離進(jìn)行計(jì)算,這涉及復(fù)雜的數(shù)學(xué)?;蛘?,如果存在分類數(shù)據(jù),那么可以使用重疊度量(這是數(shù)據(jù)相同或非常相似的情況)。
接下來,您需要確定近鄰算法的數(shù)量。雖然擁有更多的鄰居會(huì)使模型平滑,但也可能需要大量的計(jì)算資源。為了解決這個(gè)問題,您可以將更靠近其鄰居的數(shù)據(jù)分配更高的權(quán)重。
線性回歸顯示了某些變量之間的關(guān)系。該方程(假設(shè)有足夠并且有質(zhì)量的數(shù)據(jù))可以根據(jù)輸入來幫助預(yù)測結(jié)果。
示例:假設(shè)我們有關(guān)于備考時(shí)間與考試成績的數(shù)據(jù)。請參見表3-6。
正如您所看到的,總體關(guān)系是正向的(這描述了更多學(xué)習(xí)時(shí)間與更高分?jǐn)?shù)之間的相關(guān)趨勢)。使用回歸算法,我們可以繪制最佳擬合線(這是通過使用稱為“最小二乘法”的計(jì)算來完成的,該方法最小化了誤差)。請參見圖3-4。
從中我們得到以下方程式:
成績 = 學(xué)習(xí)小時(shí)數(shù) × 0.03731 + 0.6889
然后,假設(shè)您為考試學(xué)習(xí)了4小時(shí)。您的預(yù)估成績將是多少?方程告訴我們?nèi)绾斡?jì)算:
0.838 = 4 × 0.03731 + 0.6889
這個(gè)估算有多準(zhǔn)確?為了回答這個(gè)問題,我們可以使用一個(gè)叫做R平方的計(jì)算。在我們的案例中,它是0.9180(范圍從0到1)。該值越接近1,擬合度就越好。所以0.9180相當(dāng)高。這意味著學(xué)習(xí)小時(shí)數(shù)解釋了考試成績的91.8%。
現(xiàn)在,這個(gè)模型是簡化的。為了更好地反映現(xiàn)實(shí)情況,您可以添加更多的變量來解釋考試成績,比如學(xué)生的出勤率。在這種情況下,您將使用多元回歸。
■ 注意 如果某個(gè)變量的系數(shù)非常小,那么最好不要將其包括在模型中。
有時(shí)數(shù)據(jù)可能不是呈直線分布的,此時(shí)回歸算法將無法工作。但您可以使用更復(fù)雜的版本,稱為多項(xiàng)式回歸。
毫無疑問,對(duì)于某些數(shù)據(jù)集來說,聚類可能不起作用。但好消息是有替代方法,比如決策樹。這種方法通常在非數(shù)值數(shù)據(jù)上表現(xiàn)更好。
決策樹的起點(diǎn)是根節(jié)點(diǎn),位于流程圖的頂部。從這個(gè)點(diǎn)開始,將會(huì)有一棵決策路徑的樹,稱為分支。在這些點(diǎn)上,您將使用一個(gè)算法做出決策,并計(jì)算概率。樹的末端將是葉子節(jié)點(diǎn)(或結(jié)果)。
在機(jī)器學(xué)習(xí)領(lǐng)域,一個(gè)著名的例子是使用決策樹來預(yù)測泰坦尼克號(hào)的沉沒事件。該模型根據(jù)三個(gè)特征來預(yù)測乘客的生存率:性別、年齡和隨行的配偶或子女?dāng)?shù)量(sibsp)。以下是它的樣子,見圖3-5。
決策樹具有明顯的優(yōu)勢。它們易于理解,適用于大型數(shù)據(jù)集,并為模型提供透明度。
然而,決策樹也有缺點(diǎn)。一個(gè)是誤差傳播。如果其中一個(gè)分支被證明是錯(cuò)誤的,那么這個(gè)錯(cuò)誤可能會(huì)在模型的其余部分中蔓延傳播!
接下來,隨著決策樹的增長,將會(huì)有更多的復(fù)雜性,因?yàn)閷?huì)有大量的算法。這最終可能導(dǎo)致模型性能降低。
集成建模意味著在預(yù)測中使用不止一個(gè)模型。盡管這會(huì)增加復(fù)雜性,但已經(jīng)證明這種方法能夠產(chǎn)生強(qiáng)大的結(jié)果。
要看到這一點(diǎn),可以看看2006年開始的“奈飛獎(jiǎng)”,該公司宣布將支付100萬美元給任何能夠?qū)⑵潆娪巴扑]系統(tǒng)的準(zhǔn)確性提高10%或更多的個(gè)人或團(tuán)隊(duì)。奈飛還提供了一份包含了來自480,189名用戶對(duì)17,770部電影的超過1億次評(píng)分的數(shù)據(jù)集。最終這份數(shù)據(jù)集有超過30,000次的下載。
為什么奈飛要做這一切呢?一個(gè)重要原因是公司自己的工程師在取得進(jìn)展方面遇到了困難。那么為什么不把它交給大家來解決呢?這被證明是相當(dāng)聰明的,與潛在好處相比,100萬美元的獎(jiǎng)金真的很微薄。
這次比賽無疑激發(fā)了眾多程序員和數(shù)據(jù)科學(xué)家的活動(dòng),包括學(xué)生和AT&T等公司的員工。
奈飛還使比賽變得簡單。主要要求是團(tuán)隊(duì)必須披露他們的方法,這有助于提高結(jié)果(甚至有一個(gè)團(tuán)隊(duì)排名的儀表板)。
但直到2009年,一個(gè)團(tuán)隊(duì)——貝爾科的實(shí)際混沌——贏得了獎(jiǎng)項(xiàng)。然而,也存在相當(dāng)大的挑戰(zhàn)。
那么,獲勝的團(tuán)隊(duì)是如何做到的呢?第一步是創(chuàng)建一個(gè)基準(zhǔn)模型,以平滑處理數(shù)據(jù)的復(fù)雜問題。例如,一些電影只有少數(shù)幾個(gè)評(píng)分,而其他電影則有數(shù)千個(gè)評(píng)分。然后,存在一個(gè)棘手的問題,即有些用戶總是給一部電影評(píng)一星。為了處理這些問題,貝爾科使用機(jī)器學(xué)習(xí)來預(yù)測評(píng)分,以填補(bǔ)這些空白。
一旦基準(zhǔn)模型完成,就會(huì)有更多的困難挑戰(zhàn)需要解決,比如以下幾點(diǎn):
獲勝的團(tuán)隊(duì)使用了集成建模,涉及數(shù)百種算法。他們還使用了一種稱為“提升”(boosting)的方法,這是構(gòu)建連續(xù)模型的過程。通過這種方法,算法中的權(quán)重根據(jù)前一個(gè)模型的結(jié)果進(jìn)行調(diào)整,有助于隨著時(shí)間的推移提高預(yù)測的準(zhǔn)確性(另一種方法稱為“裝袋”(bagging),是同時(shí)構(gòu)建不同模型,然后選擇最佳模型)。
但最終,貝爾科找到了解決方案。然而,盡管如此,奈飛并沒有使用這個(gè)模型!現(xiàn)在不清楚為什么會(huì)這樣。也許是因?yàn)槟物w無論如何都在遠(yuǎn)離五星評(píng)級(jí),更加專注于流媒體。這個(gè)比賽也因?yàn)橛腥苏J(rèn)為可能存在隱私侵犯而引起了一些負(fù)面反應(yīng)。
不管怎樣,這次比賽確實(shí)突顯了機(jī)器學(xué)習(xí)的威力,以及合作的重要性。
K均值聚類算法對(duì)于大型數(shù)據(jù)集非常有效,它將相似的未標(biāo)記數(shù)據(jù)分成不同的組。第一步是選擇k,即簇的數(shù)量。為了幫助確定k的值,您可以對(duì)數(shù)據(jù)進(jìn)行可視化,以查看是否存在明顯的分組區(qū)域。
下面是一個(gè)示例數(shù)據(jù),如圖3-6所示:
對(duì)于這個(gè)示例,我們假設(shè)將有兩個(gè)簇,這意味著也將有兩個(gè)質(zhì)心。質(zhì)心是簇的中點(diǎn)。我們將隨機(jī)分配每個(gè)質(zhì)心,您可以在圖3-7中看到。
正如您所看到的,左上角的質(zhì)心看起來偏離較遠(yuǎn),但右側(cè)的一個(gè)更好。然后,K均值算法將計(jì)算質(zhì)心的平均距離,然后更改它們的位置。這將循環(huán)進(jìn)行,直到錯(cuò)誤相當(dāng)小,這一點(diǎn)稱為收斂點(diǎn),您可以在圖3-8中看到。
當(dāng)然,這只是一個(gè)簡單的示例。但當(dāng)然,在處理復(fù)雜的數(shù)據(jù)集時(shí),難以確定初始簇的數(shù)量。在這種情況下,您可以嘗試不同的k值,然后測量平均距離。通過多次重復(fù)此過程,應(yīng)該會(huì)更加準(zhǔn)確。
那么為什么不只選擇一個(gè)較高的k值?您當(dāng)然可以這樣做。但當(dāng)計(jì)算平均值時(shí),您會(huì)注意到只會(huì)有逐漸的改進(jìn)。因此,一種方法是在這種情況下停止。這在圖3-9中可以看到。
然而,K均值也有其缺點(diǎn)。例如,它在處理非球形數(shù)據(jù)時(shí)效果不佳,就像圖3-10中的情況一樣。
對(duì)于這種情況,K均值算法可能不會(huì)捕捉到周圍的數(shù)據(jù),即使它們具有某種模式。但是有一些算法可以幫助解決這個(gè)問題,比如DBScan(具有噪聲的基于密度的空間聚類),它旨在處理數(shù)據(jù)集大小差異很大的混合數(shù)據(jù)。不過需要指出,DBScan可能需要大量的計(jì)算資源。
接下來,還有一種情況是有一些簇包含大量數(shù)據(jù),而其他簇包含很少數(shù)據(jù)。會(huì)發(fā)生什么情況?K均值算法可能會(huì)忽略掉那些包含少量數(shù)據(jù)的簇,就像圖3-11中的情況一樣。
這些算法可能會(huì)變得復(fù)雜,需要強(qiáng)大的技術(shù)技能。但重要的是不要在技術(shù)細(xì)節(jié)上陷得太深。畢竟,重點(diǎn)是找到利用機(jī)器學(xué)習(xí)實(shí)現(xiàn)明確目標(biāo)的方法。
再次強(qiáng)調(diào),Stich Fix是獲取有關(guān)這方面指導(dǎo)的好地方。該公司的首席算法官埃里克·科爾森(Eric Colson)在《哈佛商業(yè)評(píng)論》(Harvard Business Review)的2023年11月刊上發(fā)表了一篇題為“基于好奇心的數(shù)據(jù)科學(xué)”(Curiosity-Driven Data Science)的文章。在文章中,他分享了自己在創(chuàng)建數(shù)據(jù)驅(qū)動(dòng)型組織方面的經(jīng)驗(yàn)。
這其中的核心是允許數(shù)據(jù)科學(xué)家探索新的想法、概念和方法。這導(dǎo)致了人工智能被應(yīng)用于業(yè)務(wù)的核心功能,如庫存管理、關(guān)系管理、物流和商品采購。這是一次變革,使組織變得更加靈活和高效??茽柹€認(rèn)為,這為組織提供了“對(duì)抗競爭的保護(hù)屏障”。
他的文章還提供了有關(guān)數(shù)據(jù)分析的其他有用建議:
· 數(shù)據(jù)科學(xué)家:他們不應(yīng)該隸屬于其他部門,而應(yīng)該有自己的部門,直接向首席執(zhí)行官報(bào)告。這有助于關(guān)注關(guān)鍵優(yōu)先事項(xiàng),以及全面了解組織的需求。
· 實(shí)驗(yàn):當(dāng)數(shù)據(jù)科學(xué)家有新想法時(shí),應(yīng)該在少數(shù)客戶的小樣本上進(jìn)行測試。如果有反響,那么可以推廣到其他客戶群體。
· 資源:數(shù)據(jù)科學(xué)家需要完全訪問數(shù)據(jù)和工具。還應(yīng)提供持續(xù)培訓(xùn)。
· 通才:聘請橫跨不同領(lǐng)域的數(shù)據(jù)科學(xué)家,如建模、機(jī)器學(xué)習(xí)和分析(科爾森將這些人稱為“全棧數(shù)據(jù)科學(xué)家”)。這會(huì)導(dǎo)致小型團(tuán)隊(duì),通常更高效和更有生產(chǎn)力。
· 文化:科爾森尋找“通過實(shí)踐學(xué)習(xí)、適應(yīng)不確定性、平衡長期和短期回報(bào)”等價(jià)值觀。
· 機(jī)器學(xué)習(xí)的根源可以追溯到20世紀(jì)50年代,它是計(jì)算機(jī)能夠在不需要明確編程的情況下學(xué)習(xí)的領(lǐng)域。它通過使用復(fù)雜的統(tǒng)計(jì)技術(shù)來吸收和處理數(shù)據(jù)。
· 異常值是數(shù)據(jù)集中遠(yuǎn)離其余數(shù)字的數(shù)據(jù)。
· 標(biāo)準(zhǔn)差測量了與平均值的平均距離。
· 正態(tài)分布——呈鐘形的形狀——表示了變量的概率總和。
· 貝葉斯定理是一種復(fù)雜的統(tǒng)計(jì)技術(shù),可以更深入地研究概率。
· 真正例是模型做出正確預(yù)測的情況。另一方面,假正例是模型預(yù)測結(jié)果為真,但實(shí)際上并不是真的情況。
· 皮爾遜相關(guān)系數(shù)顯示了兩個(gè)變量之間的關(guān)系強(qiáng)度,范圍從1到-1。
· 特征提取或特征工程描述了選擇模型變量的過程。這很關(guān)鍵,因?yàn)榧词挂粋€(gè)錯(cuò)誤的變量也可能對(duì)結(jié)果產(chǎn)生重大影響。
· 訓(xùn)練數(shù)據(jù)用于創(chuàng)建算法中的關(guān)系。另一方面,測試數(shù)據(jù)用于評(píng)估模型。
· 監(jiān)督學(xué)習(xí)使用帶標(biāo)簽的數(shù)據(jù)創(chuàng)建模型,而無監(jiān)督學(xué)習(xí)則不使用。還有半監(jiān)督學(xué)習(xí),它同時(shí)使用了兩種方法。
· 強(qiáng)化學(xué)習(xí)是一種通過獎(jiǎng)勵(lì)準(zhǔn)確預(yù)測并懲罰不準(zhǔn)確預(yù)測的方法來訓(xùn)練模型的方法。
· k-近鄰算法(k-NN)是一種基于接近的值是模型的良好預(yù)測因素的概念的算法。
· 線性回歸估計(jì)了某些變量之間的關(guān)系。R平方將指示關(guān)系的強(qiáng)度。
· 決策樹是基于是/否決策流程的模型。
· 集成模型使用多個(gè)模型進(jìn)行預(yù)測。
· k均值聚類算法將相似的無標(biāo)簽數(shù)據(jù)分組到不同的組中。
聯(lián)系客服