1、什么叫回歸算法:
常見的回歸算法有: 線性回歸、Logistic回歸、Softmax回歸......
① 回歸算法屬於一種有監督學習
② 回歸算法是一種比較常用的機器學習算法,用來建立自變量(x)與因變量(y)之間的關系;從機器學習的角度來講,用於構建一個算法模型(函數)來做屬性(x)與標簽(y)之間的映射關系,
在算法的學習過程中,試圖尋找一個函數 h: R(d) -> R 使得參數之間的關系擬合性最好
③ 回歸算法中算法(函數)的最終結果是一個連續的數據值,輸入值(屬性值)是一個d維度的屬性/數值量
2、線性回歸:
顧名思義,線性回歸就是,自變量(x)與因變量(y)之間為線性關系

亦可表示為:
![]()
其中,
表示誤差,是獨立同分布的,服從均值為0,方差為某定值
的高斯分布(根據中心極限定理得出);但,實際問題中,很多隨機現象可以看做眾多因素的獨立影響的綜合反應,往往服從正態分布
3、似然函數:
由線性關系公式及誤差特性,可推出
可得: ![]()
![]()
4、對數似然:

![]()
5、線性回歸的目標函數(損失函數)
![]()
6、theta(
) 的求解過程:
最后解出: ![]()
7、最小二乘法的參數最優解:
① 參數解析式: ![]()
② 最小二乘法的使用要求矩陣
是可逆的;為了防止不可逆獲取過擬合的問題存在,可以增加額外數據影響,導致最終的矩陣是可逆的:
![]()
③ 最小二乘法矩陣逆的求解是一個難點
8、目標函數(loss/cost function):
①
②
③
④ ![]()
⑤
9、過擬合:
過擬合現象表現為:由於對訓練數據的訓練准確率過高,導致訓練出來的模型在測試數據上的准確率反而下降
10、線性回歸的過擬合:
① 目標函數:
② 為了防止數據過擬合,也就是
值在樣本空間中不能過大/過小,可以在目標函數之上增加一個平方和損失,
③ 正則項(norm):
,這里這個正則項叫做L2-norm
11、過擬合與正則項
① L2-norm: ![]()
② L1-norm: ![]()
12、Ridge回歸:
使用L2正則的線性回歸模型就稱為Ridge回歸(嶺回歸): ![]()
13、 LASSO回歸:
使用L1正則的線性回歸模型就稱為LASSO回歸:![]()
14、Ridge回歸與LASSO回歸比較
① L2-norm中,由於對各個維度的參數縮放在一個圓內縮放的,不可能導致有維度參數變為0的情況,那么也就不會產生稀疏解,實際應用中,數據的維度中是存在噪音和冗余的,稀疏的解可以找到有用的維度並且減少冗余,
提高回歸預測的准確性和魯棒性(減少了overfitting)(L1-norm可以達到最終解的稀疏性要求)
② Ridge模型具有較高的的准確性,魯棒性以及穩定性,LASSO模型具有較高的求解速度
③ 如果既要考慮穩定性又要考慮求解速度,就使用Elasitc Net
15、Elasitc Net算法:
同時使用L1和L2正則的線性回歸模型就稱為Elasitc Net算法(彈性網絡算法):

16、模型效果判斷:
① 
誤差平方和,越接近0表示模型越擬合訓練數據
② 
MSE的平方根,作用於MSE相同
③ 
取值范圍(負無窮,1],值越大表示模型越擬合訓練數據;最優解是1,當模型預測為隨機值的時候,有可能為負,若樣本值恆為樣本期望,
為0
④ TSS:總平方和TSS,表示樣本之間的差異情況,是偽方差的m倍
⑤ RSS:殘差平方RSS,表示預測值與樣本值之間的差異情況,是MSE的m倍
17、梯度下降
① 目標函數求解:![]()
② 初始化
(隨機初始化,可以初始化為0)
③ 沿着負梯度方向迭代,更新后的
使得
更小
:學習率,步長
④

18、批量梯度下降算法(BGD)
![]()
![]()
![]()
19、隨機梯度下降算法(SGD)
20、BGD與SGD算法比較
① SGD比BGD速度快(迭代次數少)
② SGD在某些情況下(全局存在多個相對最優解/
不是一個二次),SGD有可能跳出某些小的局部最優解,所以不會比BGD壞
③ BGD一定能夠得到一個局部最優解(在線性回歸模型中一定是得到一個全局最優解),SGD由於隨機性的存在可能導致最終結果比BGD差
21、小批量梯度下降算法
小批量梯度下降算法可以保證算法訓練過程速度比較快且最終參數訓練的准確率
22、梯度下降詳解
① 由於梯度下降法中負梯度方向作為變量的變化方向,所以有可能導致最終求解的值是局部最優解,所以在使用梯度下降算法的時候,需要做到:
學習率的選擇:學習率過大,表示每次迭代更新的時候變化比較大,有可能跳過最優解,學習率過小,表示每次迭代更新的時候變化比較小,會導致速度變慢,等待時間比較長;
算法初始參數值的選擇:初始值不同,最終獲得的最小值也有可能不同,因為梯度下降法求解的是局部最優解,所以一般情況下,選擇多次不同初始值運行算法,並最終返回損失函數最小情況下的結果值;
標准化:由於樣本不同特征的取值范圍不同,可能會導致在各個不同參數上迭代速度不同,為了減少特征值的影響,可以將特征進行標准化操作;
② BGD、SGD、MBGD的區別:
當樣本量為m的時候,每次迭代BGD算法中對於參數值更新一次,SGD算法中對於參數值更新m次,MBGD算法中對於參數值更新m/n次,相對來講SGD算法的更新速度最快;
SGD算法中對於每個樣本都需要更新參數值,當樣本值不太正常的時候,就有可能會導致本次的參數更新會產生相反的影響,也就是說SGD算法的結果並不是完全收斂的,而是在收斂結果出波動的;
SGD算法是每個樣本都更新一次參數值,所以SGD算法特別適合樣本數據量大的情況以及在線機器學習;
23、線性回歸總結
① 算法模型:線性回歸(Linear)、嶺回歸(Ridge)、LASSO回歸、Elstic Net
② 正則化:L1-norm、L2-norm
③ 損失函數/目標函數:
④
求解方式:最小二乘法(直接計算,目標函數是平方和損失函數)、梯度下降(BGD/SGD/MBGD)
24、Logistic回歸
Logistic/sigmoid函數:
得到

25、Logistic回歸及似然函數
假設
及
可推出
似然函數:
對數似然函數:
26、最大似然/極大似然函數的隨機梯度

27、Logistic回歸
參數的求解過程為(類似梯度下降方法)
28、極大似然估計與Logistic回歸損失函數
![]()
29、Softmax回歸
① Softmax回歸是logistic回歸的一般化,適用於k分類的問題,第k類的參數為向量
,組成的二維矩陣為
② softmax函數的本質就是將一個k維的任意實數向量壓縮(映射)成另一個k維的實數向量,其中向量中的每個元素取值都介於(0,1)之間
③ softmax回歸概率函數為: 
④ Softmax算法原理:
可得出:
⑤ softmax算法損失函數:

⑥ Softmax算法梯度下降法求解:

![]()
![]()
總結:
① 線性模型一般用於回歸問題,Logistic和Softmax模型一般用於分類問題
② 求
的主要方式是梯度下降算法,梯度下降算法是參數優化的重要手段,主要是SGD,適用於在線學習以及跳出局部極小解
③ Logistic和Softmax回歸是實踐中解決分類問題的重要方法
④ 廣義線性模型對樣本要求不必服從正態分布,只需要服從指數分布簇(二項分布、泊松分布、伯努利分布、指數分布等)即可;廣義線性模型的自變量可以是連續的也可以是離散的
