最實用的機器學習演算法Top5
本文將推薦五種機器學習演算法,你應該考慮是否將它們投入應用。這五種演算法覆蓋最常用於聚類、分類、數值預測和樸素貝葉斯等四個門類。
1. 聚類演算法:k-means
聚類演算法的目標:觀察輸入數據集,並藉助數據集中不同樣本的特徵差異來努力辨別不同的數據組。聚類演算法最強大之處在於,它不需要本文中其他演算法所需的訓練過程,您只需簡單地提供數據,告訴演算法你想創造多少簇(樣本的組別),演算法會為每個簇來分配一個編號。這種規範聚類演算法就是k-means。
舉個例子,你的應用可用k-means來按照營銷目的區分你的網路服務的用戶。你只需要輸入(從電子商務網站獲取的)一組客戶的購買歷史,並確定四組客戶以進行分類營銷。此時,你為k-means提供了一個數據表,每行代表一名客戶,每列則是各種對客戶的購買行為特徵(如成為客戶的時間、每月評價花費、每月評價訂單量、地理位置、對當天航運的使用比例等等)。演算法會為表格增加一欄:編號1-4來表示不同的分組。
提示:使用kmeans函數或rxKmeans. 用以執行bt rx的函數是ScaleR的一部分,所以不能支持量很大的數據集。
2&3. 兩類、多類分類演算法
分類演算法的目標:輸入一行數據及一個類目名稱表,通過對數據的校驗估測其所屬的類目。分類演算法通常按照分類時的類目總數分為兩類和多類分類演算法。在你使用種演算法預測新數據前,你需要預先使用一組類目可知的數據對演算法加以訓練。
不妨舉個簡單的例子來說明兩類分類演算法:想像一個你希望得到是/否(或真/偽)的兩極化情形。此時,類別分別為「是」和「否」(或者「真」和「偽」)。兩類分類的典型應用是:根據歷史天氣條件(如溫度、風速、降水、氣壓)和航班信息(如航空公司、起飛時間、航班號)來預測未來航班會推遲15分鐘離開還是照常起飛。輸出分為「延遲」和「不延遲」兩類。在大多數情況下,兩類分類演算法的核心是邏輯回歸的使用,後者用於生成一個在0到1範圍內的值。如果該值小於0.5,往往會解釋為第一個類(如「不延遲」),否則會劃為第二類(如「延遲」)。
另一個應用是:預測貸款的償還情況,來作為拓展信用的一部分。你必須提供貸款人的相關數據,譬如信用分數、房產年限、工作時長、信用卡債務總額、數據採集年份以及有貸款違約記錄。分類為「會違約」和「不會違約」。這個例子之所以非常有趣,是因為對於一些機器學習所處理的難題來說,僅僅有預測結果並不足夠,還必須知曉結論是怎樣得出的。這時多組分類演算法形成的決策樹就派上用場了,決策樹中的多組分類演算法可以分析從輸入到最終生成預測的過程。回到貸款這一案例,不妨想像你是銀行方,當你拒絕了消費者的貸款新的信用卡要求時,消費者的下一個問題可能是「為什麼?」。通過決策樹,你可以具體回答:「好吧,你的信用分數太低了,信用卡債台高築,工作年頭又太短了。」
充分理解兩類分類演算法後,進一步理解多類分類演算法就順理成章了。多類分類演算法可應用於電影院,來告訴後者某部電影究竟是墊底的票房毒藥(不僅口碑差,而且主流觀眾不感興趣)、口碑導向(叫好不叫座)還是票房導向(口碑差,但是票房高)。三個分類分別是「毒藥」、「口碑導向」、「票房導向」。你也可以使用決策樹,來了解一部電影為何會得到這樣的評價。
提示:使用glm或rxLogit來進行兩類或多類分類。進行多類分類時,你可以使用rpart或rxDTree來建立可觀察決策樹。
4. 數值預測
數值預測演算法的目標:根據一組輸入,預測一個具體數值。仍然使用上文中航班延誤的例子,我們現在要做的不再是預測航班是否會推遲15分鐘,數值預測演算法將讓你知曉航班將具體被推遲多久。數值預測演算法的核心是線性回歸的使用(不要與分類演算法使用的邏輯回歸混淆),通過對歷史數據的線性擬合,線性回歸可以有效地進行數值預測。最好的例子是股票的預測,線性回歸根據過往數據的分布,擬合出一條最合適的直線,延長這條線你就可以預測將來的股票價格。
提示:使用Im或rxLinMod函數。
5. 樸素貝葉斯演算法
最後,你的採納清單上還缺一個機器學習中勞苦功高的演算法——樸素貝葉斯演算法。它的核心是因果關係。更具體地說,樸素貝葉斯演算法是在給定已知的成因的情況下,預測這一成因將產生的效果以及效果的程度。現實生活中的典型例子是癌症檢測。你可以通過對病人特定病狀(效果)的觀察,來預測病人患有癌症的概率(疾病是成因)。再舉個和你相關的例子,樸素貝葉斯演算法可以根據你已購買的商品為你推薦其他商品。例如,你網購了一些雞蛋,演算法會提醒你買些牛奶,因為你的購買歷史顯示:購買雞蛋(成因)會導致購買牛奶(效果)。樸素貝葉斯有趣的一點在於,它可以用於分類和數值預測。。
提示:使用naiveBayes和rxNaiveBayes函數。
推薦閱讀
《安全解決方案轉向機器學習》
推薦閱讀:
※《Algorithms Part 1》第二周問題集(2)multiply matrices
※《Algorithms Part 1》第三周問題集(2)quick sort partition