一、线性回归
一、在有監督學習中主要包括兩大類問題
分類問題:你去銀行貸款借錢,人家銀行會不會借給你?當然只有兩種答案:會、不會
回歸問題:人家銀行能借給你多少錢?是一個具體的值
舉個例子:假如你去銀行貸款,人家銀行主要考慮你月薪和年齡這兩個因素來決定你的最終的貸款金額。
| 1 | 3000 | 20 | 20000 |
| 1 | 8000 | 28 | 35000 |
| 1 | 1000 | 25 | 10000 |
| 1 | 4000 | 30 | 30000 |
| 1 | 12000 | 20 | 50000 |
很顯然,人家銀行貸給你錢主要看的是你的月薪,其次看的是你的年齡,這兩個元素權重不一樣。
x1和x2是兩個特征,即月薪和年齡,Y是最終的貸款金額。
二、線性擬合
假設θ1是年齡的參數, θ2是工資的參數,因為是兩個參數影響,故需要擬合一個平面。
,其中θ0是偏置項,方便后續的矩陣操作。
整理得:
三、誤差
真實值和預測值之間肯定存在差異,這個差異就是誤差ε。
對于每個樣本而言:
誤差,是獨立并且具有相同的分布,并且服從均值為0,方差為 的高斯分布。
獨立:A和B是兩個人,銀行對待這兩個人是一樣的,兩個人都不認識,相互獨立。
相同的分布:倆人都去同一家銀行貸款
高斯分布:也稱正態分布或正常分布。主要是說 銀行可能會給的多,也可能給的少,但這都是少數情況,但大多數情況下浮動不會太大,
預測值和誤差:
高斯分布:,這里的ε和σ都指代誤差。
誤差服從高斯分布,帶入預測值和誤差公式中得:
似然函數:這里的均值為0,直接帶入簡化函數
,可以理解這個似然函數主要求解什么樣的參數(θ0,θ1,θ2)跟我們的數據組合一下可以更好的接近真實值。
但這里是累乘的操作,相比累加而言確實有點麻煩,故需要通過對數似然來將累乘向類和轉換。
對數似然:
L(θ)和log(θ)的值不同,但這兩個函數的極值點θ是一樣的,故可以相互等價。
化簡:
故:最終的目標是讓取值最小即可。
四、通過最小二乘法求目標函數最小值
目標函數:
如何求函數最小值?很簡單,求導唄,找到導數為0的θ。當然這里是多個變量求的是偏導。
令偏導為0,求出θ即可。
五、評估方法
R2越接近于1,則模型擬合的越好。
六、梯度下降法
當我們得到一個目標函數之后,如何求解?你會求解,但是機器學習是讓機器去學會這個方法,你學會沒用!
故這時候就需要將我們求解的步驟進行具體話,給機器說一下求解的方法、步驟,讓機器按照這個步驟來就可以求解出最佳的答案。
對于目標函數:
我們的目標是如何找到終點?即什么樣的參數能使得目標函數達到極值點
目標函數:
①批量梯度下降:
因為這里梯度下降法是沿梯度反方向走的,故需要加個負號,負負得正:
可以看出:容易得到最優解,但是m個樣本都考慮到了,速度太慢了。
②隨機梯度下降:
每一次知道一個樣本,迭代速度很快,但不一定每次的樣本都是收斂的。
③(常用)小批量梯度下降:
從中隨機找幾個樣本(這里選擇10個),每次更新選擇一小部分樣本。
這里的α是學習率(learning rate,LR),也就是每次下降的步長,步長對結果影響很大,一般小一點較好。通常LR=0.01、0.001挨個試試效果。
這里選擇的是隨機選取10個樣本,一般都是隨機取64、128、256個樣本。
總結梯度下降法步驟:
①分別求每個參數的偏導,找到偏導最小值
②走α步
③按當前方向進行更新參數θ
總結
- 上一篇: 二、VC++环境的安装
- 下一篇: 二、模型评估方法