演算法集成器
① 集成演算法名詞解釋
集成演算法(Emseble Learning)是構建多個學習器,然後通過一定策略結合把它們來完成學習任務的,常常可以獲得比單一學習顯著優越的學習器。
② 隨機森林原理與Sklearn參數詳解
目錄
1、集成演算法概述
2 、 Sklearn中RandomForestClassifier重要參數詳解
3、Sklearn中RandomForestRegressor重要參數詳解
4、附錄
5、總結
1、集成演算法概述: 集成演算法的目標是多個評估器建模的結果,匯總後得到一個綜合結果,以此來獲取比單個模型更好的回歸或分類表現。多個模型集成成為的模型叫集成評估器,單個模型叫基評估器。通常說有三種集成演算法:裝袋法(Bagging)、提升法(Boosting)和stacking。裝袋法的基本思想是構建多個相互獨立的基評估器,然後通過預測平均或多數表決原則來決定集成評估器的結果。裝袋法的典型代表就是隨機森林(RandomForest)。
2、RandomForestClassifier重要參數:
n_estimators: integer, optional (default=100), 森林中基評估器的數量,即樹的數量。n_estimators越大模型效果越好,但達到一定程度時,精確性趨於穩定。n_estimators越大模型的計算量越大,需要的內存也越大。
random_state: int, RandomState instance or None, optional (default=None), 控制樹的生成模式。在DecisionTreeClassifier中random_state生成隨機的一棵樹,這里的參數控制的是隨機生成一片森林模式。 用袋裝法集成時,基分類器應當是相互獨立的,是不同的。
bootstrap: boolean, optional (default=True), 要讓基分類器盡量都不一樣,一種方式是使用不同的訓練數據集來訓練不同的樹。而裝袋法採用的是有放回採樣法,來確保每棵樹的隨機性。booststrap就是用來控制抽樣技術的參數。
oob_score: bool (default=False), 是否啟用袋外數據做測試。有放回採樣策略中,自助數據集平均包含63%的原始數據被抽中(每個樣本從原始數據抽中到自助集的概率為: =63%左右),也就是說袋外數據(out of bag data 簡稱oob數據)大致佔37%。在使用隨機森林時,我們可以不劃分測試和訓練集,只要開啟袋外數據支持,就可以用袋外數據測試我們的模型。然後這並不絕對,如果n足夠大,則沒有數據落入袋外,自然無法使用oob數據來測試模型了。如果需要用袋外數據做測試,則設置該參數為True,實例化並訓練模型完成後,可以通過oob_score_來查看真是落入袋外的數據量。
重要屬性與介面:
除了estimators_和oob_socre_這兩個屬性外,作為樹模型也有feature_importances這個屬性。
常用的介面主要有:apply,fit,predict和score。除此之外,還需要注意隨機森林的predict_proba介面,該介面返回預測數據的被分到每一類標簽的概率。如果是二分類,則predict_proba返回的數值大於0.5時被劃分為1,否則為0。(在sklearn的隨機森林中predict_proba返回每棵樹的概率,然後取平均概率,從而根據概率值是否大於0.5劃分為1,否則為0,來決定樣本分類的)
Bagging要求基分類器相互獨立,袋裝法另一個必要條件是:基分類器的誤差率要小於0.5,即准確率大於0.5,集成效果才好於基分類器。所以使用隨機森林前,先要觀察各基分類器是否都有至少50%的預測正確率。
3、RandomForestRegressor重要參數:
criterion:string, optional (default=」mse」)
1、輸入「mse」使用均方誤差mean squared err(MSE),父節點和子節點之間的均方誤差的差額將被用來作為特徵選擇的標准,這種方法通過使用葉子節點的均值來最小化L2損失。
2、輸入「friedman_mse」使用費爾德曼均方誤差,這種指標使用費爾德曼針對潛在分枝中的問題改進後的均方誤差。
3、輸入「mae」使用絕對平均誤差MAE(mean absolute error),這種指標使用葉節點的中值來最小化L1損失。
,
其中N是樣本數量,i是每一個數據樣本,fi是模型回歸出的數值,yi是樣本點i實際的數值標簽。因此MSE的本質是回歸值與真實值的差異。 在回歸樹中,MSE不僅是最優的分枝指標,也是最常用的衡量回歸樹回歸質量的指標。
回歸樹介面:
score: 返回的是R平方,並不是MSE。R平方定義如下:
, , ,
其中u是殘差平方和(MSE*N),v是總平方和,N是樣本數量,i是每個樣本,fi是模型回歸出的值,yi是樣本點i的實際數值標簽。y帽是真實數值標簽的平均數。
R2可以為正也可以為負,當殘差平方和遠遠大於模型總平方和時,模型非常糟糕,R2為負;但MSE永遠為正。但Sklearn當中使用均方誤差作為評判標准時,卻是計算「負均方誤差」(neg_mean_squared_error)以負數表示。其實就是MSE前加了個負號。
4、附錄
參數列表
屬性列表
介面列表
5、總結: 本文詳細介紹了集成學習中Bagging的典型代表隨機森林的工作原理,同時對sklearn中RandomForestClassifier和RandomForestRegressor核心參數、屬性、介面進行了介紹。
③ 什麼是Bagging演算法
bagging 是bootstrap aggregating的縮寫,它首次介紹是在L. Breiman, Bagging predictors, Mach. Learn. 24 (2) (1996) 123--140 ,是第一批用於多分類器集成演算法。該集成方法包括在一個訓練集合上重復訓練得到的多個分類器。
給定一個大小為N的訓練集合,bagging方法構建了n個新的訓練集合S1,S2...Sn,每個訓練集合都是由隨機抽取的N個樣本進行訓練。得到的
④ 地平線(Horizon Robotics)有哪些核心技術在行業內受認可么
地平線(Horizon Robotics)具有自主研發兼具極致效能與高效靈活的邊緣人工智慧晶元及解決方案的能力;可面向智能駕駛以及更廣泛的智能物聯網領域,提供包括高效能邊緣AI晶元、開放工具鏈、豐富演算法樣例等在內的全面賦能服務。其次,地平線具有世界領先的深度學習和決策推理演算法開發能力,可將演算法集成在高性能、低功耗、低成本的邊緣人工智慧處理器及軟硬平台上。同時,地平線(Horizon Robotics)還自主設計研發了創新性的人工智慧專用處理器「Brain Processing Unit(BPU)」,可以提供設備端上軟硬結合的嵌入式人工智慧解決方案。
至於行業認可度,舉個例子說吧~地平線(Horizon Robotics)是目前業界唯一的覆蓋從L2到L4的全場景整車智能晶元方案提供商。征程5系列發布當天,就與上汽集團、長城汽車、比亞迪等多家知名車企達成量產合作意向了,行業地位不言而喻~
⑤ 如何用weka將多種分類演算法集成起來
需要將文件轉換成標稱(nominal)類型,weka把exel中的數字看作是數據類型,不能處理,從而導致Apriori演算法沒法用。
WEKA的全名是懷卡托智能分析環境(Waikato Environment for Knowledge Analysis),同時weka也是紐西蘭的一種鳥名,而WEKA的主要開發者來自紐西蘭。wekaWEKA作為一個公開的數據挖掘工作,集合了大量能承擔數據挖掘任務的機器學習演算法,包括對數據進行預處理,分類,回歸、聚類、關聯規則以及在新的互動式界面上的可視化。
如果想自己實現數據挖掘演算法的話,可以參考weka的介面文檔。在weka中集成自己的演算法甚至借鑒它的方法自己實現可視化工具並不是件很困難的事情。
2005年8月,在第11屆ACM SIGKDD國際會議上,懷卡託大學的Weka小組榮獲了數據挖掘和知識探索領域的最高服務獎,Weka系統得到了廣泛的認可,被譽為數據挖掘和機器學習 歷史上的里程碑,是現今最完備的數據挖掘工具之一(已有11年的發展歷史)。Weka的每月次數已超過萬次。
⑥ 演算法是集成在系統里 還是晶元里
國密演算法是國家密碼局制定標準的一系列演算法。其中包括了對稱加密演算法,橢圓曲線非對稱加密演算法,雜湊演算法。具體包括SM1,SM2,SM3等,其中: SM2為國家密碼管理局公布的公鑰演算法,其加密強度為256位。其它幾個重要的商用密碼演算法包括: SM1,對稱加密演算法,加密強度為128位,採用硬體實現; SM3,密碼雜湊演算法,雜湊值長度為32位元組,和SM2演算法同期公布,參見《國家密碼管理局公告(第 22 號)》; SMS4,對稱加密演算法,隨WAPI標准一起公布,可使用軟體實現,加密強度為128位。
⑦ 科普:國產密碼演算法
密碼學(cryptography): 通過將信息編碼使其不可讀,從而達到安全性。
演算法 :取一個輸入文本,產生一個輸出文本。
加密演算法 :發送方進行加密的演算法。
解密演算法 :接收方進行解密的演算法。
對稱密鑰加密 (Symmetric Key Cryptography):加密與解密使用相同密鑰。
非對稱密鑰加密 (Asymmetric Key Cryptography):加密與解密使用不同密鑰。
密鑰對 :在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。
公鑰 :公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。
私鑰 :如上,用來解密公鑰加密的數據。
摘要 :對需要傳輸的文本,做一個HASH計算。
簽名 :使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。
密碼協議是指兩個或兩個以上的參與者為了達到某種特定目的而採取的一系列步驟。規定了一系列有序執行的步驟,必須依次執行。必須有兩個或兩個以上的參與者,有明確的目的。參與者都必須了解、同意並遵循這些步驟。
常見的密碼協議包括IPSEC VPN 協議、SSL VPN 協議、密鑰交換協議等。
密碼是指描述密碼處理過程的一組運算規則或規程,一般是指基於復雜數學問題設計的一組運算,其基本原理基於數學難題、可證明計算、計算復雜度等。主要包括:對稱密碼、公鑰密碼、雜湊演算法、隨機數生成。
在對稱加密演算法中,加密使用的密鑰和解密使用的密鑰是相同的,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。
通信雙方採用相同的密鑰來加解密會話內容,即一段待加密內容,經過同一個密鑰的兩次對稱加密後,與原來的結果一樣,具有加解密速度快和安全強度高的優點。
國際演算法:DES、AES。
國產演算法:SM1、SM4、SM7。
非對稱加解密演算法又稱為 公鑰密碼 ,其密鑰是成對出現的。雙方通信時,首先要將密鑰對中的一個密鑰傳給對方,這個密鑰可以在不安全的信道中傳輸;傳輸數據時,先使用自己持有的密鑰做加密,對方用自己傳輸過去的密鑰解密。
國際演算法:RSA
國產演算法:SM2
優點:
密鑰分發數目與參與者數目相同,在有大量參與者的情況下易於密鑰管理。
支持數字簽名和不可否認性。
無需事先與對方建立關系,交換密鑰。
缺點:
速度相對較慢。
可能比同等強度的對稱密碼演算法慢10倍到100倍。
加密後,密文變長。
密碼雜湊演算法 :又稱為散列演算法或哈希函數,一種單向函數,要由散列函數輸出的結果,回推輸入的資料是什麼,是非常困難的。
散列函數的輸出結果,被稱為訊息摘要(message digest)或是 摘要(digest) ,也被稱為 數字指紋 。
雜湊函數用於驗證消息的完整性, 在數字簽名中,非對稱演算法對數據簽名的速度較慢,一般會先將消息進行雜湊運算,生成較短的固定長度的摘要值。然後對摘要值進行簽名,會大大提高計算效率 。
國際演算法:MD5、SHA1、SHA2、SHA3
國產演算法:SM3
2009年國家密碼管理局發布的《信息安全等級保護商用密碼技術實施要求》中明確規定,一、二、三、四級信息系統應使用商用密碼技術來實施等級保護的基本要求和應用要求,一到四級的密碼配用策略要求採用國家密碼管理部門批准使用的演算法。
2010年年底,國家密碼管理局公開了SM2、SM3等國產密碼演算法。
2011年2月28日,國家密碼管理局印發的【2011】145號文中明確指出,1024位RSA演算法正在面臨日益嚴重的安全威脅,並要求各相關企業在2012年6月30日前必須使用SM2密碼演算法
國家密碼管理局在《關於做好公鑰密碼演算法升級工作的函》中要求2011年7月1日以後建立並使用公鑰密碼的信息系統,應使用SM2演算法;已經建設完成的系統,應盡快進行系統升級,使用SM2演算法。
2014年底,國家密碼管理局啟動《重要信息系統密碼應用推進總體研究課題》,確定十三五密碼 科技 專項。
2017年11月底,國家密碼管理局下發了《政務雲密碼支撐方案及應用方案設計要點》。
2017年國家密碼管理局發布了42項金融和重要領域國產密碼應用試點任務。
2018年,中共中央辦公廳、國務院辦公廳印發《金融和重要領域密碼應用與創新發展工作規劃(2018-2022年)。
2018年,為指導當時即將啟動的商用密碼應用安全性評估試點工作,國家密碼管理局發布了密碼行業標准GM/T0054-2018《信息系統密碼應用 基本要求》。
2021年3月,國家市場監管總局、國家標准化管理委員會發布公告,正式發布國家標准GB/T39786-2021《信息安全技術信息系統密碼應用基本要求》,該標准於2021年10月1日起實施。
SM1 演算法是分組密碼演算法,分組長度為 128 位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與AES相當,演算法不公開,僅以IP核的形式存在於晶元中。
演算法集成於加密晶元、智能 IC 卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括政務通、警務通等重要領域)。
SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,是一種基於ECC演算法的 非對稱密鑰演算法, 其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。
包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現 數字簽名密鑰協商 和 數據加密 等功能。
SM3雜湊演算法是我國自主設計的密碼雜湊演算法,屬於哈希(摘要)演算法的一種,雜湊值為256位,安全性要遠高於MD5演算法和SHA-1演算法。
適用於商用密碼應用中的 數字簽名 和 驗證消息認證碼的生成與驗證 以及 隨機數 的生成,可滿足多種密碼應用的安全需求。
SM4 分組密碼演算法 是我國自主設計的分組對稱密碼演算法,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。
用於實現數據的加密/解密運算,以保證數據和信息的機密性。軟體和硬體加密卡均可實現此演算法。
商用密碼技術框架包括 密碼資源、密碼支撐、密碼服務、密碼應用 等四個層次,以及提供管理服務的密碼管理基礎設施。
密碼資源層: 主要是提供基礎性的密碼演算法資源。
密碼支撐層: 主要提供密碼資源調用,由安全晶元、密碼模塊、智能IC卡、密碼卡、伺服器密碼機、簽名驗簽伺服器、IPSCE/SSL VPN 等商密產品組成。
密碼服務層: 提供密碼應用介面,分為對稱和公鑰密碼服務以及其他三大類。
密碼應用層: 調用密碼服務層提供的密碼應用程序介面,實現數據的加解密、數字簽名驗簽等服務。如應用 於 安全郵件、電子印章系統、安全公文傳輸、移動辦公平台、可信時間戳等系統。
密碼管理基礎設施: 獨立組件,為以上四層提供運維管理、信任管理、設備管理、密鑰管理等功能。
完整的PKI系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統(KMC)、證書作廢系統(CRL)、應用介面(API)等基本構成部分,構建PKI也將圍繞著這五大系統來著手構建。
CA 系統:Ca系統整個PKI的核心,負責證書的簽發。CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然後生成數字證書,並且將數字證書傳輸給安全伺服器。、CA還負責為操作員、安全伺服器以及注冊機構伺服器生成數字證書。安全伺服器的數字證書和私鑰也需要傳輸給安全伺服器。
CA伺服器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本文件,出於安全的考慮,應將CA伺服器與其他伺服器隔離,任何通信採用人工干預的方式,確保認證中心的安全。
(1)甲使用乙的公鑰對明文進行加密,生成密文信息。
(2)甲使用HASH演算法對明文進行HASH運算,生成數字指紋。
(3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。
(4)甲將密文信息和數字簽名一起發送給乙。
(5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。
(6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。
(7)乙使用HASH演算法對還原出的明文用與甲所使用的相同HASH演算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。
SSL 協議建立在可靠的傳輸協議(如 TCP)之上,為高層協議提供數據封裝,壓縮,加密等基本功能。
即可以協商加密演算法實現加密傳輸,防止數據防竊聽和修改,還可以實現對端設備身份驗證、在這個過程中,使用國密演算法進行加密、簽名證書進行身份驗證、加密證書用於密鑰交換
SSL協商過程:
(1)客戶端發出會話請求。
(2)服務端發送X.509證書(包含服務端的公鑰)。
(3)客戶端用已知Ca列表認證證書。
(4)客戶端生成隨機對稱密鑰,並利用服務端的公鑰進行加密。
(5)雙方協商完畢對稱密鑰,隨後用其加密會話期間的用戶最終數據。
利用SSL卸載技術及負載均衡機制,在保障通訊數據安全傳輸的同時,減少後台應用伺服器的性能消耗,並實現伺服器集群的冗餘高可用,大幅度提升整個業務應用系統的安全性和穩定性。此外,藉助多重性能優化技術更可縮短了業務訪問的響應等待時間,明顯提升用戶的業務體驗。
基於 數字證書 實現終端身份認證,給予密碼運算實現本地數據的加密存儲,數字證書硬體存儲和密碼運算由移動終端內置的密碼部件提供。
移動應用管理系統伺服器採用簽名證書對移動應用軟體安裝包進行簽名,移動應用管理系統客戶端對簽名信息進行驗簽,保障移動應用軟體安裝包的真實性和完整性。
移動辦公應用系統採用簽名證書對關鍵訪問請求進行簽名驗證。
採用加密證書對關鍵傳輸數據和業務操作指令,以及移動終端本地存儲的重要數據進行加密保護。
移動辦公系統使用商用密碼,基於數字證書認證系統,構建覆蓋移動終端、網路、移動政務應用的安全保障體系,實現政務移動終端安全、接入安全、傳輸安全和移動應用安全 。
⑧ 什麼是集成演算法
應該是一種忽略物體內部的次要因素來進行計算的方法,是將一個三維問題簡化的問題的方法。
⑨ 機器學習新手必看十大演算法
機器學習新手必看十大演算法
本文介紹了機器學習新手需要了解的 10 大演算法,包括線性回歸、Logistic 回歸、樸素貝葉斯、K 近鄰演算法等。
在機器學習中,有一種叫做「沒有免費的午餐」的定理。簡而言之,它指出沒有任何一種演算法對所有問題都有效,在監督學習(即預測建模)中尤其如此。
例如,你不能說神經網路總是比決策樹好,反之亦然。有很多因素在起作用,例如數據集的大小和結構。
因此,你應該針對具體問題嘗試多種不同演算法,並留出一個數據「測試集」來評估性能、選出優勝者。
當然,你嘗試的演算法必須適合你的問題,也就是選擇正確的機器學習任務。打個比方,如果你需要打掃房子,你可能會用吸塵器、掃帚或拖把,但是你不會拿出鏟子開始挖土。
大原則
不過也有一個普遍原則,即所有監督機器學習演算法預測建模的基礎。
機器學習演算法被描述為學習一個目標函數 f,該函數將輸入變數 X 最好地映射到輸出變數 Y:Y = f(X)
這是一個普遍的學習任務,我們可以根據輸入變數 X 的新樣本對 Y 進行預測。我們不知道函數 f 的樣子或形式。如果我們知道的話,我們將會直接使用它,不需要用機器學習演算法從數據中學習。
最常見的機器學習演算法是學習映射 Y = f(X) 來預測新 X 的 Y。這叫做預測建模或預測分析,我們的目標是盡可能作出最准確的預測。
對於想了解機器學習基礎知識的新手,本文將概述數據科學家使用的 top 10 機器學習演算法。
1. 線性回歸
線性回歸可能是統計學和機器學習中最知名和最易理解的演算法之一。
預測建模主要關注最小化模型誤差或者盡可能作出最准確的預測,以可解釋性為代價。我們將借用、重用包括統計學在內的很多不同領域的演算法,並將其用於這些目的。
線性回歸的表示是一個方程,它通過找到輸入變數的特定權重(稱為系數 B),來描述一條最適合表示輸入變數 x 與輸出變數 y 關系的直線。
線性回歸
例如:y = B0 + B1 * x
我們將根據輸入 x 預測 y,線性回歸學習演算法的目標是找到系數 B0 和 B1 的值。
可以使用不同的技術從數據中學習線性回歸模型,例如用於普通最小二乘法和梯度下降優化的線性代數解。
線性回歸已經存在了 200 多年,並得到了廣泛研究。使用這種技術的一些經驗是盡可能去除非常相似(相關)的變數,並去除噪音。這是一種快速、簡單的技術,可以首先嘗試一下。
2. Logistic 回歸
Logistic 回歸是機器學習從統計學中借鑒的另一種技術。它是解決二分類問題的首選方法。
Logistic 回歸與線性回歸相似,目標都是找到每個輸入變數的權重,即系數值。與線性回歸不同的是,Logistic 回歸對輸出的預測使用被稱為 logistic 函數的非線性函數進行變換。
logistic 函數看起來像一個大的 S,並且可以將任何值轉換到 0 到 1 的區間內。這非常實用,因為我們可以規定 logistic 函數的輸出值是 0 和 1(例如,輸入小於 0.5 則輸出為 1)並預測類別值。
Logistic 回歸
由於模型的學習方式,Logistic 回歸的預測也可以作為給定數據實例(屬於類別 0 或 1)的概率。這對於需要為預測提供更多依據的問題很有用。
像線性回歸一樣,Logistic 回歸在刪除與輸出變數無關的屬性以及非常相似(相關)的屬性時效果更好。它是一個快速的學習模型,並且對於二分類問題非常有效。
3. 線性判別分析(LDA)
Logistic 回歸是一種分類演算法,傳統上,它僅限於只有兩類的分類問題。如果你有兩個以上的類別,那麼線性判別分析是首選的線性分類技術。
LDA 的表示非常簡單直接。它由數據的統計屬性構成,對每個類別進行計算。單個輸入變數的 LDA 包括:
每個類別的平均值;
所有類別的方差。
線性判別分析
進行預測的方法是計算每個類別的判別值並對具備最大值的類別進行預測。該技術假設數據呈高斯分布(鍾形曲線),因此最好預先從數據中刪除異常值。這是處理分類預測建模問題的一種簡單而強大的方法。
4. 分類與回歸樹
決策樹是預測建模機器學習的一種重要演算法。
決策樹模型的表示是一個二叉樹。這是演算法和數據結構中的二叉樹,沒什麼特別的。每個節點代表一個單獨的輸入變數 x 和該變數上的一個分割點(假設變數是數字)。
決策樹
決策樹的葉節點包含一個用於預測的輸出變數 y。通過遍歷該樹的分割點,直到到達一個葉節點並輸出該節點的類別值就可以作出預測。
決策樹學習速度和預測速度都很快。它們還可以解決大量問題,並且不需要對數據做特別准備。
5. 樸素貝葉斯
樸素貝葉斯是一個簡單但是很強大的預測建模演算法。
該模型由兩種概率組成,這兩種概率都可以直接從訓練數據中計算出來:1)每個類別的概率;2)給定每個 x 的值,每個類別的條件概率。一旦計算出來,概率模型可用於使用貝葉斯定理對新數據進行預測。當你的數據是實值時,通常假設一個高斯分布(鍾形曲線),這樣你可以簡單的估計這些概率。
貝葉斯定理
樸素貝葉斯之所以是樸素的,是因為它假設每個輸入變數是獨立的。這是一個強大的假設,真實的數據並非如此,但是,該技術在大量復雜問題上非常有用。
6. K 近鄰演算法
KNN 演算法非常簡單且有效。KNN 的模型表示是整個訓練數據集。是不是很簡單?
KNN 演算法在整個訓練集中搜索 K 個最相似實例(近鄰)並匯總這 K 個實例的輸出變數,以預測新數據點。對於回歸問題,這可能是平均輸出變數,對於分類問題,這可能是眾數(或最常見的)類別值。
訣竅在於如何確定數據實例間的相似性。如果屬性的度量單位相同(例如都是用英寸表示),那麼最簡單的技術是使用歐幾里得距離,你可以根據每個輸入變數之間的差值直接計算出來其數值。
K 近鄰演算法
KNN 需要大量內存或空間來存儲所有數據,但是只有在需要預測時才執行計算(或學習)。你還可以隨時更新和管理訓練實例,以保持預測的准確性。
距離或緊密性的概念可能在非常高的維度(很多輸入變數)中會瓦解,這對演算法在你的問題上的性能產生負面影響。這被稱為維數災難。因此你最好只使用那些與預測輸出變數最相關的輸入變數。
7. 學習向量量化
K 近鄰演算法的一個缺點是你需要遍歷整個訓練數據集。學習向量量化演算法(簡稱 LVQ)是一種人工神經網路演算法,它允許你選擇訓練實例的數量,並精確地學習這些實例應該是什麼樣的。
學習向量量化
LVQ 的表示是碼本向量的集合。這些是在開始時隨機選擇的,並逐漸調整以在學習演算法的多次迭代中最好地總結訓練數據集。在學習之後,碼本向量可用於預測(類似 K 近鄰演算法)。最相似的近鄰(最佳匹配的碼本向量)通過計算每個碼本向量和新數據實例之間的距離找到。然後返回最佳匹配單元的類別值或(回歸中的實際值)作為預測。如果你重新調整數據,使其具有相同的范圍(比如 0 到 1 之間),就可以獲得最佳結果。
如果你發現 KNN 在你的數據集上達到很好的結果,請嘗試用 LVQ 減少存儲整個訓練數據集的內存要求。
8. 支持向量機(SVM)
支持向量機可能是最受歡迎和最廣泛討論的機器學習演算法之一。
超平面是分割輸入變數空間的一條線。在 SVM 中,選擇一條可以最好地根據輸入變數類別(類別 0 或類別 1)對輸入變數空間進行分割的超平面。在二維中,你可以將其視為一條線,我們假設所有的輸入點都可以被這條線完全的分開。SVM 學習演算法找到了可以讓超平面對類別進行最佳分割的系數。
支持向量機
超平面和最近的數據點之間的距離被稱為間隔。分開兩個類別的最好的或最理想的超平面具備最大間隔。只有這些點與定義超平面和構建分類器有關。這些點被稱為支持向量,它們支持或定義了超平面。實際上,優化演算法用於尋找最大化間隔的系數的值。
SVM 可能是最強大的立即可用的分類器之一,值得一試。
9. Bagging 和隨機森林
隨機森林是最流行和最強大的機器學習演算法之一。它是 Bootstrap Aggregation(又稱 bagging)集成機器學習演算法的一種。
bootstrap 是從數據樣本中估算數量的一種強大的統計方法。例如平均數。你從數據中抽取大量樣本,計算平均值,然後平均所有的平均值以便更好的估計真實的平均值。
bagging 使用相同的方法,但是它估計整個統計模型,最常見的是決策樹。在訓練數據中抽取多個樣本,然後對每個數據樣本建模。當你需要對新數據進行預測時,每個模型都進行預測,並將所有的預測值平均以便更好的估計真實的輸出值。
隨機森林
隨機森林是對這種方法的一種調整,在隨機森林的方法中決策樹被創建以便於通過引入隨機性來進行次優分割,而不是選擇最佳分割點。
因此,針對每個數據樣本創建的模型將會與其他方式得到的有所不同,不過雖然方法獨特且不同,它們仍然是准確的。結合它們的預測可以更好的估計真實的輸出值。
如果你用方差較高的演算法(如決策樹)得到了很好的結果,那麼通常可以通過 bagging 該演算法來獲得更好的結果。
10. Boosting 和 AdaBoost
Boosting 是一種集成技術,它試圖集成一些弱分類器來創建一個強分類器。這通過從訓練數據中構建一個模型,然後創建第二個模型來嘗試糾正第一個模型的錯誤來完成。一直添加模型直到能夠完美預測訓練集,或添加的模型數量已經達到最大數量。
AdaBoost 是第一個為二分類開發的真正成功的 boosting 演算法。這是理解 boosting 的最佳起點。現代 boosting 方法建立在 AdaBoost 之上,最顯著的是隨機梯度提升。
AdaBoost
AdaBoost與短決策樹一起使用。在第一個決策樹創建之後,利用每個訓練實例上樹的性能來衡量下一個決策樹應該對每個訓練實例付出多少注意力。難以預測的訓練數據被分配更多權重,而容易預測的數據分配的權重較少。依次創建模型,每個模型在訓練實例上更新權重,影響序列中下一個決策樹的學習。在所有決策樹建立之後,對新數據進行預測,並且通過每個決策樹在訓練數據上的精確度評估其性能。
因為在糾正演算法錯誤上投入了太多注意力,所以具備已刪除異常值的干凈數據非常重要。
總結
初學者在面對各種機器學習演算法時經常問:「我應該用哪個演算法?」這個問題的答案取決於很多因素,包括:(1)數據的大小、質量和特性;(2)可用的計算時間;(3)任務的緊迫性;(4)你想用這些數據做什麼。
即使是經驗豐富的數據科學家在嘗試不同的演算法之前,也無法分辨哪種演算法會表現最好。雖然還有很多其他的機器學習演算法,但本篇文章中討論的是最受歡迎的演算法。如果你是機器學習的新手,這將是一個很好的學習起點。