使用 Python 進行迴歸分析和最佳擬合線
在本教程中,我們將使用 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\:(yi\:-\:yi')^2}{n}}}$$
RMSE 是所有平方殘差均值的平方根。
使用 Python 實現
示例
# 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

結論
迴歸分析是一種非常簡單但功能強大的預測分析技術,在機器學習和統計學中都適用。其思想在於其簡單性和自變數與目標變數之間潛在的線性關係。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP