本文將推薦五種機(jī)器學(xué)習(xí)算法,你應(yīng)該考慮是否將它們投入應(yīng)用。這五種算法覆蓋最常用于聚類、分類、數(shù)值預(yù)測(cè)和樸素貝葉斯等四個(gè)門類。
1. 聚類算法:k-means
聚類算法的目標(biāo):觀察輸入數(shù)據(jù)集,并借助數(shù)據(jù)集中不同樣本的特征差異來努力辨別不同的數(shù)據(jù)組。聚類算法最強(qiáng)大之處在于,它不需要本文中其他算法所需的訓(xùn)練過程,您只需簡(jiǎn)單地提供數(shù)據(jù),告訴算法你想創(chuàng)造多少簇(樣本的組別),算法會(huì)為每個(gè)簇來分配一個(gè)編號(hào)。這種規(guī)范聚類算法就是k-means。
舉個(gè)例子,你的應(yīng)用可用k-means來按照營銷目的區(qū)分你的網(wǎng)絡(luò)服務(wù)的用戶。你只需要輸入(從電子商務(wù)網(wǎng)站獲取的)一組客戶的購買歷史,并確定四組客戶以進(jìn)行分類營銷。此時(shí),你為k-means提供了一個(gè)數(shù)據(jù)表,每行代表一名客戶,每列則是各種對(duì)客戶的購買行為特征(如成為客戶的時(shí)間、每月評(píng)價(jià)花費(fèi)、每月評(píng)價(jià)訂單量、地理位置、對(duì)當(dāng)天航運(yùn)的使用比例等等)。算法會(huì)為表格增加一欄:編號(hào)1-4來表示不同的分組。
提示:使用kmeans函數(shù)或rxKmeans. 用以執(zhí)行bt rx的函數(shù)是ScaleR的一部分,所以不能支持量很大的數(shù)據(jù)集。
2&3. 兩類、多類分類算法
分類算法的目標(biāo):輸入一行數(shù)據(jù)及一個(gè)類目名稱表,通過對(duì)數(shù)據(jù)的校驗(yàn)估測(cè)其所屬的類目。分類算法通常按照分類時(shí)的類目總數(shù)分為兩類和多類分類算法。在你使用種算法預(yù)測(cè)新數(shù)據(jù)前,你需要預(yù)先使用一組類目可知的數(shù)據(jù)對(duì)算法加以訓(xùn)練。
不妨舉個(gè)簡(jiǎn)單的例子來說明兩類分類算法:想象一個(gè)你希望得到是/否(或真/偽)的兩極化情形。此時(shí),類別分別為“是”和“否”(或者“真”和“偽”)。兩類分類的典型應(yīng)用是:根據(jù)歷史天氣條件(如溫度、風(fēng)速、降水、氣壓)和航班信息(如航空公司、起飛時(shí)間、航班號(hào))來預(yù)測(cè)未來航班會(huì)推遲15分鐘離開還是照常起飛。輸出分為“延遲”和“不延遲”兩類。在大多數(shù)情況下,兩類分類算法的核心是邏輯回歸的使用,后者用于生成一個(gè)在0到1范圍內(nèi)的值。如果該值小于0.5,往往會(huì)解釋為第一個(gè)類(如“不延遲”),否則會(huì)劃為第二類(如“延遲”)。
另一個(gè)應(yīng)用是:預(yù)測(cè)貸款的償還情況,來作為拓展信用的一部分。你必須提供貸款人的相關(guān)數(shù)據(jù),譬如信用分?jǐn)?shù)、房產(chǎn)年限、工作時(shí)長(zhǎng)、信用卡債務(wù)總額、數(shù)據(jù)采集年份以及有貸款違約記錄。分類為“會(huì)違約”和“不會(huì)違約”。這個(gè)例子之所以非常有趣,是因?yàn)閷?duì)于一些機(jī)器學(xué)習(xí)所處理的難題來說,僅僅有預(yù)測(cè)結(jié)果并不足夠,還必須知曉結(jié)論是怎樣得出的。這時(shí)多組分類算法形成的決策樹就派上用場(chǎng)了,決策樹中的多組分類算法可以分析從輸入到最終生成預(yù)測(cè)的過程?;氐劫J款這一案例,不妨想象你是銀行方,當(dāng)你拒絕了消費(fèi)者的貸款新的信用卡要求時(shí),消費(fèi)者的下一個(gè)問題可能是“為什么?”。通過決策樹,你可以具體回答:“好吧,你的信用分?jǐn)?shù)太低了,信用卡債臺(tái)高筑,工作年頭又太短了。”
充分理解兩類分類算法后,進(jìn)一步理解多類分類算法就順理成章了。多類分類算法可應(yīng)用于電影院,來告訴后者某部電影究竟是墊底的票房毒藥(不僅口碑差,而且主流觀眾不感興趣)、口碑導(dǎo)向(叫好不叫座)還是票房導(dǎo)向(口碑差,但是票房高)。三個(gè)分類分別是“毒藥”、“口碑導(dǎo)向”、“票房導(dǎo)向”。你也可以使用決策樹,來了解一部電影為何會(huì)得到這樣的評(píng)價(jià)。
提示:使用glm或rxLogit來進(jìn)行兩類或多類分類。進(jìn)行多類分類時(shí),你可以使用rpart或rxDTree來建立可觀察決策樹。
4. 數(shù)值預(yù)測(cè)
數(shù)值預(yù)測(cè)算法的目標(biāo):根據(jù)一組輸入,預(yù)測(cè)一個(gè)具體數(shù)值。仍然使用上文中航班延誤的例子,我們現(xiàn)在要做的不再是預(yù)測(cè)航班是否會(huì)推遲15分鐘,數(shù)值預(yù)測(cè)算法將讓你知曉航班將具體被推遲多久。數(shù)值預(yù)測(cè)算法的核心是線性回歸的使用(不要與分類算法使用的邏輯回歸混淆),通過對(duì)歷史數(shù)據(jù)的線性擬合,線性回歸可以有效地進(jìn)行數(shù)值預(yù)測(cè)。最好的例子是股票的預(yù)測(cè),線性回歸根據(jù)過往數(shù)據(jù)的分布,擬合出一條最合適的直線,延長(zhǎng)這條線你就可以預(yù)測(cè)將來的股票價(jià)格。
提示:使用Im或rxLinMod函數(shù)。
5. 樸素貝葉斯算法
最后,你的采納清單上還缺一個(gè)機(jī)器學(xué)習(xí)中勞苦功高的算法——樸素貝葉斯算法。它的核心是因果關(guān)系。更具體地說,樸素貝葉斯算法是在給定已知的成因的情況下,預(yù)測(cè)這一成因?qū)a(chǎn)生的效果以及效果的程度?,F(xiàn)實(shí)生活中的典型例子是癌癥檢測(cè)。你可以通過對(duì)病人特定病狀(效果)的觀察,來預(yù)測(cè)病人患有癌癥的概率(疾病是成因)。再舉個(gè)和你相關(guān)的例子,樸素貝葉斯算法可以根據(jù)你已購買的商品為你推薦其他商品。例如,你網(wǎng)購了一些雞蛋,算法會(huì)提醒你買些牛奶,因?yàn)槟愕馁徺I歷史顯示:購買雞蛋(成因)會(huì)導(dǎo)致購買牛奶(效果)。樸素貝葉斯有趣的一點(diǎn)在于,它可以用于分類和數(shù)值預(yù)測(cè)。。
提示:使用naiveBayes和rxNaiveBayes函數(shù)。
結(jié)論
好了,你有了一個(gè)實(shí)用算法的清單?,F(xiàn)在,重新審視你的應(yīng)用,想一想哪些地方可以增添點(diǎn)機(jī)器學(xué)習(xí)帶來的智能性。