這次主要是初步用窮舉法實現深度學習的線性回歸。
假設給出一組資料符合y=2x,(這裡的2我們並不知道,是要求的未知量。)
如何求呢?用窮舉法。
我們知道線性函式是y=w*x(假設b=0)
設w=1;把x帶入,得到y_pre(y的**值)
而損失函式就是loss=∑(y-y_pre)^2
當loss最小時,也就是得到了最符合的w,很明顯,loss是乙個二次函式
**實現:
import numpy as np
import matplotlib.pyplot as plt
# 資料集
x_data =
[1.0
,2.0
,3.0
]y_data =
[2.0
,4.0
,6.0]n=
3# 因為只有三組資料
# 模型 y=w*x
defforward
(x):
return x * w
# 損失函式loss
defloss
(x, y)
: y_pred = forward(x)
return
(y_pred - y)**2
# 用於畫圖
w_list =
mse_list =
# 窮舉法,最後發現當w=2.0時,loss=0,所以w=2時最好
for w in np.arange(
0.0,
4.1,
0.1)
:print
("當w="
, w,
"時")
l_sum =
0for x_val, y_val in
zip(x_data, y_data)
:# zip把兩個打包成元組列表
y_pred_val = forward(x_val)
loss_val = loss(x_val, y_val)
l_sum += loss_val
print
("\t"
, x_val, y_val, y_pred_val, loss_val)
print
("均方誤差mse="
, l_sum /3)
# 最終的影象為二次函式影象
# w為x軸
# 均方誤差為y軸
# loss=1/n( ∑(y`-y)^2 )
plt.plot(w_list,mse_list)
plt.ylabel(
'loss'
)plt.xlabel(
'w')
plt.show(
)
深度學習實戰之線性回歸1
我理解的線性回歸就是,比較簡單的一維的線性回歸,所要求解的方程就是 你要做的就是不斷的學習資料集,不斷的更新w和b,讓損失函式越小越好。損失函式便是你程式求得的結果和標準結果之間的誤差,損失函式具體公式如下 w值梯度下降公式 w w 學習速率 斜率 b值梯度下降公式 b b 學習速率 斜率 繪製的資...
機器學習 線性回歸python實踐 1
寫在最前面 線性回歸是機器學習最簡單的模型,用來尋找最佳擬合曲線。我曾經在數模比賽時用過,雖然只拿了省二。優點是 易於理解,計算簡單 缺點是 對於非線性的資料擬合效果不好 適用資料型別 數值型和標稱型資料 今天簡單介紹下最小二乘法 ordinary least squares 這是一組樣例資料的的散...
演算法實踐1 線性回歸
sklearn.linear model.linearregression fit intercept true,normalize false,copy x true,n jobs none 超參 解釋型別 預設值 fit intercept 是否計算模型的截距 如果設定為 false,計算將不使...