回歸分析
回歸分析是一種預測性的建模技術,用於連續性數據的機器學習(在監督學習中,如果預測的變量是離散的,稱其為分類;如果預測的變量是連續的,稱其為回歸),它研究的是因變量(目標)和自變量(預測器)之間的關系。這種技術通常用於預測分析,時間序列模型以及發現變量之間的因果關系。
一元線性回歸
在機器學習中,一元線性回歸是回歸分析中最簡單的一種,它有一個自變量和一個因變量,它是這樣描述的:如果能夠一系列訓練數據(x1, y1), (x2, y2)…(xn, yn)尋找出一條最佳擬合直線y = ax + b,用這條直線近似地表示x和y的關系,那么這種分析就稱為一元線性回歸分析。
多元線性回歸
多元線性回歸和一元線性回歸本質上是一樣的,只不過數據樣本有n個維度(或稱為n個特征向量),即:
這里x的上標表示第i個樣本集。線性回歸的目的是找到x的系數θ:
通過求解θ得到最終的擬合曲線,也就是預測模型:
簡寫為:
這正是y = ax的形式。如果令x0 = 1,則多元線性回歸就可看作一條直線y = ax + b,實際上,多元線性回歸是n維空間的一個超平面。
誤差的計算
一元線性回歸的目標是找到最佳的a和b,這里“最佳”是說我們找出的這組a和b能使得所有訓練數據誤差的總和達到最小化。
計算誤差的辦法有很多種,其中兩種典型的做法,一是計算數據到直線的距離,二是數據和直線所對應的y值。根據計算方法的不同,得到的最終訓練模型也不同。
實際應用中,如果計算點到直線的距離,就需使用兩個維度的數據進行計算,而實際上兩個維度大多數時候都不存在直接的計算關系,比如時間和房價,二者並不能直接進行加減運算,想要運算必須通過成本函數轉換。基於上述原因,通常使用第二種方法,也就是計算數據和直線所對應的y值:
最小二乘
找到最佳擬合直線的方法有很多,其中一種就是最小二乘法。
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。最小二乘法的計算公式:
其中h是預期模型,h(xi)是模型預測的結果,yi是實際結果。對於一元線性回歸來說:
D(a, b)是關於a和b的函數,把xi和yi代入到最小二乘法的式子中,就得到了一個關於a和b的方程。在這個方程中,a和b是未知數,x和y是已知數。使D(a, b)最小的方法就是找到臨界點,也就是D關於a的偏導和D關於b的偏導同時等於0的點:
這就是最終的方程組,可以根據該方程組求出a和b。可以看到,如果數據集的不同,求出的a和b也不同,也就是最終的預測模型不同。
示例
用最小二乘法把下列數據擬合成直線和曲線,(0, 1), (2, 1), (3, 4)
最佳擬合直線是y = 6x/7 + 4/7
如果擬合為曲線,則y = ax2 + bx +c,
將(0, 1), (2, 1), (3, 4)代入方程:
為了把這個無聊的方程交給計算機處理,將其變為矩陣方程:
1 import numpy as np 2
3 a = np.matrix([[97,35,13],[35,13,5],[13,5,3]]) ** (-1) 4 b = np.matrix([[40],[14],[6]]) 5 print(a * b)
最終的擬合曲線是y = x2 –2x + 1
可以看出,三個點全部在曲線上,最小誤差是0。這實際上正是期望的結果,因為訓練數據只有三個點,所以根據這三個點得到的三元一次方程組:
這也從側面反映出最小二乘法的正確性。
出處:微信公眾號 "我是8位的"
本文以學習、研究和分享為主,如需轉載,請聯系本人,標明作者和出處,非商業用途!
掃描二維碼關注作者公眾號“我是8位的”