練習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...