機器學習之常見算法描述


1、線性回歸算法
1.1算法概述
  回歸就是用一條曲線對數據點進行擬合,該曲線成為最佳擬合曲線,這個擬合過程稱為回歸。當該曲線為一條直線時,就是線性回歸。
  線性回歸一般用來做連續值的預測,預測的結果是一個連續值。
  在訓練學習樣本時,需要特征向量X和樣本的實際結果Y,所以線性回歸屬於監督學習里的回歸模型。
1.2算法步驟
  建立模型->定義損失函數->判斷數據量和特征值大小->大用梯度下降法,小用最小二乘法->參數求解->模型校驗->經濟預測

2、邏輯回歸算法
2.1算法概述
  背景:一般情況下,使用線性回歸算法預測連續值的結果,根據結果設定閾值即可。但在很多實際情況中,需要學習的分類數據並不精確,如果仍然使用線性回歸的方法,會使分類器的准確率偏低。
  定義:是一種廣義的線性回歸分析方法,在線性回歸的基礎上套用一個邏輯函數,對事件發生的概率進行預測。在線性回歸中得到一個預測值,然后該值通過邏輯函數進行轉換,將預測值變成概率值,再根據概率值實現分類。
2.2算法步驟
  加載數據文件->數據預處理,生成多項式特征(多項式擬合時,多邊形邊界需要將特征轉為多項式轉換,進而更改樣本的分布狀態,使之能擬合更復雜的邊界)->初始化參數,構建損失函數->用梯度下降算法優化損失函數,確定參數->構建預測函數,求概率值(sigmoid函數等)->根據概率值畫決策邊界

3、K最近鄰算法KNN
3.1算法概述
  由某個樣本K個鄰居的類別來推斷出樣本的類別(近朱者赤近墨者黑)。
  由於KNN方法主要靠周圍有限的鄰近樣本,而不是靠判別類域的方法來確定所屬類別,因此對於類域的交叉或重疊較多的待分樣本來說,KNN更加合適。
3.2算法步驟
  數據預處理->初始化最近鄰訓練元組(大小為K的優先級隊列)->遍歷訓練元組計算距離->調整優先隊列->計算誤差率->設定不同K值重新訓練->取誤差率最小的K值

4、PCA降維算法
4.1算法概述
  掌握事物主要矛盾的統計分析方法,從多元事務中解析出主要影響因素,揭示事物本質,簡化復雜問題。
  PCA將數據投射到一個低維子空間實現降維,同時盡可能地保留更多變量。
4.2算法步驟。
  讀入數據矩陣->去除平均值(中心化)->計算協方差矩陣->求特征值和特征向量->對特征值進行排序->保留大到小N個特征向量->計算降維后的數據矩陣
  注:
    兩個矩陣相乘的意義是:將右邊的矩陣中的每一列列向量變換到左邊矩陣中每一行行向量為基所表示的空間中去。--->降維
    如何選擇這個方向(基)以保留最多的原始信息?投影后的投影值盡可能分散--->分散程度用方差(越大)表示。
    對於更高維,首先找到一個方向使得投影后方差最大,這樣就完成了第一個方向的選擇,繼而選擇第二個投影方向(兩個字段盡可能表示更多的信息,不希望他們之間存在相關性)--->協方差為0,兩個字段完全獨立--->兩個方向正交
    優化目標:將一組n維向量降為K維,選擇K個單位正交基,使得原始數據變換到這組基上后,各字段兩兩間協方差為0,而字段的方差盡可能的大(在正交的約束下,取最大的K個方差)
    將方差和協方差統一到一起--->XXT,(協方差矩陣,對角線是個字段方差,其他是字段協方差)--->將協方差矩陣對角化(除對角線外的元素化為0,對角線上將元素按大小從下到上排列)

5、k-means算法
5.1算法概述
  基於樣本間相似性度量的聚類算法。即將數據點到原型的某種距離作為優化的目標函數。
5.2算法步驟
  選擇K個聚類中心->計算每個對象與K個中心對象的距離,並把它歸到距離最近的簇中->計算每個簇的新中心
  初始聚類中心的選擇:
  1.憑經驗、
  2.數據隨機分為K類,計算每類中心、
  3.用相距最遠的K個特征、隨機從n個模式中取出一部分模式用層次聚類法聚成K類,以每類中心、
  4.求以每個特征點為球心,某一正數r為半徑的球形區域中的特征點個數,選取密度最大的特征點為第一個初始聚類中心,然后在與該中心大於某個距離d的那些特征點中選擇另一個具有最大密度的特征點作為第二個初始聚類中心,直到選擇K個
  K的調整:
  1.按先驗知識、
  2.讓K從小到大逐步增加,目標函數隨K的增加而單調減少,但速度在一定時候會減緩,曲率變化最大的那個點對應最優聚類數。

6、支持向量機算法SVM
6.1算法概述
  用來解決分類問題,構造直線、平面或者超平面的模型將數據分隔開。“機”指算法,“支持向量”指數據集中某些點位置比較特殊,最靠近划分直線上面的點,影響直線的最終位置。
6.2算法步驟
  給定訓練集->構造最優化問題->求解最優化的所有ai->計算參數w,b->得出超平面和分類決策函數
  注:
    對一個數據點進行分類,超平面離數據點的間隔越大,分類的確信度也越大。--->幾何間隔最大
6.3非線性支持向量機與核函數
  非線性類型通常在二維平面不可分,需要通過一個函數將原始數據映射到高維空間,從而使得數據在高維空間很容易區分,實現這一目標的函數稱為核函數
  在線性不可分的情況下,支持向量機首先在低維空間中完成計算,然后通過核函數將輸入空間映射到高維特征空間,最終在高維特征空間中構造出最優分離超平面。
  常見核函數:多項式核、高斯核、線性核

7、AdaBoost算法(自適應增強)
7.1算法概述
  自適應在於:前一個基本分類器分類錯誤的樣本的權重會得到加強,加權后的全體樣本再次被用來訓練下一個基本分類器。同時在每一輪訓練中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率或達到預先指定的最大迭代次數時停止訓練。
  想要實現“三個臭皮匠頂個諸葛亮”的效果,企圖用多個分類能力較弱但是不斷優化的分類器組成一個比現存任一強分類器分類能力更強的集合分類器。
7.2算法步驟
  加載數據集->K次迭代{初始化權值分布->訓練弱分類器Gm->計算弱分類器在數據集上的分類誤差率->計算弱分類器在最終分類器的權重(誤差率越小權重越大)->更新訓練數據集的權值分布(增大誤分類樣本的權值減少正確分類樣本的權重)}->組合m個弱分類器

8、決策樹算法
8.1算法概述
  在已知各種情況發生概率的基礎上,通過構成決策樹來求取凈現值的期望值大於等於0的概率,評價項目風險。
  決策樹中每一個節點會響應輸入值中某一變量值,該節點的邊所指向的子節點指示輸入值可能產生新的響應值,每一個葉節點可以代表輸入值所對應的一種最終輸出值。
  決策樹是一類廣泛應用的一種樹狀分類器,在樹的每個節點上通過選擇最優的分裂特征不停地進行分類,直到到達建樹的停止條件,比如葉節點里的數據都屬於同一個類別。決策樹確定一條由根節點到葉節點里的數據都屬於同一個類別。當輸入待分類樣本時,決策樹決定一條由根節點到葉節點的唯一路徑,該路徑葉節點的類別就是待分類樣本的所屬類別。
8.2算法步驟
  生成算法有多種,如:ID3、C4.5、C5.0等
  加載數據文件->計算數據集S每個屬性的熵->S不為空{選取數據集S中熵最小(或信息增益最大)的屬性->從S中剔除該屬性->添加該屬性作為作為決策樹的節點}
8.3重要概念
  熵:每條信息中所包含信息的平均量,是不確定性的度量
  信息增益:是信息熵的變形,衡量一個屬性分區數據樣本的能力(信息增益越大,決策樹越簡潔)。

9、高斯混合模型算法
9.1算法概述
  是一種廣泛的聚類算法,通過對多個高斯模型做線性組合,對樣本數據的概率密度分布進行估計,以達到聚類的目的。
  使用高斯分布作為參數模型,並使用期望最大化EM算法進行參數評估,就得到數據在各個類上的概率值,最后選取概率值最大的類作為估計結果。
9.2算法步驟
  構建高斯混合模型->初始化模型數目K(對應K個聚類),對每個模型設置初始值Πk(第k個模型的權重即第k類被選中的概率)、Ck(協方差矩陣->對數似然函數不收斂{估計步驟E,計算后驗概率->最大化步驟M,更新參數->計算模型的對數似然函數}->得到最終分類結果
9.3初始化參數
  1.Ck設置為單位矩陣,Πk=1/K,均值μk設為隨機數
  2.由k-means聚類算法對樣本進行聚類,得到K值,然后利用各類的均值作為μk,並計算協方差矩陣Σk,Πk取各類樣本占樣本總數的比例。


10、隨機森林算法
10.1算法概述
  隨機森林以決策樹為基分類器,它包含多個由Bagging集成學習技術訓練得到的決策樹,當輸入待分類的樣本時,最終的分類結果由單個決策樹的輸出結果投票決定。
  常規的分裂過程是在所有特征中進行篩選,特征之間的關聯性可能會導致泛化能力不足。隨機森林在決策樹構建過程中引入了隨機特征子空間的概念,其主要通過隨機選取多個特征作為子空間供決策樹在選取最優特征時用於分裂樹節點。
10.2算法步驟
  輸入待分類樣本->使用Booststrap方法將樣本划分為k個樣本->構建K個決策樹{第m個Booststrap訓練樣本->隨機特征子空間->CART算法建樹}->投票決定多個決策樹的輸出結果
10.3構建數據集
  從原始的數據集中使用Booststrap(有放回)方法隨機抽取K次樣本,生成K個數據集。

 

11、朴素貝葉斯算法
11.1算法概述
  基於概率論的分類算法,通過考慮特征概率來預測分類。該算法采用了“特征屬性獨立性假設”的方法,即對已知類別,假設所有特征屬性相互獨立。
  對於給定的訓練數據集,首先基於特征屬性獨立假設學習輸入\輸出的聯合概率分布,然后基於此模型,對給定的輸入,利用貝葉斯定理估計后驗概率最大的輸出。
11.2算法步驟
  確定特征屬性xj,獲取訓練樣本集合yi->計算各類別的先驗概率P(Y=Ck,類別Ck在訓練樣本集中的頻率)->計算各類別下各特征屬性xj的條件概率P(Xj=xj|Y=Ck,引入了拉普拉斯平滑)->計算各類別的后驗概率P(Y=Ck|X=x)=P(Xj=xj|Y=Ck)*P(Y=Ck)/P(X=x)->后驗概率最大項作為樣本所屬類別
11.3計算條件概率
  1.xj是離散值:假設xj符合多項式分布,條件概率是在樣本類別Ck中特征。xj出現的頻率。
  2.xj是稀疏二項離散值:假設xj符合伯努利分布,xj出現記為1,不出現記為0.
  3.xj是連續值:通常取xj的先驗概率為正太分布,即在樣本類別Ck中,xj的值符合正太分布。

12、隱馬爾可夫模型算法HMM
12.1算法概述
  馬爾可夫連是指一個離散變量的隨機過程,其一系列狀態之間的聯系通過一個狀態轉移概率矩陣來描述。狀態之間的轉變具有相應的轉移概率,並且狀態轉移概率僅僅依賴於當前的狀態,與之前的狀態無關。
  HMM是一個雙重隨機過程:一個隨機過程是具有有限狀態的馬爾可夫鏈,用來描述狀態的轉移;另一個隨機過程描述每個狀態和觀察值之間的統計對應關系。
  隱馬爾可夫模型中的馬爾可夫鏈是隱藏的,無法直接通過狀態序列得到,但是每一個狀態都有一個觀察值,假設每個觀察值只依賴於此刻馬爾可夫鏈的狀態,與其他因素無關。
12.2算法步驟
  給定模型的λ=(A,B,Π)和觀測序列長度T->按照初始狀態分布Π產生狀態i1->循環T次{按照狀態it的觀測概率分布生成ot->按照狀態it的狀態轉移概率分布產生狀態it+1}->生成觀測序列O=(O1,O2...OT)
  A是狀態轉移矩陣,B是觀測概率矩陣,Π是初始狀態概率向量

13、BP神經網絡算法
13.1算法概述
  通常指基於誤差反向傳播算法的多層前向神經網絡,由信號的前向傳播誤差的反向傳播兩個過程組成.
13.2算法步驟
  初始化權值和偏置->讀取訓練數據->誤差不達標{{前向傳播->計算期望輸出與實際輸出的誤差}->反向傳播,調整權值和偏置}
  權值調整量=學習率*局部梯度*上一層輸出信號

14、卷積神經網絡算法
14.1算法概述
  由一個或多個卷積層、池化層和最后的全連接層組成。
  卷積神經網絡通過對圖像進行局部掃描,提取其中的特征,再經過多層處理,增加所提取的特征的感受范圍。另外,每次完成特征提取后通常會按照特定的規則消去數據,這樣既降低了所要計算的參數規模,又增加了網絡的擬合能力。
14.2結構元素介紹
  1.卷積層:卷積運算的目的是提取輸入的不同特征,第一層卷積層可能只提取一些低級的特征,如邊緣、線條和角等層級,更多層的網絡能從低級特征中迭代提取更復雜的特征。
  2.池化層:是一種形式的下采樣。池化層會不斷地減小數據的空間大小,因此參數的數量和計算量也會下降,這在一定程度上也控制了過擬合。
  3.全連接層:每一個神經元都與上一層的所有神經元相連,用來把前邊提取到的特征綜合起來。在卷積神經網絡中全連接層起到將通過卷積層與池化層學習到的分布式特征表示映射到樣本標記空間的作用。卷積神經網絡中的全連接層可由卷積操作實現。
  4.損失函數層:用於決定訓練過程如何來“懲罰”網絡的預測結果和真實結果之間的差異,通常是網絡的最后一層。各種不同的損失函數應用於不同類型的任務。

15、遞歸神經網絡算法
15.1算法概述
  遞歸神經網絡有兩種,一種是基於時間的遞歸神經網絡,常被用來進行時間序列預測,還有一種是基於結構的遞歸神經網絡。
  遞歸神經網絡目前比較熱門的是RNN變體長短期記憶模型。可以把RNN看成一種回路,在回路中,神經網絡反復出現,可以將它看作人的大腦中某一神經元在不同時間段的不同狀態,隨時間的推移,它所具備的信息不斷變化。
  RNN的變體:LSTM、完全遞歸網絡、Hopfield網絡,回聲狀態網絡、雙向網絡

 

參考文獻:

        趙涓涓,強彥.Python機器學習[M].北京。:機械工業出版社,2019.6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM