教你輕松選擇合適的機(jī)器學(xué)習(xí)算法!
譯文【51CTO.com快譯】
這個(gè)問題沒有簡單明了的答案。答案取決于許多因素,比如問題陳述、預(yù)期的輸出類型、數(shù)據(jù)的類型和大小、可用的計(jì)算時(shí)間、特征數(shù)量以及數(shù)據(jù)中的觀測點(diǎn)等。
選擇算法時(shí),有幾個(gè)重要因素要考慮。
1. 訓(xùn)練數(shù)據(jù)的大小
通常建議收集大量數(shù)據(jù)以獲得可靠的預(yù)測。但很多時(shí)候,數(shù)據(jù)的可用性是個(gè)約束。因此,如果訓(xùn)練數(shù)據(jù)較小,或者數(shù)據(jù)集的觀測點(diǎn)數(shù)量較少,而遺傳或文本數(shù)據(jù)等特征數(shù)量較多,應(yīng)選擇具有高偏差/低方差的算法,比如線性回歸、樸素貝葉斯或線性SVM。
如果訓(xùn)練數(shù)據(jù)足夠大,觀測點(diǎn)數(shù)量比特征數(shù)量多,可以采用低偏差/高方差算法,比如KNN、決策樹或內(nèi)核SVM。
2. 輸出的準(zhǔn)確性及/或可解釋性
模型的準(zhǔn)確性意味著函數(shù)可預(yù)測特定觀測點(diǎn)的響應(yīng)值,該響應(yīng)值接近該觀測點(diǎn)的真實(shí)響應(yīng)值。一種高度可解釋的算法(諸如線性回歸等限制性模型)意味著,人們可以輕松理解任何單個(gè)預(yù)測變量與響應(yīng)有怎樣的關(guān)聯(lián),而靈活的模型以低可解釋性換取更高的準(zhǔn)確性。
圖1. 使用不同的統(tǒng)計(jì)學(xué)習(xí)方法來表示準(zhǔn)確性和可解釋性之間的取舍。
一些算法名為“限制性”算法,因?yàn)樗鼈儠?huì)生成小范圍的映射函數(shù)形狀。比如說,線性回歸是一種限制性方法,因?yàn)樗荒苌删€性函數(shù),例如直線。
一些算法被稱為靈活算法,因?yàn)樗鼈兛梢陨筛鼜V泛范圍的映射函數(shù)形狀。比如說,k = 1的KNN有高度靈活性,因?yàn)樗鼤?huì)考慮每個(gè)輸入數(shù)據(jù)點(diǎn)以生成映射輸出函數(shù)。下圖顯示了靈活算法和限制性算法之間的取舍。
圖2. 使用不同的統(tǒng)計(jì)學(xué)習(xí)方法來表示靈活性和可解釋性之間的取舍。
現(xiàn)在,使用哪種算法取決于業(yè)務(wù)問題的目標(biāo)。如果推理是目標(biāo),那么限制性模型更好,因?yàn)樗鼈儤O容易解釋。如果更高的準(zhǔn)確度是目標(biāo),靈活模型更好。隨著方法的靈活性提高,可解釋性通常隨之下降。
3. 速度或訓(xùn)練時(shí)間
更高的準(zhǔn)確度通常意味著更長的訓(xùn)練時(shí)間。而且,算法需要更多時(shí)間來訓(xùn)練龐大的訓(xùn)練數(shù)據(jù)。在實(shí)際應(yīng)用中,算法的選擇主要取決于這兩個(gè)因素。
樸素貝葉斯和線性與邏輯回歸等算法易于實(shí)現(xiàn)且運(yùn)行迅速。像需要調(diào)整參數(shù)的SVM、收斂時(shí)間長的神經(jīng)網(wǎng)絡(luò)和隨機(jī)森林這些算法需要大量時(shí)間來訓(xùn)練數(shù)據(jù)。
4.線性度
許多算法都基于這一假設(shè):類可以用直線(或其高維模擬)來分隔。例子包括邏輯回歸和支持向量機(jī)。線性回歸算法假設(shè)數(shù)據(jù)趨勢(shì)遵循一條直線。如果數(shù)據(jù)是線性的,則這些算法執(zhí)行起來效果很好。
然而,數(shù)據(jù)并非總是線性的,因此我們需要其他能夠處理高維和復(fù)雜數(shù)據(jù)結(jié)構(gòu)的算法。例子包括內(nèi)核SVM、隨機(jī)森林和神經(jīng)網(wǎng)絡(luò)。
找出線性度的最佳方法是擬合線性線,或者運(yùn)行邏輯回歸或SVM以檢查殘差。較高的誤差意味著數(shù)據(jù)不是線性的,需要復(fù)雜的算法才能擬合。
5. 特征數(shù)量
數(shù)據(jù)集可能有大量的特征,這些特征可能并非全部相關(guān)且重要。對(duì)于某個(gè)類型的數(shù)據(jù),比如遺傳或文本數(shù)據(jù),特征的數(shù)量與數(shù)據(jù)點(diǎn)的數(shù)量相比可能非常大。
大量特征可能會(huì)使一些學(xué)習(xí)算法陷入困境,從而導(dǎo)致訓(xùn)練時(shí)間過長。SVM更適合數(shù)據(jù)有龐大特征空間且觀測點(diǎn)較少的情況。應(yīng)該使用PCA和特征選擇方法來減少維度,并選擇重要特征。
下面這個(gè)方便的速查表詳細(xì)介紹了可用于解決不同類型的機(jī)器學(xué)習(xí)問題的算法。
機(jī)器學(xué)習(xí)算法可以分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。本文介紹如何使用該速查表的過程。
速查表主要分為兩種學(xué)習(xí)類型:
- 在訓(xùn)練數(shù)據(jù)擁有與輸入變量相對(duì)應(yīng)的輸出變量的情況下,采用監(jiān)督學(xué)習(xí)算法。該算法分析輸入數(shù)據(jù)并學(xué)習(xí)函數(shù),以映射輸入變量和輸出變量之間的關(guān)系。
監(jiān)督學(xué)習(xí)可以進(jìn)一步分為回歸、分類、預(yù)測和異常檢測。
- 訓(xùn)練數(shù)據(jù)沒有響應(yīng)變量時(shí),使用無監(jiān)督學(xué)習(xí)算法。這類算法試圖找到數(shù)據(jù)中的固有模式和隱藏結(jié)構(gòu)。聚類和降維算法是無監(jiān)督學(xué)習(xí)算法的兩種類型。
以下信息圖只解釋了回歸、分類、異常檢測和聚類,以及可以運(yùn)用這每一種方法的例子。
試圖解決新問題時(shí)要考慮的主要點(diǎn)是:
- 定義問題。問題的目的是什么?
- 探究數(shù)據(jù)并熟悉數(shù)據(jù)。
- 從基本模型入手以構(gòu)建一個(gè)基準(zhǔn)模型,然后嘗試更復(fù)雜的方法。
話雖如此,請(qǐng)記住:“更好的數(shù)據(jù)常常勝過更好的算法”。同樣重要的是設(shè)計(jì)良好的特征。嘗試一堆算法,并比較其性能,以選擇最適合您特定任務(wù)的算法。另外,請(qǐng)嘗試集成(ensemble)方法,因?yàn)樗鼈兺ǔL峁O高的準(zhǔn)確性。
原文標(biāo)題:An easy guide to choose the right Machine Learning algorithm,作者:Yogita Kinha
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】