国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現機器學習之元線性回歸

2020-01-04 14:34:41
字體:
來源:轉載
供稿:網友

一、理論知識準備

1.確定假設函數 

如:y=2x+7 
其中,(x,y)是一組數據,設共有m個

2.誤差cost 

用平方誤差代價函數 

python,機器學習,元線性回歸

3.減小誤差(用梯度下降) 

python,機器學習,元線性回歸 
python,機器學習,元線性回歸

二、程序實現步驟

1.初始化數據 

x、y:樣本 
learning rate:學習率 
循環次數loopNum:梯度下降次數

2.梯度下降 

循環(循環loopNum次): 
(1)算偏導(需要一個for循環遍歷所有數據) 
(2)利用梯度下降數學式子

三、程序代碼

import numpy as npdef linearRegression(data_x,data_y,learningRate,loopNum):  w,b=0,0  #梯度下降  for i in range(loopNum):    w_derivative, b_derivative, cost = 0, 0, 0    for j in range(len(data_x)):      wxPlusb=w*data_x[j]+b      w_derivative+=(wxPlusb-data_y[j])*data_x[j]      b_derivative+=wxPlusb-data_y[j]      cost+=(wxPlusb-data_y[j])*(wxPlusb-data_y[j])    w_derivative=w_derivative/len(data_x)    b_derivative=b_derivative/len(data_x)    w = w - learningRate*w_derivative    b = b - learningRate*b_derivative    cost = cost/(2*len(data_x))    if i%100==0:      print(cost)  print(w)  print(b)if __name__== "__main__": #_x:protected __x:private  x=np.random.normal(0,10,100)  noise=np.random.normal(0,0.05,100)  y=2*x+7+noise  linearRegression(x,y,0.01,5000)

四、輸出

1.輸出cost 

python,機器學習,元線性回歸

可以看到,一開始的誤差是很大的,然后減小了 

python,機器學習,元線性回歸

最后幾次輸出的cost沒有變化,可以將訓練的次數減小一點

2.訓練完的w和b 

python,機器學習,元線性回歸

和目標w=2,b=7很接近

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和田市| 勐海县| 上饶市| 卓尼县| 江阴市| 元氏县| 神木县| 瑞丽市| 瑞昌市| 青阳县| 镇原县| 禹城市| 堆龙德庆县| 江都市| 翁牛特旗| 柳林县| 兖州市| 柳林县| 双城市| 扎鲁特旗| 安庆市| 徐汇区| 连城县| 建瓯市| 阿尔山市| 莲花县| 中超| 诸城市| 独山县| 安远县| 宕昌县| 临武县| 静宁县| 临安市| 嘉荫县| 长治市| 阿尔山市| 平塘县| 同江市| 洪雅县| 云霄县|