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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习基础-一元线性回归-01

發布時間:2024/9/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习基础-一元线性回归-01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

回歸分析 Regression



一元線性回歸

? 回歸分析(regression analysis)用來建立方程模擬兩
個或者多個變量之間如何關聯
? 被預測的變量叫做:因變量(dependent variable),
輸出(output)
? 被用來進行預測的變量叫做: 自變量(independent
variable), 輸入(input)
? 一元線性回歸包含一個自變量和一個因變量
? 以上兩個變量的關系用一條直線來模擬
? 如果包含兩個以上的自變量,則稱作多元回歸分析
(multiple regression)




代價函數Cost Function









梯度下降法Gradient Descent
















梯度下降法-一元線性回歸代碼

import numpy as np import matplotlib.pyplot as plt # 載入數據 data = np.genfromtxt("data.csv", delimiter=",") x_data = data[:,0] y_data = data[:,1] plt.scatter(x_data,y_data) plt.show()

# 學習率learning rate lr = 0.0001 # 截距 b = 0 # 斜率 k = 0 # 最大迭代次數 epochs = 50# 最小二乘法 def compute_error(b, k, x_data, y_data):totalError = 0for i in range(0, len(x_data)):totalError += (y_data[i] - (k * x_data[i] + b)) ** 2return totalError / float(len(x_data)) / 2.0def gradient_descent_runner(x_data, y_data, b, k, lr, epochs):# 計算總數據量m = float(len(x_data))# 循環epochs次for i in range(epochs):b_grad = 0k_grad = 0# 計算梯度的總和再求平均for j in range(0, len(x_data)):b_grad += (1/m) * (((k * x_data[j]) + b) - y_data[j])k_grad += (1/m) * x_data[j] * (((k * x_data[j]) + b) - y_data[j])# 更新b和kb = b - (lr * b_grad)k = k - (lr * k_grad)# 每迭代5次,輸出一次圖像if i % 5==0:print("epochs:",i)plt.plot(x_data, y_data, 'b.')plt.plot(x_data, k*x_data + b, 'r')plt.show()return b, k print("Starting b = {0}, k = {1}, error = {2}".format(b, k, compute_error(b, k, x_data, y_data))) print("Running...") b, k = gradient_descent_runner(x_data, y_data, b, k, lr, epochs) print("After {0} iterations b = {1}, k = {2}, error = {3}".format(epochs, b, k, compute_error(b, k, x_data, y_data)))# 畫圖 # plt.plot(x_data, y_data, 'b.') # plt.plot(x_data, k*x_data + b, 'r') # plt.show()




sklearn-一元線性回歸代碼

from sklearn.linear_model import LinearRegression import numpy as np import matplotlib.pyplot as plt # 載入數據 data = np.genfromtxt("data.csv", delimiter=",") x_data = data[:,0] y_data = data[:,1] plt.scatter(x_data,y_data) plt.show() print(x_data.shape)

x_data = data[:,0,np.newaxis] y_data = data[:,1,np.newaxis] # 創建并擬合模型 model = LinearRegression() model.fit(x_data, y_data) # 畫圖 plt.plot(x_data, y_data, 'b.') plt.plot(x_data, model.predict(x_data), 'r') plt.show()

總結

以上是生活随笔為你收集整理的机器学习基础-一元线性回归-01的全部內容,希望文章能夠幫你解決所遇到的問題。

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