?邏輯回歸與線性回歸的主要區別在于理論基礎、應用場景和數學模型。
1 線性回歸
1.1 理論基礎
線性回歸主要用于建模自變量與連續性因變量之間關系的統計方法,試圖利用一條線來擬合自變量與因變量之間的線性關系。
1.2 應用場景
從應用場景來說,適用于連續數值的預測,如房價預測、股票價格預測等。線性回歸模型假設因變量與自變量之間存在線性關系,適用于那些關系可以近似為直線的情況?
1.3 數學建模
1.3.1 模型的建立
以房價預測為例,建立一個線性模型:
y = b + ∑ w i x i y=b+ \sum_ {} w_ix_i y=b+∑?wi?xi?
其中 w i w_i wi?是參數, x i x_i xi?是因變量,一些影響房價的因素(面積,交通是否便利等), y y y是最終預測房價值。
1.3.2 參數的評估(損失函數)
如何評估一組參數 w i w_i wi?的好壞呢?將這組參數代入模型,計算得到預測房價 y p r e y_{pre} ypre?與真實房價之間的差距 y t r u e y_{true} ytrue?,將其定義為 l o s s loss loss, l o s s loss loss越小,說明預測值與真實值之間的差距越小,則說明這組參數越好,反之亦然。
L ( f ) = L ( w , b ) L(f)=L(w,b) L(f)=L(w,b)
既 L ( f ) = ∑ ( y t r u e ? ( b + w i x i ) ) 2 L(f)= \sum_{} (y_{true}-(b+w_ix_i))^2 L(f)=∑?(ytrue??(b+wi?xi?))2
**1.3.3 參數優化 **
如何挑選最好的function,使得 l o s s loss loss最小?
f ? = a r g m i n ∑ ( y t r u e ? ( b + w i x i ) ) 2 f^*=arg min \sum_{} (y_{true}-(b+w_ix_i))^2 f?=argmin∑?(ytrue??(b+wi?xi?))2,其中矩陣 w w w,矩陣 b b b是待優化的參數
只要 f ? f^* f?是可微分的,我們可以使用梯度下降(Gradient sescent)來優化 f ? f^* f?的參數 w w w, b b b.
- 首先考慮 f ? f^* f?只有一個參數 w w w的情況下。
- 隨機初始化參數 w 0 w^0 w0;
2.計算參數 w 0 w^0 w0對loss的微分 d L d w ∣ w = w 0 \frac{dL}{dw} |_{w=w^0} dwdL?∣w=w0?的結果
3.如果如果斜率是負數,說明左邊的loss值更高,應該增大 w w w的值,找尋更小的loss值如果斜率是正數,應該減 w w w的值。
減少或者增加的w的大小應該如何選擇呢:
取決于兩個因素:
斜率計算出來的數值,第二個是 η η η學習率(learning_rate)
w 1 ← w 0 ? η ? d L d w ∣ w = w 0 w^1 \leftarrow w^0 - \eta * \frac{dL}{dw} |_{w=w^0} w1←w0?η?dwdL?∣w=w0?
多次更新 w w w的數值,直到 l o s s loss loss到達一個局部最優值(local optimal)
- 考慮 f ? f^* f?存在兩個參數 w w w和 b b b的情況下:
1)隨機初始兩個參數值
2)對其 l o s s loss loss分別計算偏微分
gradient:所有偏導的向量矩陣
在Linear regression中, the loss is convex,不存在local optimal
以上過程,模型在已知數據(訓練數據)上調整參數,可以作為回歸模型的訓練過程。模型在未知數據(測試集)上的表現,稱為模型的泛化程度(generalization)。模型越復雜,在訓練數據上就越擬合,但是可能會在測試數據上出現過擬合的情況。
loss的主要來源:bias 和variance
Simpler model is less influenced by the sampled data
一個較大的bias 導致每次預測結果在一個相近范圍,但與目標值較遠 模擬欠擬合,過于簡單
當model不能fit訓練集是是bias大
如果在訓練集上過擬合,測試集上無法fit說明variance大、
如果bias,
需要重新設計一個更為精細的模型,
添加更多的輸入特征
如果variance大的話:
增加data(數據增強)
Regularization 讓參數越少越好,曲線越平滑越好
There is usually a trade-off between bias and variance
選擇一個模型在這兩種error中總error最小的model
將training set 劃分為兩組:training set 和validation set
N-flod cross validation 幾折交叉驗證 算平均精度
2 邏輯回歸
2.1理論基礎
邏輯回歸用于建模自變量與離散型因變量之關系的統計方法,常使用邏輯函數建立自變量與因變量之間的非線性關系。
2.2 應用場景
適用于二分類問題的預測,如垃圾郵件分類、腫瘤診斷、金融欺詐檢測等。邏輯回歸通過sigmoid函數將輸出限制在0和1之間,適用于處理只有兩種可能結果的情況?
2.3 數學建模
2.3.1 邏輯函數
與線性回歸loss計算預測值與真實值之間的差距不同,邏輯回歸中,loss是計算模型在訓練數據上預測錯誤的次數。即:
L ( f ) = ∑ δ ( f ( x n ) ≠ y t r u e ) L(f)=\sum_{} \delta(f(x^n) \neq y^{true}) L(f)=∑?δ(f(xn)=ytrue)
這種情況下,無法微分,如果進行參數優化的步驟呢?
引入Sigmoid函數
Sigmoid函數的公式為 1 1 + e ? Z \frac{1}{1+e^{-Z}} 1+e?Z1?,其中 Z Z Z是線性組合的結果,Sigmoid函數的輸出范圍是(0, 1),非常適合表示概率。這意味著無論輸入值為何,通過Sigmoid函數處理后,輸出都在0到1之間,我們可以將這個值解釋為屬于某一類的概率?。
δ ( w , b ) = 1 1 + e ? ( w T x + b ) \delta(w,b)=\frac{1}{1+e^{-(w^Tx+b)}} δ(w,b)=1+e?(wTx+b)1?
此外,Sigmoid函數是可微的,這意味著我們可以計算它的導數,從而在使用梯度下降法優化邏輯回歸模型參數時,能夠直接根據Sigmoid函數的導數計算梯度,更新模型的權重和偏置?。
對數損失(Log Loss) 邏輯回歸采用極大似然估計推導損失函數,等價于最小化交叉熵損失(Cross-Entropy Loss)
對于單個樣本損失為:
L ( y i p r e , y i t r u e ) = ? y i p r e l o g ( y i t r u e ) ? ( 1 ? y i p r e ) l o g ( 1 ? y i t r u e ) ) L(y^{pre}_{i}, y_{i}^{true})=-y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) L(yipre?,yitrue?)=?yipre?log(yitrue?)?(1?yipre?)log(1?yitrue?))
以下內容摘抄 https://zhuanlan.zhihu.com/p/659617924
在信息論中,將一個事情的不確定性。稱為熵,如果一件事情發生的概率為 p i p_i pi?,其賭贏的熵則為 I ( p i ) = ? l o g ( p i ) I(p_i)=-log(p_i) I(pi?)=?log(pi?)。 其寓意在于,一個事情會發生的可能性越低,其包含的信息量(不確定性)就越大,
從上圖很容易看到,當概率為1時,它表示時間發生的概率為100%,不存在不確定性,此時自信息為0,反之,概率越小,不確定性就越大,自信息也就越大。
如果訓練集有多個觀察樣本,我們希望所有樣本的熵之和最小(相當于混雜程度最小),在取得均值的情況下,可以描述為: ∑ i = 1 N I ( p i ) = ? 1 N ∑ i = 1 N l o g ( p i ) \sum_{i=1}^{N} I(p_i)= -\frac{1}{N} \sum_{i=1}^{N} log(p_i) i=1∑N?I(pi?)=?N1?i=1∑N?log(pi?)
期望值(Expectation,簡稱E)是對隨機變量可能取值的加權平均。每個取值的權重是它發生的概率。通過計算加權平均,我們可以得到隨機變量的期望值。
信息熵是一種數學方式來度量信息的平均不確定性,它也可以表述為,事件在所有可能情況下的自信息期望值,其計算公式如下:
H ( X ) = E x P [ I ( x ) ] = ∑ i p ( x i ) l o g 2 ( 1 p ( x i ) ) = ? ∑ i p ( x i ) l o g 2 ( p ( x i ) ) ) H(X)=E_{x~P}[I(x)]=\sum_{i} p(x_i)log_2(\frac{1}{p(x_i)})=-\sum_{i} p(x_i)log_2(p(x_i))) H(X)=Ex?P?[I(x)]=i∑?p(xi?)log2?(p(xi?)1?)=?i∑?p(xi?)log2?(p(xi?)))
其中, H ( X ) H(X) H(X)表示隨機變量 X X X的信息熵, p ( x i ) p(x_i) p(xi?)是隨機變量 X X X取值為 x i x_i xi?的概率, l o g 2 ( 1 p ( x i ) ) log_2(\frac{1}{p(x_i)}) log2?(p(xi?)1?)就是 p ( x i ) p(x_i) p(xi?)概率下的編碼長度, E x P E_{x~P} Ex?P? 表示編碼長度的數學期望.
在本質上,對數損失其實求的也是一種熵,即也是一種編碼長度的期望,不過這個期望有點不同。不同之處在于:用于求編碼長度的概率,來自于模型的實際輸出 y i p r e y^{pre}_{i} yipre?,取值介于0~1之間,它對應的編碼長度記做 l o g ( 1 y i t r u e ) log(\frac{1}{y^{true}_{i}}) log(yitrue?1?) ,但評價這個編碼長度的權值,卻來自于真實概率 y i t r u e {y^{true}_{i}} yitrue?.即 ? y i p r e l o g ( y i t r u e ) -y^{pre}_{i}log(y_{i}^{true}) ?yipre?log(yitrue?)
同理,二分類問題中,另一個對立面,可以計算其熵為: ( 1 ? y i p r e ) ? ( 1 ? l o g ( y i t r u e ) ) (1-y^{pre}_{i})-(1-log(y_{i}^{true})) (1?yipre?)?(1?log(yitrue?))
又因為,對于特定實例,前面兩項情況只有一個成立,因此可以巧妙地把上述這兩種情況統一在一起,便于統一操作,即可得到: ? y i p r e l o g ( y i t r u e ) ? ( 1 ? y i p r e ) l o g ( 1 ? y i t r u e ) ) -y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) ?yipre?log(yitrue?)?(1?yipre?)log(1?yitrue?))
Sigmoid 函數:
σ ( z ) = 1 1 + e ? z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e?z1?