目前最實用的機器學習演算法,你認為是哪幾種?
本文將推薦幾種機器學習演算法,你應該考慮是否將它們投入應用。這五種演算法覆蓋最常用於聚類、分類、數值預測和樸素貝葉斯等四個門類。

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 來建立可觀察決策樹。
在此我向大家推薦一個大資料技術交流圈: 658558542 突破技術瓶頸,提升思維能力 ( ☛點選即可加入群聊 )
4. 數值預測
數值預測演算法的目標:根據一組輸入,預測一個具體數值。仍然使用上文中航班延誤的例子,我們現在要做的不再是預測航班是否會推遲15分鐘,數值預測演算法將讓你知曉航班將具體被推遲多久。數值預測演算法的核心是線性迴歸的使用(不要與分類演算法使用的邏輯迴歸混淆),通過對歷史資料的線性擬合,線性迴歸可以有效地進行數值預測。最好的例子是股票的預測,線性迴歸根據過往資料的分佈,擬合出一條最合適的直線,延長這條線你就可以預測將來的股票價格。
提示:使用 Im 或 rxLinMod 函式。
5. 樸素貝葉斯演算法
最後,你的採納清單上還缺一個機器學習中勞苦功高的演算法——樸素貝葉斯演算法。它的核心是因果關係。更具體地說,樸素貝葉斯演算法是在給定已知的成因的情況下,預測這一成因將產生的效果以及效果的程度。現實生活中的典型例子是癌症檢測。你可以通過對病人特定病狀(效果)的觀察,來預測病人患有癌症的概率(疾病是成因)。再舉個和你相關的例子,樸素貝葉斯演算法可以根據你已購買的商品為你推薦其他商品。例如,你網購了一些雞蛋,演算法會提醒你買些牛奶,因為你的購買歷史顯示:購買雞蛋(成因)會導致購買牛奶(效果)。樸素貝葉斯有趣的一點在於,它可以用於分類和數值預測。。
提示:使用 naiveBayes 和 rxNaiveBayes 函式。
結論
好了,你有了一個實用演算法的清單。現在,重新審視你的應用,想一想哪些地方可以增添點機器學習帶來的智慧性。
感謝您的觀看,如有不足之處,歡迎批評指正。
在此我向大家推薦一個大資料開發交流圈:
658558542 ( ☛點選即可加入群聊 )
裡面整理了一大份學習資料,全都是些乾貨,包括大資料技術入門,大資料離線處理、資料實時處理、Hadoop 、Spark、Flink、推薦系統演算法以及原始碼解析等,送給每一位大資料小夥伴,讓自學更輕鬆。這裡不止是小白聚集地,還有大牛線上解答!歡迎初學和進階中的小夥伴一起進群學習交流,共同進步!
最後祝福所有遇到瓶頸的大資料程式設計師們突破自己,祝福大家在往後的工作與面試中一切順利。