淺談LR
背景
機器學習
-
套路:
- 學習過程:Input -> Model
- 新數據鹰服,應用模型,得到結果山卦。
- 例子:分類
- 輸入:feature轧邪,label
- 學習:找到feature和label之間的關系,即模型举庶。
- 預測:當有feature無label的數據輸入時执隧,就可以計算出label。
-
監(jiān)督學習supervised和無監(jiān)督學習unsupervised
- 分類依據:輸入數據是否有標簽
- 監(jiān)督學習:輸入數據帶標簽户侥,我們教計算機如何去學習镀琉。例子:分類。
- 無監(jiān)督學習:輸入數據不帶標簽蕊唐,計算機自己學習屋摔。一個聚類算法通常只需要知道如何計算相似度就可以。例子:聚類替梨。
回歸和分類:
- 分類:預測的變量是離散型的钓试,如決策樹,支持向量機等副瀑。邏輯回歸:是一個分類方法弓熏,原始輸出是每個特征向量出現(xiàn)的概率,通過設置閾值糠睡,得到分類結果挽鞠。之所以叫回歸,是有一些歷史原因狈孔。
- 回歸:預測的變量是連續(xù)性的信认,如線性回歸等。
線性回歸
問題引入
- 房屋銷售數據
|面積(平)|銷售總價(萬元)|
|---|---|
|123|250|
|150|320|
|87|160|
|102|220|
|...|...|
線性回歸房價銷售記錄.png
線性回歸房價擬合.png
最小二乘法:
- 選擇最佳擬合曲線的標準:
- 使總的擬合誤差最小
- 最小二乘法:
- 殘差的平方和最小
- 直接對殘差和求導找出全局最小均抽,是非迭代法嫁赏。
- 示例
- 某次實驗得到四個點數據(x,y):(1,6),(2,5),(3,7),(4,10),希望找出一條和四個點最匹配的直線$$$y = \beta_1+\beta_2x$$$油挥,即找出某種“最佳情況”下能夠大致符合如下超線性方程組的$$$\beta_1,\beta_2$$$:
- $\beta_1+1\beta_2 = 6$
- $\beta_1+2\beta_2 = 5$
- $\beta_1+3\beta_2 = 7$
- $\beta_1+4\beta_2 = 10$
- 最小二乘法是盡量使得等號兩邊的方差最辛视:
- $S(\beta_1,\beta_2)=[6 - (\beta_1+1\beta_2)]^2+[5 - (\beta_1+2\beta_2)]^2+[7- (\beta_1+3\beta_2)]^2+[10 - (\beta_1+4\beta_2)]^2$
- 通過對$S(\beta_1,\beta_2)$分別求$\beta_1,\beta_2$的偏導,然后使他們等于0得到喘漏。
- $\frac{\delta }{\delta _{\beta _{1}}}S = 0 = 8\beta_1+20\beta_2 - 56$
- $\frac{\delta }{\delta _{\beta _{2}}}S = 0 = 20\beta_1+60\beta_2 - 154$
- 得到
- $\beta_1 = 3.5$
- $\beta_2 = 1.4$
- 即目標直線:$y = 3.5+1.4x$是最佳的护蝶。
梯度下降
問題
- 對于n個特征$$$x_1,x_2...,x_n$$$,給出一個估計函數
$h_\theta(x) = \theta^TX$ - 損失函數:
- 評價估計函數的好壞:對$$$x(i)$$$的估計值與真實值$$$y(i)$$$差的平方和作為損失函數翩迈。
- $$$J(\theta) = \frac{1}{2}\sum_{i = 1}^m (h_\theta(x^{(i)} - y{(i)})2$$$
- $min \theta J\theta$
推導流程
- 隨意選初始$$$\theta$$$持灰,比如$$$\theta = 0 $$$,然后不斷的以梯度的方向修正$$$\theta$$$负饲,最終使$$$J(\theta)$$$收斂到最小堤魁∥沽矗可能找到的是局部最優(yōu)。
- 每次修正的公式:$$$\theta_j := \theta_j - \alpha\frac{\delta}{\delta{\theta_j}}J(\theta)$$$
- 假設訓練集只有一個樣本點妥泉,那么梯度推導:
$\frac{\delta}{\delta{\theta_j}}J(\theta) = \frac{\delta}{\delta{\theta_j}}\frac{1}{2}(h_\theta(x) - y)^2 = 2 \cdot \frac{1}{2}(h_\theta(x) - y)\cdot\frac{\delta}{\delta{\theta_j}}(h_\theta(x) - y)
= (h_\theta(x) - y)\cdot\frac{\delta}{\delta{\theta_j}}(\sum_{i = 0}^n\theta_ix_i - y)
= (h_\theta(x) - y)x_j$ - 實際訓練集會有m個樣本點椭微,所以最終的公式為:
Repeat until covergence {
$\theta_j :=\theta_j + \alpha\sum_{i = 1}m(y{(i)}- h_\theta(x{(i)}))x_j{(i)} $
} - 上述是批梯度下降(batch gradient descent)
- 每次迭代對于每個參數都需要進行梯度下降,直到$$$J(\theta)$$$收斂到最小值盲链。
- 每次遍歷所有的樣本點蝇率,當樣本點很大時,基本就沒法算了刽沾。
- 隨機梯度下降(stochastic gradient descent)
- 每次只考慮一個樣本點本慕,而不是所有的樣本點。
- 公式:
- Loop
{ for i = 1 to m ,$$${
\theta_j :=\theta_j + \alpha(y^{(i)}- h_\theta(x{(i)}))x_j{(i)}
}$$$ , for every j}