日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

线性回归python代码实现

發布時間:2025/3/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性回归python代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import numpy as np import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #顯示中文標簽input_x = [0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,2.50,2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50] input_y = [10, 26, 23, 43, 20, 22, 43, 50, 62, 50, 55, 75, 62, 78, 87, 76, 64, 85, 90, 98] input_x = np.array(input_x, dtype=float) input_y = np.array(input_y, dtype=float)a = 0 b = 0class linear_regression:'''線性回歸類'''def __init__(self, a_init, b_init, x, y):self.a = a_init #初始化參數aself.b = b_init #初始化參數bself.x = x #數據xself.y = y #標簽y# self.epochs = int(epochs) #迭代的輪數self.shape = self.x.shape[0] #數據的個數def model(self):'''計算預測值'''return self.a*self.x + self.bdef cost_function(self):'''損失函數'''return 0.5/self.shape * (np.square(self.y-self.a*self.x-self.b)).sum()def optimize(self):'''梯度下降更新參數a和b'''alpha = 1e-1y_hat = self.model()da = (1.0/self.shape) * ((y_hat-self.y)*self.x).sum() #a的梯度db = (1.0/self.shape) * (y_hat-self.y).sum() #b的梯度self.a = self.a - alpha*da #梯度下降self.b = self.b - alpha*db #梯度下降return self.a, self.bdef iterate(self):'''迭代更新'''i = 0loss_list=[]while(True):self.a, self.b = self.optimize()print("a:",self.a, " b:",self.b)print("loss:",self.cost_function())loss_list.append(self.cost_function())if i>=1 and np.abs(loss_list[i]-loss_list[i-1]) < 1e-8:breaki = i+1y_hat = self.model()loss = self.cost_function()plt.scatter(self.x,self.y,color='red')plt.plot(self.x, y_hat,color="blue")plt.xlabel('x')plt.ylabel('y')plt.show()if __name__ == '__main__':# print("請輸入迭代輪數:")# epochs = input()result = linear_regression(a, b, input_x, input_y)result.iterate()

總結

以上是生活随笔為你收集整理的线性回归python代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。