機器學習十大算法(二)

文章來源:https://www.dezyre.com/article/top-10-machine-learning-algorithms/202python

  本人自行翻譯,若有錯誤,還請指出。後續會繼續補充實例及代碼實現。算法

3.機器學習算法概述

3.1 樸素貝葉斯分類器算法

手動分類網頁,文檔,電子郵件或任何其餘冗長的文本註釋將是困難且實際上不可能的。 這是樸素貝葉斯分類器機器學習算法來解決。 分類器是從可用類別之一分配整體的元素值的函數。 例如,垃圾郵件過濾是樸素貝葉斯分類器算法的流行應用程序。 此處的垃圾郵件過濾器是一種分類器,可爲全部電子郵件分配「垃圾郵件」或「不垃圾郵件」標籤。數據庫

樸素貝葉斯分類器算法是最受歡迎的學習方法之一,按照類似性分類,用流行的貝葉斯機率定理來創建機器學習模型,特別是用於疾病預測和文檔分類。 它是基於貝葉斯機率定理的單詞的內容的主觀分析的簡單分類。dom

何時使用機器學習算法 - 樸素貝葉斯分類器?機器學習

(1)若是您有一箇中等或大的訓練數據集。函數

(2)若是實例具備幾個屬性。工具

(3)給定分類參數,描述實例的屬性應該是條件獨立的。性能

  A.樸素貝葉斯分類器的應用學習

   

(1)情緒分析 - 用於Facebook分析表示積極或消極情緒的狀態更新。測試

(2)文檔分類 - Google使用文檔分類來索引文檔並查找相關性分數,即PageRank。 PageRank機制考慮在使用文檔分類技術解析和分類的數據庫中標記爲重要的頁面。

(3)樸素貝葉斯算法也用於分類關於技術,娛樂,體育,政治等的新聞文章。

(4)電子郵件垃圾郵件過濾 - Google Mail使用NaïveBayes算法將您的電子郵件歸類爲垃圾郵件或非垃圾郵件。

B.樸素貝葉斯分類器機器學習算法的優勢

(1)當輸入變量是分類時,樸素貝葉斯分類器算法執行得很好。

(2)當樸素貝葉斯條件獨立假設成立時,樸素貝葉斯分類器收斂更快,須要相對較少的訓練數據,而不像其餘判別模型,如邏輯迴歸。

(3)使用樸素貝葉斯分類器算法,更容易預測測試數據集的類。 多等級預測的好賭注。

(4)雖然它須要條件獨立假設,可是樸素貝葉斯分類器在各類應用領域都表現出良好的性能。

Python中的數據科學庫實現NaïveBayes - Sci-Kit學習

數據科學圖書館在R實施樸素貝葉斯 - e1071

3.2 K均值聚類算法

K-means是用於聚類分析的廣泛使用的無監督機器學習算法。 K-Means是一種非肯定性和迭代的方法。 該算法經過預約數量的簇k對給定數據集進行操做。 K Means算法的輸出是具備在簇之間分割的輸入數據的k個簇。

例如,讓咱們考慮維基百科搜索結果的K均值聚類。 維基百科上的搜索詞「Jaguar」將返回包含Jaguar這個詞的全部頁面,它能夠將Jaguar稱爲Car,Jaguar稱爲Mac OS版本,Jaguar做爲動物。 K均值聚類算法能夠應用於對描述相似概念的網頁進行分組。 所以,算法將把全部談論捷豹的網頁做爲一個動物分組到一個集羣,將捷豹做爲一個汽車分組到另外一個集羣,等等。

A.使用K-means聚類機學習算法的優勢

(1)在球狀簇的狀況下,K-Means產生比層級聚類更緊密的簇。

(2)給定一個較小的K值,K-Means聚類計算比大量變量的層次聚類更快。

B.K-Means聚類的應用

K Means Clustering算法被大多數搜索引擎(如Yahoo,Google)用於經過類似性對網頁進行聚類,並識別搜索結果的「相關率」。 這有助於搜索引擎減小用戶的計算時間。

Python中的數據科學庫實現K均值聚類 - SciPy,Sci-Kit學習,Python包裝

數據科學庫中的R實現K均值聚類 - 統計

3.3 支持向量機學習算法

支持向量機是一種分類或迴歸問題的監督機器學習算法,其中數據集教導關於類的SVM,以便SVM能夠對任何新數據進行分類。 它經過找到將訓練數據集分紅類的線(超平面)將數據分類到不一樣的類中來工做。 因爲存在許多這樣的線性超平面,SVM算法嘗試最大化所涉及的各類類之間的距離,而且這被稱爲邊際最大化。 若是識別出最大化類之間的距離的線,則增長對未看見數據良好推廣的機率。

A.SVM分爲兩類:

線性SVM - 在線性SVM中,訓練數據,即分類器由超平面分離。

非線性SVM在非線性SVM中,不可能使用超平面來分離訓練數據。 例如,用於面部檢測的訓練數據由做爲面部的一組圖像和不是面部的另外一組圖像(換句話說,除了面部以外的全部其餘圖像)組成。 在這種條件下,訓練數據太複雜,不可能找到每一個特徵向量的表示。 將面的集合與非面的集線性分離是複雜的任務。

B.使用SVM的優勢

(1)SVM對訓練數據提供最佳分類性能(精度)。

(2)SVM爲將來數據的正確分類提供了更高的效率。

(3)SVM的最好的事情是它不對數據作任何強有力的假設。

(4)它不會過分擬合數據。

C.支持向量機的應用

(1)SVM一般用於各類金融機構的股票市場預測。 例如,它能夠用來比較股票相對於同一行業中其餘股票的表現的相對錶現。 股票的相對比較有助於管理基於由SVM學習算法作出的分類的投資決策。

(2)Python中的數據科學庫實現支持向量機-SciKit學習,PyML,SVMStruct Python,LIBSVM

(3)R中的數據科學庫實現支持向量機 - klar,e1071

3.4 Apriori機器學習算法

Apriori算法是無監督機器學習算法,其從給定數據集生成關聯規則。 關聯規則意味着若是項目A出現,則項目B也以必定機率出現。 生成的大多數關聯規則採用IF_THEN格式。 例如,若是人們買了一個iPad,他們還買了一個iPad保護套。 爲了獲得這樣的結論的算法,它首先觀察購買iPad的人購買iPad的人數。 這樣一來,比例就像100個購買iPad的人同樣,85我的還購買了一個iPad案例。

A.Apriori機器學習算法的基本原理:

若是項集合頻繁出現,則項集合的全部子集也頻繁出現。

若是項集合不常常出現,則項集合的全部超集都不常常出現。

B.先驗算法的優勢

(1)它易於實現而且能夠容易地並行化。

(2)Apriori實現使用大項目集屬性。

C.Apriori算法應用

檢測不良藥物反應

Apriori算法用於關於醫療數據的關聯分析,例如患者服用的藥物,每一個患者的特徵,不良的不良反應患者體驗,初始診斷等。該分析產生關聯規則,其幫助識別患者特徵和藥物的組合 致使藥物的不良反作用。

市場籃子分析

許多電子商務巨頭如亞馬遜使用Apriori來繪製數據洞察,哪些產品多是一塊兒購買,哪些是最響應促銷。 例如,零售商可能使用Apriori預測購買糖和麪粉的人極可能購買雞蛋來烘烤蛋糕。

自動完成應用程序

Google自動完成是Apriori的另外一個流行的應用程序,其中 - 當用戶鍵入單詞時,搜索引擎尋找人們一般在特定單詞以後鍵入的其餘相關聯的單詞。

Python中的數據科學庫實現Apriori機器學習算法 - 在PyPi中有一個python實現Apriori

數據科學庫在R中實現Apriori機器學習算法 – arules

3.5 線性迴歸機器學習算法

線性迴歸算法顯示了2個變量之間的關係,以及一個變量中的變化如何影響另外一個變量。 該算法顯示了在改變自變量時對因變量的影響。 自變量被稱爲解釋變量,由於它們解釋了因變量對因變量的影響。 依賴變量一般被稱爲感興趣的因子或預測因子。

A.線性迴歸機器學習算法的優勢

(1)它是最可解釋的機器學習算法之一,使得它很容易解釋給別人。

(2)它易於使用,由於它須要最小的調諧。

(3)它是最普遍使用的機器學習技術運行快。

B.線性迴歸算法應用

估計銷售額

線性迴歸在業務中有很大的用途,基於趨勢的銷售預測。若是公司每個月的銷售額穩步增加 - 對月度銷售數據的線性迴歸分析有助於公司預測將來幾個月的銷售額。

風險評估

線性迴歸有助於評估涉及保險或金融領域的風險。健康保險公司能夠對每一個客戶的索賠數量與年齡進行線性迴歸分析。這種分析有助於保險公司發現,老年顧客傾向於提出更多的保險索賠。這樣的分析結果在重要的商業決策中起着相當重要的做用,而且是爲了解決風險。

Python中的數據科學庫實現線性迴歸 - statsmodel和SciKit

R中的數據科學庫實現線性迴歸 - 統計

3.6 決策樹機器學習算法

你正在製做一個週末計劃,去訪問最好的餐館在城裏,由於你的父母訪問,但你是猶豫的決定在哪家餐廳選擇。每當你想去一家餐館,你問你的朋友提利昂若是他認爲你會喜歡一個特定的地方。爲了回答你的問題,提利昂首先要找出,你喜歡的那種餐館。你給他一個你去過的餐館列表,告訴他你是否喜歡每一個餐廳(給出一個標記的訓練數據集)。當你問提利昂你是否想要一個特定的餐廳R,他問你各類問題,如「是」R「屋頂餐廳?」,「餐廳」R「服務意大利菜嗎?」,現場音樂?「,」餐廳R是否營業至午夜?「等等。提利昂要求您提供幾個信息問題,以最大限度地提升信息收益,並根據您對問卷的答案給予YES或NO回答。這裏Tyrion是你最喜歡的餐廳偏好的決策樹。

決策樹是一種圖形表示,其使用分支方法來基於某些條件來例示決策的全部可能的結果。在決策樹中,內部節點表示對屬性的測試,樹的每一個分支表示測試的結果,葉節點表示特定類標籤,即在計算全部屬性以後做出的決定。分類規則經過從根到葉節點的路徑來表示。

A.決策樹的類型

(1)分類樹 - 這些被視爲用於基於響應變量將數據集分紅不一樣類的默認種類的決策樹。 這些一般在響應變量本質上是分類時使用。

(2)迴歸樹 - 當響應或目標變量是連續或數字時,使用迴歸樹。 與分類相比,這些一般用於預測類型的問題。

根據目標變量的類型 - 連續變量決策樹和二進制變量決策樹,決策樹也能夠分爲兩種類型。 它是有助於決定對於特定問題須要什麼樣的決策樹的目標變量。

B.爲何選擇決策樹算法?

 

(1)這些機器學習算法有助於在不肯定性下做出決策,並幫助您改善溝通,由於他們提供了決策狀況的可視化表示。

(2)決策樹機器學習算法幫助數據科學家捕獲這樣的想法:若是採起了不一樣的決策,那麼情境或模型的操做性質將如何劇烈變化。

(3)決策樹算法經過容許數據科學家遍歷前向和後向計算路徑來幫助作出最佳決策。

C.什麼時候使用決策樹機器學習算法

(1)決策樹對錯誤是魯棒的,而且若是訓練數據包含錯誤,則決策樹算法將最適合於解決這樣的問題。

(2)決策樹最適合於實例由屬性值對錶示的問題。

(3)若是訓練數據具備缺失值,則可使用決策樹,由於它們能夠經過查看其餘列中的數據來很好地處理丟失的值。

(4)當目標函數具備離散輸出值時,決策樹是最適合的。

D.決策樹的優勢

(1)決策樹是很是本能的,能夠向任何人輕鬆解釋。來自非技術背景的人,也能夠解釋從決策樹繪製的假設,由於他們是不言自明的。

(2)當使用決策樹機器學習算法時,數據類型不是約束,由於它們能夠處理分類和數值變量。

(3)決策樹機器學習算法不須要對數據中的線性進行任何假設,所以能夠在參數非線性相關的狀況下使用。這些機器學習算法不對分類器結構和空間分佈作出任何假設。

(4)這些算法在數據探索中是有用的。決策樹隱式執行特徵選擇,這在預測分析中很是重要。當決策樹適合於訓練數據集時,在其上分割決策樹的頂部的節點被認爲是給定數據集內的重要變量,而且默認狀況下完成特徵選擇。

(5)決策樹有助於節省數據準備時間,由於它們對缺失值和異常值不敏感。缺乏值不會阻止您拆分構建決策樹的數據。離羣值也不會影響決策樹,由於基於分裂範圍內的一些樣本而不是準確的絕對值發生數據分裂。

E.決策樹的缺點

(1)樹中決策的數量越多,任何預期結果的準確性越小。

(2)決策樹機器學習算法的主要缺點是結果可能基於預期。當實時作出決策時,收益和產生的結果可能與預期或計劃不一樣。有機會,這可能致使不現實的決策樹致使錯誤的決策。任何不合理的指望可能致使決策樹分析中的重大錯誤和缺陷,由於並不老是可能計劃從決策可能產生的全部可能性。

(3)決策樹不適合連續變量,並致使不穩定性和分類高原。

(4)與其餘決策模型相比,決策樹很容易使用,可是建立包含幾個分支的大決策樹是一個複雜和耗時的任務。

(5)決策樹機器學習算法一次只考慮一個屬性,而且可能不是最適合於決策空間中的實際數據。

(6)具備多個分支的大尺寸決策樹是不可理解的,而且形成若干呈現困難。

F.決策樹機器學習算法的應用

(1)決策樹是流行的機器學習算法之一,它在財務中對期權訂價有很大的用處。

(2)遙感是基於決策樹的模式識別的應用領域。

(3)銀行使用決策樹算法按貸款申請人違約付款的機率對其進行分類。

(4)Gerber產品公司,一個流行的嬰兒產品公司,使用決策樹機器學習算法來決定他們是否應繼續使用塑料PVC(聚氯乙烯)在他們的產品。

(5)Rush大學醫學中心開發了一個名爲Guardian的工具,它使用決策樹機器學習算法來識別有風險的患者和疾病趨勢。

Python語言中的數據科學庫實現決策樹機器學習算法是 - SciPy和Sci-Kit學習。

R語言中的數據科學庫實現決策樹機器學習算法是插入符號。

3.7 隨機森林機器學習算法

讓咱們繼續咱們在決策樹中使用的一樣的例子,來解釋隨機森林機器學習算法如何工做。提利昂是您的餐廳偏好的決策樹。然而,提利昂做爲一我的並不老是準確地推廣你的餐廳偏好。要得到更準確的餐廳推薦,你問一對夫婦的朋友,並決定訪問餐廳R,若是大多數人說你會喜歡它。而不是隻是問Tyrion,你想問問Jon Snow,Sandor,Bronn和Bran誰投票決定你是否喜歡餐廳R或不。這意味着您已經構建了決策樹的合奏分類器 - 也稱爲森林。

你不想讓全部的朋友給你相同的答案 - 因此你提供每一個朋友略有不一樣的數據。你也不肯定你的餐廳偏好,是在一個困境。你告訴提利昂你喜歡開頂屋頂餐廳,但也許,只是由於它是在夏天,當你訪問的餐廳,你可能已經喜歡它。在寒冷的冬天,你可能不是餐廳的粉絲。所以,全部的朋友不該該利用你喜歡打開的屋頂餐廳的數據點,以提出他們的建議您的餐廳偏好。

經過爲您的朋友提供略微不一樣的餐廳偏好數據,您可讓您的朋友在不一樣時間向您詢問不一樣的問題。在這種狀況下,只是稍微改變你的餐廳偏好,你是注入隨機性在模型級別(不一樣於決策樹狀況下的數據級別的隨機性)。您的朋友羣如今造成了您的餐廳偏好的隨機森林。

隨機森林是一種機器學習算法,它使用裝袋方法來建立一堆隨機數據子集的決策樹。模型在數據集的隨機樣本上進行屢次訓練,以從隨機森林算法中得到良好的預測性能。在該總體學習方法中,將隨機森林中全部決策樹的輸出結合起來進行最終預測。隨機森林算法的最終預測經過輪詢每一個決策樹的結果或者僅僅經過使用在決策樹中出現最屢次的預測來導出。

例如,在上面的例子 - 若是5個朋友決定你會喜歡餐廳R,但只有2個朋友決定你不會喜歡的餐廳,而後最後的預測是,你會喜歡餐廳R多數老是勝利。

A.爲何使用隨機森林機器學習算法?

(1)有不少好的開源,在Python和R中可用的算法的自由實現。

(2)它在缺乏數據時保持準確性,而且還能抵抗異常值。

(3)簡單的使用做爲基本的隨機森林算法能夠實現只用幾行代碼。

(4)隨機森林機器學習算法幫助數據科學家節省數據準備時間,由於它們不須要任何輸入準備,而且可以處理數字,二進制和分類特徵,而無需縮放,變換或修改。

(5)隱式特徵選擇,由於它給出了什麼變量在分類中是重要的估計。

B.使用隨機森林機器學習算法的優勢

(1)與決策樹機器學習算法不一樣,過擬合對隨機森林不是一個問題。沒有必要修剪隨機森林。

(2)這些算法很快,但不是在全部狀況下。隨機森林算法當在具備100個變量的數據集的800MHz機器上運行時,而且50,000個案例在11分鐘內產生100個決策樹。

(3)隨機森林是用於各類分類和迴歸任務的最有效和通用的機器學習算法之一,由於它們對噪聲更加魯棒。

(4)很難創建一個壞的隨機森林。在隨機森林機器學習算法的實現中,容易肯定使用哪些參數,由於它們對用於運行算法的參數不敏感。一我的能夠輕鬆地創建一個體面的模型沒有太多的調整

(5)隨機森林機器學習算法能夠並行生長。

(6)此算法在大型數據庫上高效運行。

(7)具備較高的分類精度。

C.使用隨機森林機器學習算法的缺點

 

他們可能很容易使用,但從理論上分析它們是很困難的。

隨機森林中大量的決策樹能夠減慢算法進行實時預測。

若是數據由具備不一樣級別數量的分類變量組成,則算法會偏好具備更多級別的那些屬性。 在這種狀況下,可變重要性分數彷佛不可靠。

當使用RandomForest算法進行迴歸任務時,它不會超出訓練數據中響應值的範圍。

D.隨機森林機器學習算法的應用

(1)隨機森林算法被銀行用來預測貸款申請人是否多是高風險。

(2)它們用於汽車工業中以預測機械部件的故障或故障。

(3)這些算法用於醫療保健行業以預測患者是否可能發展成慢性疾病。

(4)它們還可用於迴歸任務,如預測社交媒體份額和績效分數的平均數。

(5)最近,該算法也已經被用於預測語音識別軟件中的模式並對圖像和文本進行分類。

Python語言中的數據科學庫實現隨機森林機器學習算法是Sci-Kit學習。

R語言的數據科學庫實現隨機森林機器學習算法randomForest。

3.8邏輯迴歸

這個算法的名稱可能有點混亂,在邏輯迴歸機器學習算法是分類任務,而不是迴歸問題的意義上。名稱「迴歸」在這裏意味着線性模型擬合到特徵空間中。該算法將邏輯函數應用於特徵的線性組合,以基於預測變量來預測分類依賴變量的結果。

描述單個試驗的結果的概率或機率被建模爲解釋變量的函數。邏輯迴歸算法有助於基於給定的預測變量估計落入分類依賴變量的特定級別的機率。

假設你想預測明天在紐約是否會有降雪。這裏,預測的結果不是連續的數字,由於將存在降雪或沒有降雪,所以不能應用線性迴歸。這裏的結果變量是幾個類別之一,並使用邏輯迴歸有幫助。

(剩餘內容等待更新後繼續補充)

相關文章
相關標籤/搜索