本文將推薦五種機器學習算法,你應該考慮是否將它們投入應用。這五種算法覆蓋最常用于聚類、分類、數值預測和樸素貝葉斯等四個門類。
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. 樸素貝葉斯算法
最后,你的采納清單上還缺一個機器學習中勞苦功高的算法——樸素貝葉斯算法。它的核心是因果關系。更具體地說,樸素貝葉斯算法是在給定已知的成因的情況下,預測這一成因將產生的效果以及效果的程度?,F實生活中的典型例子是癌癥檢測。你可以通過對病人特定病狀(效果)的觀察,來預測病人患有癌癥的概率(疾病是成因)。再舉個和你相關的例子,樸素貝葉斯算法可以根據你已購買的商品為你推薦其他商品。例如,你網購了一些雞蛋,算法會提醒你買些牛奶,因為你的購買歷史顯示:購買雞蛋(成因)會導致購買牛奶(效果)。樸素貝葉斯有趣的一點在于,它可以用于分類和數值預測。。
提示:使用naiveBayes和rxNaiveBayes函數。
結論
好了,你有了一個實用算法的清單。現在,重新審視你的應用,想一想哪些地方可以增添點機器學習帶來的智能性。