在本教程中,我們將使用 Python 程式設計實作迴歸分析和最佳擬合線
迴歸分析是預測分析最基本的形式。
在統計學中,線性迴歸是一種對標量值與一個或多個解釋變數之間的關係進行建模的方法。
在機器學習中,線性迴歸是一種監督演算法。這種演算法根據自變數預測目標值。
在線性迴歸/分析中,目標是真實的或連續的值,例如薪資、BMI等。它通常用於預測因變數和一堆自變數之間的關係。這些模型通常擬合線性方程,但是,還有其他類型的迴歸,包括高階多項式。
在對資料進行線性模型擬合之前,有必要檢查資料點之間是否存在線性關係。這從他們的散佈圖中可以明顯看出。演算法/模型的目標是找到最佳擬合線。
在本文中,我們將探討線性迴歸分析及其使用 C 的實作。
線性迴歸方程式的形式為 Y = c mx ,其中 Y 是目標變量,X 是自變數或解釋參數/變數。 m 是迴歸線的斜率,c 是截距。由於這是一個二維迴歸任務,因此模型會在訓練期間嘗試找到最佳擬合線。不必所有點都精確地排在同一條線上。有些數據點可能位於線上,有些則分散在線上。直線和資料點之間的垂直距離是殘差。根據該點是位於該線的下方或上方,該值可以是負值,也可以是正值。殘差是直線與資料擬合程度的量測。該演算法是連續的,以最小化總殘差。
每個觀測值的殘差是 y(因變數)的預測值與 y 的觀測值之間的差
$$\mathrm{殘差\: =\: 實際\: y\: 值\:−\:預測\: y\: 值}$$
$$\mathrm{ri\:=\:yi\:−\:y'i}$$
評估線性迴歸模型表現的最常見指標稱為均方根誤差或 RMSE。基本想法是衡量模型的預測與實際觀測值相比有多糟糕/錯誤。
因此,高 RMSE 是“壞”,低 RMSE 是“好”
RMSE 誤差為
$$\mathrm{RMSE\:=\:\sqrt{\frac{\sum_i^n=1\:(這個\:-\:這個')^2}{n}}}$$ p>
##RMSE 是所有殘差平方平均值的根。
# Import the libraries import numpy as np import math import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # Generate random data with numpy, and plot it with matplotlib: ranstate = np.random.RandomState(1) x = 10 * ranstate.rand(100) y = 2 * x - 5 + ranstate.randn(100) plt.scatter(x, y); plt.show() # Creating a linear regression model based on the positioning of the data and Intercepting, and predicting a Best Fit: lr_model = LinearRegression(fit_intercept=True) lr_model.fit(x[:70, np.newaxis], y[:70]) y_fit = lr_model.predict(x[70:, np.newaxis]) mse = mean_squared_error(y[70:], y_fit) rmse = math.sqrt(mse) print("Mean Square Error : ",mse) print("Root Mean Square Error : ",rmse) # Plot the estimated linear regression line using matplotlib: plt.scatter(x, y) plt.plot(x[70:], y_fit); plt.show()
Mean Square Error : 1.0859922470998231 Root Mean Square Error : 1.0421095178050257
迴歸分析是一種非常簡單但功能強大的技術,用於機器學習和統計中的預測分析。這個想法在於其簡單性以及獨立變數和目標變數之間的潛在線性關係。
以上是使用Python進行迴歸分析和最佳擬合直線的詳細內容。更多資訊請關注PHP中文網其他相關文章!