目錄
線性模型
1、線性回歸:
2、對數幾率回歸:
3、線性判別分析:
4、多分類學習:
5、類別不平衡問題:
基本數理知識補充:
損失函數:
凹凸函數
梯度下降
線性模型
????????線性模型形式簡單、易于建模,(如簡單的二元一次方程線性函數,復雜的線性函數,多維變量與因變量的關系)卻蘊涵著機器學習中的一些重要的基本思想。許多功能更為強大的線性模型可以在線性模型的基礎上通過引入層級結構或者高維映射而得。?幾種經典的線性模型(線性回歸、對數幾率回歸、線性判別分析、多分類學習)
1、線性回歸:
根據已有的數據確定一個函數然后預測,怎樣衡量函數的準確度呢,均方誤差是常用的,幾何意義上是求得一條線使得所有的樣本到直線的歐式距離之和最小,基于均方誤差最小化進行模型求解的方法稱為最小二乘法,以單變量為例f(x)=wx+b,求解w和b使得m代表有m個數據,通過使得所有數據誤差就和最小的w,b就是所要求得的最佳參數。
將求解公式等于0可求得w和b的最優封閉解
由此多元線性回歸的參數求解以同樣的思路求解,多參數轉為矩陣涉及到矩陣逆的計算,在不滿秩的時候經常會出現不止一組解使得均方誤差最小,涉及到選擇偏好,處理時加入正則化。也可以使用線性回歸的衍生物,即讓得到的模型和另外的函數產生關系lny=wx+b,這其實是輸入空間到輸出的一個非線性預測,對數線性回歸。
2、對數幾率回歸:
二分類任務的結果[0,1],而一般函數的輸出是實值,單位階躍函數以一定閾值劃分類別。但是單位階躍函數不連續不能直接作用于函數的輸出對數幾率函數常用的代替函數對數幾率函數(在神經網絡里有重要的作用)是一種sigmoid函數(S型函數)將z值轉化為一個接近0或1的y值。使用最大似然估計的方法來計算出w和b兩個參數的取值。
3、線性判別分析:
(LDA)經典的線性學習方法,基本思想是:將訓練樣本投影到一條直線上,使得同類的樣例盡可能近,不同類的樣例盡可能遠。如圖所示:
想讓同類樣本點的投影點盡可能接近,不同類樣本點投影之間盡可能遠,即:讓各類的協方差之和盡可能小,不用類之間中心的距離盡可能大。基于這樣的考慮,LDA定義了兩個散度矩陣。如圖:類內散度矩陣(越小越好)?類間散度矩陣(越大越好),最后得到了LDA的最大化目標:“廣義瑞利商”
最優化求解w的問題,當求解出w后對新的樣本進行分類時,只需將該樣本點投影到這條直線上,根據與各個類別的中心值進行比較,從而判定出新樣本與哪個類別距離最近。
4、多分類學習:
多分類的問題常常是使用差分策略,通過二分類學習來解決多分類問題,即將多分類問題拆解為多個二分類訓練二分類學習器最后通過繼承得到結果,最經典拆分策略有三種:“一對一”(OvO)、“一對其余”(OvR)和“多對多”(MvM),核心思想與示意圖如下所示:
1)OvO:給定數據集D假定其中有N個真實類別,將這N個類別進行兩兩配對(一個正類/一個反類),從而產生N(N-1)/2個二分類學習器,在測試階段,將新樣本放入所有的二分類學習器中測試,得出N(N-1)個結果,最終通過投票產生最終的分類結果。訓練N個分類器,開銷較大。
?2)OvM:給定數據集D假定其中有N個真實類別,每次取出一個類作為正類,剩余的所有類別作為一個新的反類,從而產生N個二分類學習器,在測試階段得出N個結果若僅有一個學習器預測為正類,則對應的類標作為最終分類結果。優時也要考慮預置置信度的大小確定類別。
? 3)MvM:給定數據集D假定其中有N個真實類別,每次取若干個類作為正類,若干個類作為反類(通過ECOC碼給出編碼),若進行了M次劃分,則生成了M個二分類學習器,在測試階段(解碼),得出M個結果組成一個新的碼,最終通過計算海明/歐式距離選擇距離最小的類別作為最終分類結果。
5、類別不平衡問題:
指分類問題中不同類別的訓練樣本相差懸殊的情況,在分類是實際上是輸出的y值是與一個閾值比較,y反應的是一個類別被劃分的可能性大小,閾值是0.5表明正反兩類結果可能性一致,一般情況下假設訓練集無偏差的,因此觀測幾率就代表真實幾率,則如果出現,則預測就為正例,但是預測其實依靠y/1-y是否大于來判斷,這要求對預測值進行微調,即根據此公式判斷是實際上是依靠,
,但是此時依據假設樣本絕對均勻,但是這種假設不成立,需要多樣本盡可能處理,常見的處理這種問題的做法有三種:在訓練樣本較:
1)多的類別中進行“欠采樣”(undersampling),使得正反接近再學習,常見的算法有:EasyEnsemble。
2)在訓練樣本較少的類別中進行“過采樣”(oversampling),例如通過對反例中的數據進行插值,來產生額外的反例,常見的算法有SMOTE。
3)直接基于原數據集進行學習,對預測值進行“再縮放”處理。?再縮放也是代價敏感學習的基礎。
具體代碼示例?
python3+TensorFlow 2.x(二) 回歸模型_tensorflow2的線性回歸模型舉例-CSDN博客
基本數理知識補充:
損失函數:
是用來衡量模型預測結果與真實標簽之間差距的函數。它告訴我們模型預測的“錯誤”有多大。損失函數的值越小,說明模型預測越準確。訓練模型的目標就是通過優化算法(如梯度下降)最小化損失函數。
凹凸函數
凸函數:函數圖像呈“碗”形,任何兩點連線都在函數圖像上方。對凸函數,局部最小值就是全局最小值。梯度下降在凸函數上能保證找到全局最優解。
非凸函數:可能有多個局部極小值,梯度下降可能陷入局部最優。
梯度下降
導數:導數表示函數在某一點的瞬時變化率。簡單來說:導數告訴我們函數曲線在某點的切線斜率。斜率正,函數在該點往上升;斜率負,函數往下降。斜率為零,函數在該點可能達到極值(最大值或最小值)。
梯度下降是一種迭代優化算法,用于尋找函數的最小值(或最大值,通常最小值)。核心思想:從一個初始點開始,計算函數在該點的梯度(導數)。梯度指示函數上升最快的方向,反方向就是下降最快的方向。沿著梯度的反方向移動一定步長(學習率),函數值會減小。不斷重復這個過程,最終會收斂到函數的局部最小值。
學習率大小的影響