1、線性回歸問題
以房價**為例,占地面積為變數x1,房屋年齡為變數x2,房屋**為**變數y。
為什麼叫線性回歸問題,因為目標函式是乙個線性回歸函式。什麼是目標函式?
(1)、目標函式:目標函式是我們需要的最終結果,及最終擬合了資料的函式。
假設目標函式為y = θ1*x1 + θ2*x2 + b。
那麼我們如何得到目標函式中的引數呢?如何使用資料來擬合得到最好的θ1、θ2以及b就是接下來要做的事情。
(2)、損失函式:損失函式是我們得到的**值y_pre與真實資料中的y的某種方式計算出來的差值。那麼也就是說損失函式越小,就代表著我們目標函式的引數越好。
一般線性回歸問題我們用均方差來作為損失函式,即 j(θ1,θ2)=∑(y-y_pre)^2 #小弟能力有限,暫時部落格沒什麼好的書寫方式,公式裡的符號能理解就好
也就是說我們現在的問題就是在這個j(θ1,θ2)上面找事情了,找到它最小的情況,並且計算出這時的θ1和θ2以及b
2、解決途徑
對於損失函式j(θ1,θ2)=∑(y-y_pre)^2,我們最常用的方式自然是傳說中的梯度下降法了。當然不只是梯度下降法,也有其他的解法,如最小二乘法等。
(1)、梯度下降
梯度下降的原理如其名所述,取其梯度,按梯度下降,然後下降到最低點,就得到我們最想要的最小的j了。
梯度是什麼?對於損失函式 j = ∑(y-y_pre)^2 來說,梯度就是j分別對θ1和θ2求偏導數,即{∂j/∂θ1,∂j/∂θ2}
那梯度下降就是引數減去這個偏導數嘍。
θ1 = θ1 - ∂j/∂θ1
θ2 = θ2 - ∂j/∂θ2
這樣一次減法操作就是一次梯度下降,梯度下降法正是通過這樣一次次的減法,直到最後使得θ1和θ2趨於穩定,也就是j達到或者接近最小值。
那麼為什麼這樣一次次的減法就能得到結果呢?我們畫個圖來看一下。
因為三維圖不太會畫,就用二維影象,乙個θ值來分析。乙個引數兩個引數都是一樣的,只不過多乙個減法公式。
如圖,假設初始的θ值位於a點,那麼a點的偏導,如斜線所示,是乙個正數,那麼θ = θ - ∂j/∂θ(正數)這樣的減法公式之後,橫左邊必然是變小了,a點自然是向左移動了,假設從a點移動到了b點,那麼可以發現j的值確實是變小了。如果a點在函式最小值的的左邊呢?
如圖,如果一開始在c點,這時的偏導是負數,那麼θ = θ - ∂j/∂θ(負數) 之後,theta變大了,橫座標右移,自然j也就變小了,這也就是說不論哪種情況下進行梯度下降,j都是在減小的。
損失函式j梯度下降公式是這樣的,以乙個θ舉例: θ = θ - λ*(∂j/∂θ),多出乙個λ,這個λ是超引數,是人為設定的,也就是可以我們可以控制梯度下降的步長,是下降的快一點還是慢一點。這裡不是設定的越大越好,因為如果λ太大,會導致發生從a點直接下降到c點這種情況,也就是說步子太大了,直接跨過了最低點。
以上就是線性回歸linear regression以及梯度下降gd的原理,下面我們來看一下sklearn中如何使用。
# 本篇學習線性回歸演算法,使用自帶的波士頓放假資料集#匯入包
from sklearn import datasetsfrom sklearn import linear_model
import pandas as pd
import matplotlib.pyplot as plt
#匯入資料,切分為資料集x以及目標集ydata = datasets.load_boston()
x = pd.dataframe(data['data'],columns=data.feature_names)
y = pd.dataframe(data['target'],columns=data.)
#生成模型物件,並fit資料,**結果sklearn的使用十分簡單,以上就是使用sklearn做的乙個線性回歸**房價,當然沒有什麼模型評價、模型優化等等,這些之後再聊。reg = linear_model.linearregression()
reg.fit(x,y)
predictions = reg.predict(x)
print(predictions)
機器學習之線性回歸
訓練樣例 x y 輸入變數 特徵 x ps n 1行,1 列 輸出變數 目標變數 y訓練樣例總數 m 特徵維度 n第 i 個訓練樣例 x i y i 所有訓練樣例的輸入變數組成的矩陣 x ps m行,n 1 列,每行是 x i t 所有訓練樣例的輸出變數組成的矩陣 y ps m行,1 列 下表是某地...
機器學習之線性回歸
線性回歸就是用線性方程去擬合一組資料,x 的最高端是1,用方程可以表示為 h x 0 1x1 n xn我們令 x0 1則上式可以改寫為 h x i 0n ixi tx 既然是擬合的模型,則肯定會存在不符合該模型的點,第 i 個點的真實值與模型 的值之間的差稱為誤差 e h x i y i 假設總共有...
機器學習之線性回歸
線性回歸分析 regression analysis 其資料集是給定乙個函式和他的一些座標點,然後通過回歸分析的演算法,來估計原函式的模型,求得最符合這些資料集的函式解析式。然後我們就可以用來預估未知資料,輸入乙個自變數便會根據這個模型解析式輸出因變數,這些自變數就是特徵向量,因變數即為標籤,而且標...