吳恩達 多元線性回歸

2021-10-09 03:59:47 字數 2589 閱讀 6169

練習1還包括乙個房屋**資料集,其中有2個變數(房子的大小,臥室的數量)和目標(房子的**)。 我們使用我們已經應用的技術來分析資料集:

匯入資料集並檢視:

把資料進行歸一化:

處理資料得到x,y與theta:

data2.insert(0,

'one',1

)cols = data2.shape[1]

x2 = data2.iloc[:,

0:cols-1]

.values

y2 = data2.iloc[

:,cols-

1:cols]

.values

theta = np.zeros(

(cols-1,

1))theta

損失函式的計算:

def

computecost

(x2, y2, theta)

: temp = np.dot(x2, theta)

- y2

cost = np.

sum(np.power(temp,2)

)/(2

*len

(x2)

)return cost

梯度下降法:

def

gradientdescent

(x2, y2, theta, alpha, iters, m=

len(x2)):

j =for i in

range

(iters)

: temp = theta -

(alpha/m)

* np.dot(

(np.dot(x2, theta)

-y2)

.t, x2[:]

).ttheta = temp

)return theta, j

迭代1000次所得的theta:

alpha =

0.01

iters =

1000

final_theta ,cost2 = gradientdescent(x2, y2, theta, alpha, iters,m =

len(x2)

)final_theta

array([[

-9.77586806e-17],

[8.78503652e-01],

[-4.69166570e-02]]

)

計算最終損失值:

computecost(x2,y2,final_theta)

0.1307033696077189

cost的視覺化:

通過正規方程來解:

# 正規方程

defnormaleqn

(x, y)

: theta = np.linalg.inv(x.t@x)@x.t@y#x.t@x等價於x.t.dot(x)

return theta

t2 = normaleqn(x2,y2)

t2array([[

-8.67361738e-17],

[8.84765988e-01],

[-5.31788197e-02]]

)

可以看的這兩種方法所得的theta還是有所不同。

正規方程推導:

吳恩達機器學習筆記 多元線性回歸

之前的文章中已經講述了簡單的一元線性回歸的基礎知識,現在我們來繼續討論多元線性回歸。本文針對吳恩達機器學習第二週課程多元線性回歸部分。所謂多元線性回歸正如其名字一樣,就是說這裡的變數是多個的,下面介紹一下如何表示含有多個變數情況下的假設函式 h theta x theta 0 theta 1x 1 ...

吳恩達機器學習作業(2) 多元線性回歸

目錄 1 資料處理 2 代價函式 3 scikit learn訓練資料集 4 正規方程 練習1還包括乙個房屋 資料集,其中有2個變數 房子的大小,臥室的數量 和目標 房子的 我們使用我們已經應用的技術來分析資料集。還是那個建議,大家拿到資料先看看資料長什麼樣子。path ex1data2.txt d...

吳恩達機器學習之線性回歸

x代表屬性的矩陣,x i x x i 代表x的第i行,xj i x j xj i 代表x第i行第j列,theta 是引數向量。估計函式h x i 0mx i x h x sum mx theta x theta h x i 0 m x i x 代價函式j 12 m i 0m x i y i 2 12...