線性回歸的一些基礎概念

2021-09-26 13:33:44 字數 2891 閱讀 7365

​:真實值、**值、所有真實值的平均值

兩個係數都是用來衡量模型的線性程度

學習率:調節每一次梯度下降的步長,如下圖:

學習率太小,時間過長;學習率太大,得不到非常近似的全域性最小值。

:=就是將右邊的式子賦值給左邊,對代價函式求導(兩個變數,偏導),以此改變初始化的θ

j\theta_j

θj​的值

凸函式的兩個定義:

下面是兩個定義的等價性證明:

簡單的梯度下降**:

import numpy as np

data = np.genfromtxt(

"data.csv"

,delimiter=

",")

x_data = data[:,

0]y_data = data[:,

1]#learning rate

lr =

0.001

#bias

b =0

#slope

k =0

epochs =

50m =

int(

len(x_data)

)def

cost_function

(x_data,y_data,b,k,m)

: errors =

0#這裡要初始化

for i in

range(0

,m):

h = k * x_data[i]

+ b errors +=

(y_data[i]

- h)**2

cost = errors /(2

*m)return cost

# gradient descent

defgradinet_descent

(b,k,x_data,y_data,m,epochs,lr)

:#pd_k = 0

#pd_b = 0

#寫在這裡是不對的,每乙個epoch重複更新一次,也要重新從初值(這裡為0)處迭代完所有資料

for i in

range

(epochs)

: pd_k =

0 pd_b =

0for j in

range(0

,m):

h = k * x_data[i]

+ b pd_k +=

(h - y_data[j]

) pd_b +=

(h - y_data[j]

)* x_data[i]

k += lr *(1

/m)* pd_k

b += lr *(1

/m)* pd_b

return b k

我們也可以使用封裝好的模組實現梯度下降:

sklearn模組安裝:

from sklearn.linear_model import linearregression

import numpy as np

import matplotlib as plt

#匯入資料

data = np.genfromtxt(

'data.csv'

,delimiter=

',')

x_data = data[:,

0]y_data = data[:,

1]#x_data.shape = (100,)

#處理資料,增加乙個維度,適應sklearn

x_data = x_data[

:,np.newaxis]

y_data = y_data[

:,np.newaxis]

#x_data.shape = (100,1)

#建立並擬合模型

model = linearregression(

)#建立類

model.fit(x_data,y_data)

#模型做訓練,訓練好之後就可以用predict方法畫出訓出來模型做的**值

plt.plot(x_data,y_data,

'b')

plt.plot(x_data,model.predict(x_data)

,'r'

)#**的y_data

plt.show(

)

線性回歸的一些思考(SVM)

1 對於線性回歸模型的代價函式,為了能應用求導來求其最小值 代價函式可導 不能用錯誤的分類個數作為代價函式 不可導 又或者用s函式 非凸函式,不能應用梯度下降,轉化為log凸函式 簡單的做法就是轉化為距離 統計學習方法書中提到的 或者機器學習課堂上講到的幾種形式,這些形式都可導。2 線性模型中,對於...

線性回歸的一些思考(SVM)

線性回歸的一些思考 svm 1 對於線性回歸模型的代價函式,為了能應用求導來求其最小值 代價函式可導 不能用錯誤的分類個數作為代價函式 不可導 又或者用s函式 非凸函式,不能應用梯度下降,轉化為log凸函式 簡單的做法就是轉化為距離 統計學習方法書中提到的 或者機器學習課堂上講到的幾種形式,這些形式...

一些基礎概念的總結。。。。

寫程式如寫作文?先學語法,學三種流程結構。就相當於寫作文之前學字,句子。但是只會字和句子寫不了作文。想寫東西,有想法。寫程式也是要先要有想法,有了想法才能寫下去。分析為王 物件導向問題分析 分析步驟 找物件 找物件的變數和方法 狀態和行為 通過分析物件中相同的變數和方法,抽象出類 找類和類之間的關係...