『壹』 機器學習有哪些演算法
樸素貝葉斯分類器演算法是最受歡迎的學習方法之一,按照相似性分類,用流行的貝葉斯概率定理來建立機器學習模型,特別是用於疾病預測和文檔分類。 它是基於貝葉斯概率定理的單詞的內容的主觀分析的簡單分類。
什麼時候使用機器學習演算法 - 樸素貝葉斯分類器?
(1)如果您有一個中等或大的訓練數據集。
(2)如果實例具有幾個屬性。
(3)給定分類參數,描述實例的屬性應該是條件獨立的。
A.樸素貝葉斯分類器的應用
(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。
『貳』 如何運用大數據
1.可視化分析
大數據分析的使用者有大數據分析專家,同時還有普通用戶,但是他們二者對於大數據分析最基本的要求就是可視化分析,因為可視化分析能夠直觀的呈現大數據特點,同時能夠非常容易被讀者所接受,就如同看圖說話一樣簡單明了。
2. 數據挖掘演算法
大數據分析的理論核心就是數據挖掘演算法,各種數據挖掘的演算法基於不同的數據類型和格式才能更加科學的呈現出數據本身具備的特點,也正是因為這些被全世界統
計
學家所公認的各種統計方法(可以稱之為真理)才能深入數據內部,挖掘出公認的價值。另外一個方面也是因為有這些數據挖掘的演算法才能更快速的處理大數據,如
果一個演算法得花上好幾年才能得出結論,那大數據的價值也就無從說起了。
3. 預測性分析
大數據分析最終要的應用領域之一就是預測性分析,從大數據中挖掘出特點,通過科學的建立模型,之後便可以通過模型帶入新的數據,從而預測未來的數據。
4. 語義引擎
非結構化數據的多元化給數據分析帶來新的挑戰,我們需要一套工具系統的去分析,提煉數據。語義引擎需要設計到有足夠的人工智慧以足以從數據中主動地提取信息。
5.數據質量和數據管理。 大數據分析離不開數據質量和數據管理,高質量的數據和有效的數據管理,無論是在學術研究還是在商業應用領域,都能夠保證分析結果的真實和有價值。
大數據分析的基礎就是以上五個方面,當然更加深入大數據分析的話,還有很多很多更加有特點的、更加深入的、更加專業的大數據分析方法。
大數據的技術
數據採集: ETL工具負責將分布的、異構數據源中的數據如關系數據、平面數據文件等抽取到臨時中間層後進行清洗、轉換、集成,最後載入到數據倉庫或數據集市中,成為聯機分析處理、數據挖掘的基礎。
數據存取: 關系資料庫、NOSQL、SQL等。
基礎架構: 雲存儲、分布式文件存儲等。
數
據處理: 自然語言處理(NLP,Natural Language
Processing)是研究人與計算機交互的語言問題的一門學科。處理自然語言的關鍵是要讓計算機」理解」自然語言,所以自然語言處理又叫做自然語言理
解也稱為計算語言學。一方面它是語言信息處理的一個分支,另一方面它是人工智慧的核心課題之一。
統計分析:
假設檢驗、顯著性檢驗、差異分析、相關分析、T檢驗、 方差分析 、
卡方分析、偏相關分析、距離分析、回歸分析、簡單回歸分析、多元回歸分析、逐步回歸、回歸預測與殘差分析、嶺回歸、logistic回歸分析、曲線估計、
因子分析、聚類分析、主成分分析、因子分析、快速聚類法與聚類法、判別分析、對應分析、多元對應分析(最優尺度分析)、bootstrap技術等等。
數
據挖掘: 分類
(Classification)、估計(Estimation)、預測(Prediction)、相關性分組或關聯規則(Affinity
grouping or association rules)、聚類(Clustering)、描述和可視化、Description and
Visualization)、復雜數據類型挖掘(Text, Web ,圖形圖像,視頻,音頻等)
模型預測 :預測模型、機器學習、建模模擬。
結果呈現: 雲計算、標簽雲、關系圖等。
大數據的處理
1. 大數據處理之一:採集
大
數據的採集是指利用多個資料庫來接收發自客戶端(Web、App或者感測器形式等)的
數據,並且用戶可以通過這些資料庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關系型資料庫MySQL和Oracle等來存儲每一筆事務數據,除
此之外,Redis和MongoDB這樣的NoSQL資料庫也常用於數據的採集。
在大數據的採集過程中,其主要特點和挑戰是並發數高,因為同時
有可能會有成千上萬的用戶
來進行訪問和操作,比如火車票售票網站和淘寶,它們並發的訪問量在峰值時達到上百萬,所以需要在採集端部署大量資料庫才能支撐。並且如何在這些資料庫之間
進行負載均衡和分片的確是需要深入的思考和設計。
2. 大數據處理之二:導入/預處理
雖然採集端本身會有很多資料庫,但是如果要對這些
海量數據進行有效的分析,還是應該將這
些來自前端的數據導入到一個集中的大型分布式資料庫,或者分布式存儲集群,並且可以在導入基礎上做一些簡單的清洗和預處理工作。也有一些用戶會在導入時使
用來自Twitter的Storm來對數據進行流式計算,來滿足部分業務的實時計算需求。
導入與預處理過程的特點和挑戰主要是導入的數據量大,每秒鍾的導入量經常會達到百兆,甚至千兆級別。
3. 大數據處理之三:統計/分析
統
計與分析主要利用分布式資料庫,或者分布式計算集群來對存儲於其內的海量數據進行普通
的分析和分類匯總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及基於
MySQL的列式存儲Infobright等,而一些批處理,或者基於半結構化數據的需求可以使用Hadoop。
統計與分析這部分的主要特點和挑戰是分析涉及的數據量大,其對系統資源,特別是I/O會有極大的佔用。
4. 大數據處理之四:挖掘
與
前面統計和分析過程不同的是,數據挖掘一般沒有什麼預先設定好的主題,主要是在現有數
據上面進行基於各種演算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別數據分析的需求。比較典型演算法有用於聚類的Kmeans、用於
統計學習的SVM和用於分類的NaiveBayes,主要使用的工具有Hadoop的Mahout等。該過程的特點和挑戰主要是用於挖掘的演算法很復雜,並
且計算涉及的數據量和計算量都很大,常用數據挖掘演算法都以單線程為主。
整個大數據處理的普遍流程至少應該滿足這四個方面的步驟,才能算得上是一個比較完整的大數據處理。