import numpy as np
deflinearregression
(data_x,data_y,learningrate,loopnum)
: w = np.zeros(shape=[1
, data_x.shape[1]
])# w的shape取決於特徵個數,而x的行是樣本個數,x的列是特徵值個數
# 所需要的w的形式為 行=特徵個數,列=1 這樣的矩陣。但也可以用1行,再進行轉置:w.t
# x.shape[0]取x的行數,x.shape[1]取x的列數
b =0#梯度下降
for i in
range
(loopnum)
: w_derivative = np.zeros(shape=[1
, data_x.shape[1]
])b_derivative, cost =0,
0 wxplusb = np.dot(data_x, w.t)
+ b # w.t:w的轉置
w_derivative += np.dot(
(wxplusb - data_y)
.t, data_x)
# np.dot:矩陣乘法
b_derivative += np.dot(np.ones(shape=[1
, data_x.shape[0]
]), wxplusb - data_y)
cost +=
(wxplusb - data_y)
*(wxplusb - data_y)
w_derivative = w_derivative / data_x.shape[0]
# data_x.shape[0]:data_x矩陣的行數,即樣本個數
b_derivative = b_derivative / data_x.shape[0]
w = w - learningrate*w_derivative
b = b - learningrate*b_derivative
cost = cost/(2
*data_x.shape[0]
)if i %
100==0:
print
(cost)
print
(w)print
(b)if __name__==
"__main__"
: x = np.random.normal(0,
10,100)
noise = np.random.normal(0,
0.05,20
) w = np.array([[
3,5,
8,2,
1]])
#設5個特徵值
x = x.reshape(20,
5)#reshape成20行5列
noise = noise.reshape(20,
1)y = np.dot(x, w.t)+6
+ noise
linearregression(x, y,
0.003
,5000
)
機器學習 線性回歸
可以說基本上是機器學習中最簡單的模型了,但是實際上其地位很重要 計算簡單 效果不錯,在很多其他演算法中也可以看到用lr作為一部分 先來看乙個小例子,給乙個 線性回歸是什麼 的概念。圖來自 2 假設有乙個房屋銷售的資料如下 面積 m 2 銷售價錢 萬元 123 250 150 320 87 160 1...
機器學習(線性回歸)
在機器學習中,回歸 分類和標註共同構成了監督學習技術。監督學習 supervised learning 是機器學習在工業界應用最廣的乙個領域分支。在學術界中也是研究最多的領域之一。大家都知道的資料探勘十大經典演算法中,監督學習技術佔據6席。方法 自變數 特徵 因變數 結果 關係 回歸演算法是試圖採用...
機器學習 線性回歸
line fitter linearregression 建立模型 line fitter.fit temperature,sales 傳入引數 sales predict line fitter.predict temperature 模型 直線 直線上會有loss 計算loss時 要使用平方距離...