tft每日頭條

 > 生活

 > 如何用一般軟件做多元非線性回歸

如何用一般軟件做多元非線性回歸

生活 更新时间:2024-09-09 17:23:15

如何用一般軟件做多元非線性回歸(九道門全面認識線性回歸)1

在這篇文章中,你将了解線性回歸算法、它的工作原理,以及如何在機器學習項目中更好地運用它。

什麼是線性回歸?

線性回歸是一種基于監督學習的機器學習算法,它執行回歸任務。回歸基于自變量對目标預測值進行建模,它主要用于找出和預測變量之間的關系。不同的回歸模型基于他們正在考慮的因變量和自變量之間的關系類型以及使用的自變量數量而異。

如何定義模型?

線性回歸的執行是基于給定的自變量 (x) 預測因變量值 (y) 的任務。

線性回歸方程公式如下:

Y = wX b

其中X是自變量,Y是因變量。w是系數,b是偏差。

計算損失函數

損失函數是均方誤差方程。對于監督學習,模型通過找到最小化成本函數的最優系數來優化。成本函數使用損失函數計算的每個數據點的損失總和。

線性回歸最常用的損失函數是最小平方誤差,它的成本函數也稱為均方誤差(MSE)。均方誤差的公式為:

如何用一般軟件做多元非線性回歸(九道門全面認識線性回歸)2

其中n是數據點的數量,y是模型返回的值,ŷ是數據點的實際值

如何優化回歸模型?

梯度下降是一種尋找損失函數的疊代優化算法。當函數達到全局最小值時,它将具有最佳的 w 和 b 值。

梯度下降是一種用于尋找可微函數的局部最小值的優化算法。梯度下降簡單地用于機器學習中,以找到盡可能使成本函數最小化的函數參數(系數)值。

如何用一般軟件做多元非線性回歸(九道門全面認識線性回歸)3

實施模型

現在将上面的所有内容都轉換為代碼,看看我們的模型是如何運行的。

# Making the imports import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = (12.0, 9.0) # Preprocessing Input data data = pd.read_csv('data.csv') X = data.iloc[:, 0] Y = data.iloc[:, 1] plt.scatter(X, Y) plt.show()

如何用一般軟件做多元非線性回歸(九道門全面認識線性回歸)4

# Building the model m = 0 c = 0 L = 0.0001 # The learning Rate epochs = 1000 # The number of iterations to perform gradient descent n = float(len(X)) # Number of elements in X # Performing Gradient Descent for i in range(epochs): Y_pred = m*X c # The current predicted value of Y D_m = (-2/n) * sum(X * (Y - Y_pred)) # Derivative wrt m D_c = (-2/n) * sum(Y - Y_pred) # Derivative wrt c m = m - L * D_m # Update m c = c - L * D_c # Update c print (m, c)

1.4796491688889395 0.10148121494753726 #(m = w et c = b)

# Making predictions Y_pred = m*X c plt.scatter(X, Y) plt.plot([min(X), max(X)], [min(Y_pred), max(Y_pred)], color='red') # regression line plt.show()

如何用一般軟件做多元非線性回歸(九道門全面認識線性回歸)5

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved