摘要:線性回歸是數學與統計學領域中的經典算法,文章通過一個具體的引例,闡述了線性回歸的基本原理、核心概念及其在實際問題中的應用場景。并結合Python語言實現了線性回歸算法,在此基礎上,文章詳細介紹了如何利用Python編程語言及其相關庫(如Scikit-learn) 來實現線性回歸算法。研究表明,該方法不僅能有效激發學生的學習興趣,提升教學互動性,還能顯著提高教學效果與質量,并增強學生運用所學知識分析和解決實際問題的能力,文章的研究為線性回歸算法的教學實踐提供了新的思路和方法。
關鍵詞:數據分析;統計學;線性回歸;Python;教學效果
中圖分類號:G642" " " 文獻標識碼:A
文章編號:1009-3044(2025)23-0126-03
開放科學(資源服務) 標識碼(OSID)
0 引言
Python是由Guido van Rossum于1991年推出的高級解釋型編程語言,憑借其強大的功能,成為當前最受歡迎的通用編程語言之一。該語言具有以下顯著優勢:語法簡潔易讀降低了學習門檻,跨平臺特性確保代碼可移植性,豐富的標準庫覆蓋各類開發需求,動態類型系統提升編碼效率,加之其開源免費的屬性,使其成為從初學者到專業開發者的首選工具。Python的應用領域極為廣泛,主要涵蓋數據科學與機器學習、Web開發、自動化腳本、科學計算與工程應用、游戲開發以及教育等多個方面[1]。
回歸分析(Regression Analysis) 是一種旨在探討自變量與因變量之間相互關系的統計方法。其核心在于通過構建數學模型來描述這種關系,進而實現對因變量未來趨勢的預測,或深入理解自變量對因變量的影響程度及具體關系形式。目前,學術界和業界已發展出多種回歸分析技術,常見的回歸分析方法包括線性回歸(Linear Regression) 、多項式回歸(Polynomial Regression) 、邏輯回歸(Logistic Regression) 、嶺回歸(Ridge Regression) 以及逐步回歸(Stepwise Regression) 等[2]。本文將聚焦于線性回歸分析,并采用Python語言作為實現工具。
多元線性回歸(Multiple Linear Regression, MLR) 作為一種經典的監督學習算法,專注于建模多個自變量(亦稱特征) 與單一因變量(亦稱目標變量) 之間的線性關系。在人工智能(AI) 領域,MLR憑借其計算高效、模型可解釋性強等顯著優勢,在數據分析、經濟預測、醫學研究等多個場景中得到了廣泛應用。盡管大數據和深度學習技術發展迅速,MLR在眾多AI任務中,特別是在對模型構建速度和可解釋性有較高要求的場景下,依然扮演著不可或缺的角色。
鑒于此,本文旨在通過一個具體的案例,詳細闡述線性回歸的基本原理,并演示如何運用Python實現線性回歸模型的構建、評估與應用,以期為相關領域的教學和研究提供參考。
1 線性回歸引例
為了探究居民月收入與月消費支出之間的潛在關系,某研究機構進行了一項抽樣調查。該機構隨機抽取了10個家庭作為樣本,并收集了這些家庭的月收入(x,單位:千元) 和月消費支出(y,單位:千元) 數據,具體數據如表1所示。
1.1 分析步驟
1) 分析月收入和支出之間的關系:通過對表1數據的初步觀察,可以直觀地發現月收入x與月消費支出y之間存在一種大致的趨勢性關系,具體而言,隨著月收入x的增加,月消費支出y也相應呈現出上升趨勢。數據點(x, y)在二維坐標系中的分布大致呈現出沿某一支線聚集的形態,這初步表明兩者之間可能存在線性相關關系。
2) 計算回歸方程
設線性回歸方程為:[y^=b^x+a^]
式中[b^]是回歸直線的斜率,[a^]是截距。
首先計算[x-]與[y-]的均值(收入x的平均值和支出y的平均值) :
[x-=1ni=1nxi=5+7+...+2010=12]
[y-=1ni=1nyi=3.5+4.5+...+1010=6.5]
然后計算[b^]和[a^]的值:
[b^=i=1n(xi-x-)(yi-y-)i=1n(xi-x-)2=112286≈0.392]
[a^=y--b^x-=6.5-0.392×12=1.8]
所以回歸方程為[y^=0.392x+1.8]
1.2 模型檢驗與評估
1) 皮爾遜相關系數
在統計學中,皮爾遜相關系數(Pearson Correlation Coefficient) ,在統計學中常以小寫字母r表示,是衡量兩個連續變量x和y之間線性相關程度和方向的指標。其取值范圍為[-1, 1]。 系數的值為1意味著x和y可以很好地由直線方程來描述,所有的數據點都很好地落在一條直線上,且y隨著x的增加而增加;系數的值為?1意味著所有的數據點都落在直線上,且y隨著x的增加而減少;系數的值為0意味著兩個變量之間沒有線性關系[3]。
計算皮爾遜相關系數:
[r=1n(xi-x)-(yi-y)-i=1n(xi-x)-2i=1n(yi-y)-2=112286×45.5≈0.98]
ρ的值接近1,說明收入與消費支出之間存在很強的線性正相關關系。
2) 均方誤差(ΜSΕ) 評估模型
均方是表示離差平方和與自由度之比。由于各誤差平方和的大小與觀測值的多少有關,為了消除觀測值多少對誤差平方和大小的影響,需要將其平均,也就是用各平方和除以它們所對應的自由度,這一結果稱為均方,也稱為方差[4]。
[MSE=1ni=1n(yi-yi-)2≈0.19],說明模型的擬合效果較好。
1.3 引例結論
通過上述線性回歸分析,我們成功構建了描述居民月收入與月消費支出關系的回歸方程 [y^=0.392x+1.8]。同時,皮爾遜相關系數和均方誤差等評估指標也驗證了該模型的統計顯著性和擬合優度。該模型的建立,使得我們可以基于家庭的月收入對其月消費支出進行合理預測,這為深入研究居民消費行為模式以及制定相關的經濟調控政策提供了有價值的量化依據。例如,若某家庭月收入為16千元,根據已建立的回歸方程[y^=0.392x+1.8] ,可預測其月消費支出約為[y^=0.392×16+1.8≈8.07千元]。但需要注意的是,該模型是基于樣本數據建立的,存在一定的誤差和局限性[5]。
2 使用PyCharm搭建Python開發環境
2.1 環境準備
2.1.1 安裝Python
以下Python安裝步驟以Windows操作系統為例進行說明:
1) 確定 Windows 版本。
2) 訪問Python官方網站(python.org) ,在“Downloads”區域選擇適用于Windows系統的最新穩定版安裝程序(區分32位/64位) 并下載。
3) 安裝 Python,建議勾選 “Add Python X.X to PATH”添加到環境變量。
4) 驗證安裝:安裝完成后,可在命令提示符(CMD) 中輸入 'python --version' 或 'python -V'命令驗證Python是否成功安裝及查看版本號。
2.1.2 安裝PyCharm
1) 下載PyCharm Community版或Professional版。
2) 按照向導完成安裝(建議選擇“Add launchers dir to the PATH”) 。
2.2 配置PyCharm
1) 進入設置頁面:打開項目后,通過 “File”→“Settings”(Windows) 進入設置窗口。
2) 選擇解釋器設置:在設置窗口左側找到 “Project: [項目名稱]”→“Python Interpreter”。
3) 修改解釋器:在右側的 Python 解釋器下拉列表中選擇已有的解釋器,若要添加新的解釋器,點擊右側的齒輪圖標,選擇“Add”。
4) 應用設置:選擇好解釋器后,點擊 “OK” 保存設置,PyCharm 會使用新配置的解釋器。
3 使用Python構建線性回歸模型與實現
3.1 安裝基礎核心庫
3.2 代碼實現
import numpy as np # 數值計算基礎庫,提供數組和矩陣運算
import matplotlib.pyplot as plt # 數據可視化庫
from sklearn.linear_model import LinearRegression # 線性回歸模型
from sklearn.metrics import mean_squared_error, r2_score # 評估指標
from sklearn.model_selection import train_test_split # 數據集分割
np.random.seed(42)" # 固定隨機數生成器的種子,保證結果可復現
X = 2 * np.random.rand(100, 1)
# 生成100x1的特征矩陣,值在[0,2)區間均勻分布
y = 3 * X + 1 + 0.2 * np.random.randn(100, 1)
# 生成標簽數據:y = 3X + 1 + 高斯噪聲(μ=0, σ=0.2)
# 按8:2比例分割數據集,random_state保證每次分割一致
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 訓練模型
model = LinearRegression()" # 創建最小二乘線性回歸對象
model.fit(X_train, y_train)" # 擬合訓練數據,求解最優參數
# 輸出模型參數
print(\"截距 (b0):\", model.intercept_[0])" # 截距項(偏置)
print(\"斜率 (b1):\", model.coef_[0][0])" # 特征系數
# 預測與評估
y_pred = model.predict(X_test) # 對測試集進行預測
# 評估指標
print(\"MSE:\", mean_squared_error(y_test, y_pred))# 均方誤差
print(\"RMSE:\", np.sqrt(mean_squared_error(y_test, y_pred)))
# 均方根誤差
print(\"R2:\", r2_score(y_test, y_pred))" # 決定系數
# 可視化
plt.scatter(X_train, y_train, color='blue', label='Training Data')
# 訓練集散點
plt.scatter(X_test, y_test, color='green', label='Test Data')
# 測試集散點
plt.plot(X_test, y_pred, color='red', linewidth=2, label='Regression Line')" # 回歸線
plt.xlabel('Advertising Investment (X)')" # 業務語義:廣告投入
plt.ylabel('Sales (Y)')" # 業務語義:銷售額
plt.title('Linear Regression Model')" #標題
plt.legend()" # 顯示圖例
plt.grid(True)" # 顯示網格
plt.show()" # 渲染圖像
3.3 輸出結果
截距 (b0): 1.0285826638917128
斜率 (b1): 2.9598647314960562
MSE: 0.02614798054868004
RMSE: 0.16170337210052252
R2: 0.9923512729021062
4 總結
本文采用2個案例的數據,系統地介紹了線性回歸模型的構建過程。首先,通過一個基礎引例詳細推導了回歸方程的求解步驟及模型評估方法(如皮爾遜相關系數和均方誤差) 。隨后,利用Python語言及其Scikit-learn庫,在模擬數據集上演示了線性回歸模型的編程實現、參數估計、性能評估(MSE, RMSE, R2) 及結果可視化,驗證了模型的良好擬合效果和預測能力。研究結果表明,在統計學教學實踐中,結合Python編程和可視化手段(如圖形化展示數據分布、回歸直線等) ,能夠將抽象復雜的數學模型以直觀易懂的方式呈現給學生。這種教學方法有助于學生建立對線性回歸等統計概念的直觀認識,有效克服了傳統教學中因概念抽象而導致的理解困難問題,從而深化學生對知識的掌握,實現“復雜問題簡單化”的教學目標。這對于激發學生的學習主動性和探究興趣,進而全面提升教學效果和人才培養質量,具有顯著的實踐意義和推廣價值。
未來可以進一步探索將此類案例分析方法應用于更復雜的回歸模型或機器學習算法的教學中,并評估其在不同學科背景學生中的適用性和效果。
參考文獻:
[1] 嵩天,黃天羽,楊雅婷.Python語言程序設計基礎[M].3版.北京:高等教育出版社,2024:12-13.
[2] 袁衛,龐皓,賈俊平,等.統計學[M].5版.北京:高等教育出版社,2019.
[3] TREVOR H,ROBERT T,JEROME F.The Elements of Statistical Learning.Berlin,Germany:Springer,2017(2nd ed.).
[4] 賈俊平.統計學[M].7版.北京:中國人民大學出版社,2018:274.
[5] 何小年,段鳳華.基于Python的線性回歸案例分析[J].微型電腦應用,2022,38(11):35-37.
【通聯編輯:王 力】