㈠ 機器學習一般常用的演算法有哪些
機器學習是人工智慧的核心技術,是學習人工智慧必不可少的環節。機器學習中有很多演算法,能夠解決很多以前難以企的問題,機器學習中涉及到的演算法有不少,下面小編就給大家普及一下這些演算法。
一、線性回歸
一般來說,線性回歸是統計學和機器學習中最知名和最易理解的演算法之一。這一演算法中我們可以用來預測建模,而預測建模主要關注最小化模型誤差或者盡可能作出最准確的預測,以可解釋性為代價。我們將借用、重用包括統計學在內的很多不同領域的演算法,並將其用於這些目的。當然我們可以使用不同的技術從數據中學習線性回歸模型,例如用於普通最小二乘法和梯度下降優化的線性代數解。就目前而言,線性回歸已經存在了200多年,並得到了廣泛研究。使用這種技術的一些經驗是盡可能去除非常相似(相關)的變數,並去除噪音。這是一種快速、簡單的技術。
二、Logistic 回歸
它是解決二分類問題的首選方法。Logistic 回歸與線性回歸相似,目標都是找到每個輸入變數的權重,即系數值。與線性回歸不同的是,Logistic 回歸對輸出的預測使用被稱為 logistic 函數的非線性函數進行變換。logistic 函數看起來像一個大的S,並且可以將任何值轉換到0到1的區間內。這非常實用,因為我們可以規定logistic函數的輸出值是0和1並預測類別值。像線性回歸一樣,Logistic 回歸在刪除與輸出變數無關的屬性以及非常相似的屬性時效果更好。它是一個快速的學習模型,並且對於二分類問題非常有效。
三、線性判別分析(LDA)
在前面我們介紹的Logistic 回歸是一種分類演算法,傳統上,它僅限於只有兩類的分類問題。而LDA的表示非常簡單直接。它由數據的統計屬性構成,對每個類別進行計算。單個輸入變數的 LDA包括兩個,第一就是每個類別的平均值,第二就是所有類別的方差。而在線性判別分析,進行預測的方法是計算每個類別的判別值並對具備最大值的類別進行預測。該技術假設數據呈高斯分布,因此最好預先從數據中刪除異常值。這是處理分類預測建模問題的一種簡單而強大的方法。
四、決策樹
決策樹是預測建模機器學習的一種重要演算法。決策樹模型的表示是一個二叉樹。這是演算法和數據結構中的二叉樹,沒什麼特別的。每個節點代表一個單獨的輸入變數x和該變數上的一個分割點。而決策樹的葉節點包含一個用於預測的輸出變數y。通過遍歷該樹的分割點,直到到達一個葉節點並輸出該節點的類別值就可以作出預測。當然決策樹的有點就是決策樹學習速度和預測速度都很快。它們還可以解決大量問題,並且不需要對數據做特別准備。
五、樸素貝葉斯
其實樸素貝葉斯是一個簡單但是很強大的預測建模演算法。而這個模型由兩種概率組成,這兩種概率都可以直接從訓練數據中計算出來。第一種就是每個類別的概率,第二種就是給定每個 x 的值,每個類別的條件概率。一旦計算出來,概率模型可用於使用貝葉斯定理對新數據進行預測。當我們的數據是實值時,通常假設一個高斯分布,這樣我們可以簡單的估計這些概率。而樸素貝葉斯之所以是樸素的,是因為它假設每個輸入變數是獨立的。這是一個強大的假設,真實的數據並非如此,但是,該技術在大量復雜問題上非常有用。所以說,樸素貝葉斯是一個十分實用的功能。
六、K近鄰演算法
K近鄰演算法簡稱KNN演算法,KNN 演算法非常簡單且有效。KNN的模型表示是整個訓練數據集。KNN演算法在整個訓練集中搜索K個最相似實例(近鄰)並匯總這K個實例的輸出變數,以預測新數據點。對於回歸問題,這可能是平均輸出變數,對於分類問題,這可能是眾數類別值。而其中的訣竅在於如何確定數據實例間的相似性。如果屬性的度量單位相同,那麼最簡單的技術是使用歐幾里得距離,我們可以根據每個輸入變數之間的差值直接計算出來其數值。當然,KNN需要大量內存或空間來存儲所有數據,但是只有在需要預測時才執行計算。我們還可以隨時更新和管理訓練實例,以保持預測的准確性。
七、Boosting 和 AdaBoost
首先,Boosting 是一種集成技術,它試圖集成一些弱分類器來創建一個強分類器。這通過從訓練數據中構建一個模型,然後創建第二個模型來嘗試糾正第一個模型的錯誤來完成。一直添加模型直到能夠完美預測訓練集,或添加的模型數量已經達到最大數量。而AdaBoost 是第一個為二分類開發的真正成功的 boosting 演算法。這是理解 boosting 的最佳起點。現代 boosting 方法建立在 AdaBoost 之上,最顯著的是隨機梯度提升。當然,AdaBoost 與短決策樹一起使用。在第一個決策樹創建之後,利用每個訓練實例上樹的性能來衡量下一個決策樹應該對每個訓練實例付出多少注意力。難以預測的訓練數據被分配更多權重,而容易預測的數據分配的權重較少。依次創建模型,每一個模型在訓練實例上更新權重,影響序列中下一個決策樹的學習。在所有決策樹建立之後,對新數據進行預測,並且通過每個決策樹在訓練數據上的精確度評估其性能。所以說,由於在糾正演算法錯誤上投入了太多注意力,所以具備已刪除異常值的干凈數據十分重要。
八、學習向量量化演算法(簡稱 LVQ)
學習向量量化也是機器學習其中的一個演算法。可能大家不知道的是,K近鄰演算法的一個缺點是我們需要遍歷整個訓練數據集。學習向量量化演算法(簡稱 LVQ)是一種人工神經網路演算法,它允許你選擇訓練實例的數量,並精確地學習這些實例應該是什麼樣的。而學習向量量化的表示是碼本向量的集合。這些是在開始時隨機選擇的,並逐漸調整以在學習演算法的多次迭代中最好地總結訓練數據集。在學習之後,碼本向量可用於預測。最相似的近鄰通過計算每個碼本向量和新數據實例之間的距離找到。然後返回最佳匹配單元的類別值或作為預測。如果大家重新調整數據,使其具有相同的范圍,就可以獲得最佳結果。當然,如果大家發現KNN在大家數據集上達到很好的結果,請嘗試用LVQ減少存儲整個訓練數據集的內存要求
㈡ 機器學習演算法有哪些,最常用是哪些幾種,有什麼優點
樓主肯定對機器學習了解不多才會提這種問題。這問題專業程度看起來和「機器學習工程師」這詞彙一樣。
機器學習,基礎的PCA模型理論,貝葉斯,boost,Adaboost,
模式識別中的各種特徵,諸如Hog,Haar,SIFT等
深度學習里的DBN,CNN,BP,RBM等等。
非專業出身,只是略懂一點。
沒有常用的,只是針對需求有具體的設計,或者需要自己全新設計一個合適的演算法,現在最熱門的算是CNN(convolutional neural networks)卷積神經網路了。
優點:不需要訓練獲取特徵,在學習過程中自動提取圖像中的特徵,免去了常規方法中,大量訓練樣本的時間。在樣本足夠大的情況下,能夠得到非常精確的識別結果。一般都能95%+的正確率。
缺點:硬體要求高,CUDA的並行框架算是用的很火的了。但是一般的台式機跑一個Demo花費的時間長資源佔用高。不過這也是這塊演算法的通病。
㈢ 機器學習有幾種演算法
1. 線性回歸
工作原理:該演算法可以按其權重可視化。但問題是,當你無法真正衡量它時,必須通過觀察其高度和寬度來做一些猜測。通過這種可視化的分析,可以獲取一個結果。
2. 邏輯回歸
根據一組獨立變數,估計離散值。它通過將數據匹配到logit函數來幫助預測事件。
3. 決策樹
利用監督學習演算法對問題進行分類。決策樹是一種支持工具,它使用樹狀圖來決定決策或可能的後果、機會事件結果、資源成本和實用程序。根據獨立變數,將其劃分為兩個或多個同構集。
4. 支持向量機(SVM)
基本原理(以二維數據為例):如果訓練數據是分布在二維平面上的點,它們按照其分類聚集在不同的區域。基於分類邊界的分類演算法的目標是,通過訓練,找到這些分類之間的邊界(直線的――稱為線性劃分,曲線的――稱為非線性劃分)。對於多維數據(如N維),可以將它們視為N維空間中的點,而分類邊界就是N維空間中的面,稱為超面(超面比N維空間少一維)。線性分類器使用超平面類型的邊界,非線性分類器使用超曲面。
5. 樸素貝葉斯
樸素貝葉斯認為每個特徵都是獨立於另一個特徵的。即使在計算結果的概率時,它也會考慮每一個單獨的關系。
它不僅易於使用,而且能有效地使用大量的數據集,甚至超過了高度復雜的分類系統。
6. KNN(K -最近鄰)
該演算法適用於分類和回歸問題。在數據科學行業中,它更常用來解決分類問題。
這個簡單的演算法能夠存儲所有可用的案例,並通過對其k近鄰的多數投票來對任何新事件進行分類。然後將事件分配給與之匹配最多的類。一個距離函數執行這個測量過程。
7. k – 均值
這種無監督演算法用於解決聚類問題。數據集以這樣一種方式列在一個特定數量的集群中:所有數據點都是同質的,並且與其他集群中的數據是異構的。
8. 隨機森林
利用多棵決策樹對樣本進行訓練並預測的一種分類器被稱為隨機森林。為了根據其特性來分類一個新對象,每棵決策樹都被排序和分類,然後決策樹投票給一個特定的類,那些擁有最多選票的被森林所選擇。
9. 降維演算法
在存儲和分析大量數據時,識別多個模式和變數是具有挑戰性的。維數簡化演算法,如決策樹、因子分析、缺失值比、隨機森林等,有助於尋找相關數據。
10. 梯度提高和演演算法
這些演算法是在處理大量數據,以作出准確和快速的預測時使用的boosting演算法。boosting是一種組合學習演算法,它結合了幾種基本估計量的預測能力,以提高效力和功率。
綜上所述,它將所有弱或平均預測因子組合成一個強預測器。
㈣ 機器學習新手必看十大演算法
機器學習新手必看十大演算法
本文介紹了機器學習新手需要了解的 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)你想用這些數據做什麼。
即使是經驗豐富的數據科學家在嘗試不同的演算法之前,也無法分辨哪種演算法會表現最好。雖然還有很多其他的機器學習演算法,但本篇文章中討論的是最受歡迎的演算法。如果你是機器學習的新手,這將是一個很好的學習起點。
㈤ 干貨 | 基礎機器學習演算法
本篇內容主要是面向機器學習初學者,介紹常見的機器學習演算法,當然,歡迎同行交流。
哲學要回答的基本問題是從哪裡來、我是誰、到哪裡去,尋找答案的過程或許可以借鑒機器學習的套路:組織數據->挖掘知識->預測未來。組織數據即為設計特徵,生成滿足特定格式要求的樣本,挖掘知識即建模,而預測未來就是對模型的應用。
特徵設計依賴於對業務場景的理解,可分為連續特徵、離散特徵和組合高階特徵。本篇重點是機器學習演算法的介紹,可以分為監督學習和無監督學習兩大類。
無監督學習演算法很多,最近幾年業界比較關注主題模型,LSA->PLSA->LDA 為主題模型三個發展階段的典型演算法,它們主要是建模假設條件上存在差異。LSA假設文檔只有一個主題,PLSA 假設各個主題的概率分布不變(theta 都是固定的),LDA 假設每個文檔和詞的主題概率是可變的。
LDA 演算法本質可以藉助上帝擲骰子幫助理解,詳細內容可參加 Rickjin 寫的《 LDA 數據八卦》文章,淺顯易懂,順便也科普了很多數學知識,非常推薦。
監督學習可分為分類和回歸,感知器是最簡單的線性分類器,現在實際應用比較少,但它是神經網路、深度學習的基本單元。
線性函數擬合數據並基於閾值分類時,很容易受雜訊樣本的干擾,影響分類的准確性。邏輯回歸(Logistic Regression)利用 sigmoid 函數將模型輸出約束在 0 到 1 之間,能夠有效弱化雜訊數據的負面影響,被廣泛應用於互聯網廣告點擊率預估。
邏輯回歸模型參數可以通過最大似然求解,首先定義目標函數 L ( theta ),然後 log 處理將目標函數的乘法邏輯轉化為求和邏輯(最大化似然概率 -> 最小化損失函數),最後採用梯度下降求解。
相比於線性分類去,決策樹等非線性分類器具有更強的分類能力,ID3 和 C4.5 是典型的決策樹演算法,建模流程基本相似,兩者主要在增益函數(目標函數)的定義不同。
線性回歸和線性分類在表達形式上是類似的,本質區別是分類的目標函數是離散值,而回歸的目標函數是連續值。目標函數的不同導致回歸通常基於最小二乘定義目標函數,當然,在觀測誤差滿足高斯分布的假設情況下,最小二乘和最大似然可以等價。
當梯度下降求解模型參數時,可以採用 Batch 模式或者 Stochastic 模式,通常而言,Batch 模式准確性更高,Stochastic 模式復雜度更低。
上文已經提到,感知器雖然是最簡單的線性分類器,但是可以視為深度學習的基本單元,模型參數可以由自動編碼( Auto Encoder )等方法求解。
深度學習的優勢之一可以理解為特徵抽象,從底層特徵學習獲得高階特徵,描述更為復雜的信息結構。例如,從像素層特徵學習抽象出描述紋理結構的邊緣輪廓特徵,更進一步學習獲得表徵物體局部的更高階特徵。
俗話說三個臭皮匠賽過諸葛亮,無論是線性分類還是深度學習,都是單個模型演算法單打獨斗,有沒有一種集百家之長的方法,將模型處理數據的精度更進一步提升呢?當然,Model Ensembe l就是解決這個問題。Bagging 為方法之一,對於給定數據處理任務,採用不同模型/參數/特徵訓練多組模型參數,最後採用投票或者加權平均的方式輸出最終結果。
Boosting為Model Ensemble 的另外一種方法,其思想為模型每次迭代時通過調整錯誤樣本的損失權重提升對數據樣本整體的處理精度,典型演算法包括 AdaBoost 、GBDT 等。
不同的數據任務場景,可以選擇不同的 Model Ensemble 方法,對於深度學習,可以對隱層節點採用 DropOut 的方法實現類似的效果。
介紹了這么多機器學習基礎演算法,說一說評價模型優劣的基本准則。欠擬合和過擬合是經常出現的兩種情況,簡單的判定方法是比較訓練誤差和測試誤差的關系,當欠擬合時,可以設計更多特徵來提升模型訓練精度,當過擬合時,可以優化特徵量降低模型復雜度來提升模型測試精度。
特徵量是模型復雜度的直觀反映,模型訓練之前設定輸入的特徵量是一種方法,另外一種比較常用的方法是在模型訓練過程中,將特徵參數的正則約束項引入目標函數/損失函數,基於訓練過程篩選優質特徵。
模型調優是一個細致活,最終還是需要能夠對實際場景給出可靠的預測結果,解決實際問題。期待學以致用! 作者 曉惑 本文轉自阿里技術,轉載需授權
㈥ 目前最流行的機器學習演算法是什麼
毫無疑問,機器學習在過去幾年越來越受歡迎。由於大數據是目前技術行業最熱門的趨勢,機器學習是非常強大的,可以根據大量數據進行預測或計算推理。
如果你想學習機器演算法,要從何下手呢?
監督學習
1. 決策樹:決策樹是一種決策支持工具,使用的決策及其可能產生的後果,包括隨機事件的結果,資源消耗和效用的樹狀圖或模型。
從業務決策的角度來看,決策樹是人們必須要選擇是/否的問題,以評估大多數時候作出正確決策的概率。它允許您以結構化和系統的方式來解決問題,以得出邏輯結論。
2.樸素貝葉斯分類:樸素貝葉斯分類器是一種簡單的概率分類器,基於貝葉斯定理,其特徵之間具有強大(樸素)的獨立性假設。
特徵圖像是方程 - P(A | B)是後驗概率,P(B | A)是似然度,P(A)是類先驗概率,P(B)是預測先驗概率。
一些現實世界的例子是:
判斷郵件是否為垃圾郵件
分類技術,將新聞文章氛圍政治或體育類
檢查一段表達積極情緒或消極情緒的文字
用於面部識別軟體
3.普通最小二乘回歸:如果你了解統計學,你可能已經聽說過線性回歸。最小二乘法是一種執行線性回歸的方法。
您可以將線性回歸視為擬合直線穿過點狀分布的任務。有多種可能的策略可以做到這一點,「普通最小二乘法」策略就像這樣 -你可以畫一條線,然後把每個數據點,測量點和線之間的垂直距離,添加上去;擬合線將是距離總和的盡可能小的線。
線性是指您正在使用的模型來迎合數據,而最小二乘可以最小化線性模型誤差。
4.邏輯回歸: Logistic回歸是一個強大的統計學方法,用一個或多個解釋變數建模二項式結果。它通過使用邏輯函數估計概率,來衡量分類因變數與一個或多個獨立變數之間的關系,後者是累積邏輯分布。
邏輯回歸用於生活中:
信用評級
衡量營銷活動的成功率
預測某一產品的收入
某一天會有地震嗎
5.支持向量機: SVM是二元分類演算法。給定N維空間中兩種種類型的點,SVM生成(N-1)維的超平面將這些點分成2組。
假設你有一些可以線性分離的紙張中的兩種類型的點。SVM將找到一條直線,將這些點分成兩種類型,並盡可能遠離所有這些點。
在規模上,使用SVM解決的一些特大的問題(包括適當修改的實現)是:廣告、人類基因剪接位點識別、基於圖像的性別檢測,大規模圖像分類...
6.集成方法:集成方法是構建一組分類器的學習演算法,然後通過對其預測進行加權投票來對新的數據點進行分類。原始的集成方法是貝葉斯平均法,但更新的演算法包括糾錯輸出編碼、bagging和boosting。
那麼集成方法如何工作,為什麼它們優於單個模型?
均衡偏差:如果你均衡了大量的傾向民主黨的投票和大量傾向共和黨的投票,你總會得到一個不那麼偏頗的結果。
降低方差:集合大量模型的參考結果,噪音會小於單個模型的單個結果。在金融領域,這被稱為投資分散原則(diversification)——一個混搭很多種股票的投資組合,比單獨的股票更少變故。
不太可能過度擬合:如果您有單個模型不完全擬合,您以簡單的方式(平均,加權平均,邏輯回歸)結合每個模型建模,那麼一般不會發生過擬合。
無監督學習
7. 聚類演算法:聚類是對一組對象進行分組的任務,使得同一組(集群)中的對象彼此之間比其他組中的對象更相似。
每個聚類演算法是不同的,比如:
基於Centroid的演算法
基於連接的演算法
基於密度的演算法
概率
降維
神經網路/深度學習
8. 主成分分析: PCA是使用正交變換將可能相關變數的觀察值轉換為主成分的線性不相關變數值的一組統計過程。
PCA的一些應用包括壓縮、簡化數據、便於學習、可視化。請注意,領域知識在選擇是否繼續使用PCA時非常重要。數據嘈雜的情況(PCA的所有組件都有很大差異)的情況不適用。
9.奇異值分解:在線性代數中,SVD是真正復雜矩陣的因式分解。對於給定的m * n矩陣M,存在分解,使得M =UΣV,其中U和V是酉矩陣,Σ是對角矩陣。
PCA實際上是SVD的簡單應用。在計算機視覺技術中,第一個人臉識別演算法使用PCA和SVD,以將面部表示為「特徵臉」的線性組合,進行降維,然後通過簡單的方法將面部匹配到身份;雖然這種方法更復雜,但仍然依賴於類似的技術。
10.獨立成分分析: ICA是一種統計技術,用於揭示隨機變數、測量或信號集合的隱藏因素。ICA定義了觀察到的多變數數據的生成模型,通常將其作為大型樣本資料庫。
在模型中,假設數據變數是一些未知潛在變數的線性混合,混合系統也是未知的。潛變數被假定為非高斯和相互獨立的,它們被稱為觀測數據的獨立成分。
ICA與PCA相關,但它是一種更強大的技術,能夠在這些經典方法完全失敗時找到潛在的源因素。其應用包括數字圖像、文檔資料庫、經濟指標和心理測量。