線性回歸 梯度下降筆記

2021-09-23 08:17:22 字數 3117 閱讀 9656

含乙個

θ時​h

θ=θx

含乙個\theta 時​ h\theta=\theta x

含乙個θ時​

hθ=θxc=

f(θ)

=(hθ

(x)−

y)

2c=f(\theta)=(h\theta(x)-y)^2

c=f(θ)

=(hθ

(x)−

y)2

令 mi

nc約等

於0

令minc約等於0

令minc約

等於0則gr

ad=−

∂c/∂

θ則grad=-∂c/∂\theta

則grad=

−∂c/

∂θθ =θ

−gra

d∗

0.1(

0.1代表學

習率

)\theta=\theta-grad*0.1 (0.1代表學習率)

θ=θ−gr

ad∗0

.1(0

.1代表

學習率)

x1x2

y1.1620

1.27

251.288?

含 多個

θ時

含多個\theta時

含多個θ時f(θ

1,θ2

,θ3.

...,

θn)=

θ1x1

+θ1x

2+..

..+θ

nxn=

hf(\theta_1,\theta_2,\theta_3....,\theta _n)=\theta_1x_1+\theta_1x_2+....+\theta _nx_n=h

f(θ1​,

θ2​,

θ3​.

...,

θn​)

=θ1​

x1​+

θ1​x

2​+.

...+

θn​x

n​=h

l (θ

1,θ2

....

,θn)

=(h1

−y1)

2+(h

2−y2

)2+.

....

+(hn

−yn)

2l(\theta_1,\theta_2....,\theta _n)=(h_1-y_1)^2+(h_2-y_2)^2+.....+(h_n-y_n)^2

l(θ1​,

θ2​.

...,

θn​)

=(h1

​−y1

​)2+

(h2​

−y2​

)2+.

....

+(hn

​−yn

​)2

= ∑i

=1n(

h−y)

2=\sum_^

=i=1∑n

​(h−

y)2這時就可以使用矩陣的方法處理問題

使用python來實現

新增矩陣相關的numpy庫

def gradient_dexcending(thate,x,y,learning_rate):

return thate+get_grad(thate,x,y)*learning_rate

#偏離值

def get_cost(thate,x,y):

return np.sum((np.dot(x,thate)-y)**2)

thate=np.array([1,1])

x=np.array([[1,2],[1,2]])

y=np.array([0,0])

buchang=0.1

**名詞理解 **

梯度:函式下降最快的方向

學習率:步長

損失函式:選取最優的θ,在我們的訓練集中讓h(x)盡可能接近真實的值。h(x)和真實的值之間的差距,我們定義 了乙個函式來描述這個差距,這個函式稱為損失函式

df_movies=pd.read_csv("douban4.csv",encoding="utf-8")

print(df_movies)

#丟棄全部為缺失值的行

df_movies1=df_movies.dropna(how='all')

print("丟棄全部為缺失值的行")

print(df_movies1)

#dropna()方法如果不設定任何引數 預設丟棄任何含有預設值的行

df_movies2=df_movies.dropna()

print("dropna()方法如果不設定任何引數 預設丟棄任何含有預設值的行")

print(df_movies2)

#axis=1意味著按列執行

df_movies3= df_movies.dropna(how='all',axis=1)

print("axis=1意味著按列執行")

print(df_movies3)

df_movies4=df_movies.dropna(axis=1)

print("dropna預設就是丟棄任何行或列的缺失值,axis=1設定對列check。")

print(df_movies4)

df_movies5=df_movies.fillna(0)

print("使用dataframe物件的fillna()可以實現資料的填充。它預設返回乙個新物件,原物件中的值不變。fillna()中的引數如設定為常數值,則會將缺失值替換為設定的常數值。")

print(df_movies5)

df_movies6=df_movies.fillna()

print("通過乙個字典呼叫fillna()就可以實現不同列填充不同值。字典的key為列名,value為填充的值")

print(df_movies6)

df_movies.fillna(,inplace=true)

print(df_movies)

線性回歸 梯度下降

線性回歸演算法屬於監督學習的一種,主要用於模型為連續函式的數值 過程總得來說就是初步建模後,通過訓練集合確定模型引數,得到最終 函式,此時輸入自變數即可得到 值。1 初步建模。確定假設函式 h x 最終 用 2 建立價值函式 j 也叫目標函式 損失函式等,求引數 用 3 求引數 對價值函式求偏導 即...

線性回歸梯度下降

梯度下降 一種最優化演算法,就是沿著函式的梯度方向尋找函式的最小值 線性回歸模型 最終的目標就是利用 梯度下降法 求出使 誤差函式 最小的線性函式的系數值 梯度下降演算法有兩種 1.批量梯度下降 batch gradient descent 2.隨機梯度下降 stochastic gradient ...

線性回歸 梯度下降

利用回歸方程對乙個或多個自變數和因變數之間進行建模的分析方式損失 計算損失用最小二乘法。優化。優化有兩種方式。一種是正規方程解法通常只適用於極少量資料,一般不會用 二是梯度下降的方式通常使用梯度下降 梯度下降的簡介。梯度就是倒導數 切線。沿著切線的方向下降的最快。梯度下降有兩個引數,起始點和學習率 ...