選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

資料科學 - 線性迴歸案例


案例:使用 Duration + Average_Pulse 預測 Calorie_Burnage

建立使用 Average_Pulse 和 Duration 作為解釋變數的線性迴歸表

示例

import pandas as pd
import statsmodels.formula.api as smf

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results = model.fit()
print(results.summary())
自己動手試一試 »

示例解釋

  • 匯入庫 statsmodels.formula.api as smf。Statsmodels 是 Python 中的一個統計庫。
  • 使用 full_health_data 資料集。
  • 使用 smf.ols() 基於普通最小二乘法建立模型。請注意,解釋變數必須寫在括號中的第一個位置。使用 full_health_data 資料集。
  • 透過呼叫 .fit(),您將獲得 results 變數。它包含有關回歸模型的許多資訊。
  • 呼叫 summary() 以獲取線性迴歸結果的表格。

輸出

Linear Regression Table Case

線性迴歸函式可以用數學方式重寫為:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

四捨五入到兩位小數

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


在 Python 中定義線性迴歸函式

在 Python 中定義線性迴歸函式以執行預測。

如果

  • Average pulse 為 110,訓練課程時長為 60 分鐘,Calorie_Burnage 是多少?
  • Average pulse 為 140,訓練課程時長為 45 分鐘,Calorie_Burnage 是多少?
  • Average pulse 為 175,訓練課程時長為 20 分鐘,Calorie_Burnage 是多少?

示例

def Predict_Calorie_Burnage(Average_Pulse, Duration)
 return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)

print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))
自己動手試一試 »

答案

  • Average pulse 為 110,訓練課程時長為 60 分鐘 = 365 卡路里
  • Average pulse 為 140,訓練課程時長為 45 分鐘 = 372 卡路里
  • Average pulse 為 175,訓練課程時長為 20 分鐘 = 337 卡路里

訪問係數

檢視係數

  • 如果 Average_Pulse 增加一,Calorie_Burnage 增加 3.17。
  • 如果 Duration 增加一,Calorie_Burnage 增加 5.84。

訪問 P 值

檢視每個係數的 P 值。

  • Average_Pulse、Duration 和 Intercept 的 P 值為 0.00。
  • 由於 P 值小於 0.05,因此所有變數的 P 值在統計上都顯著。

因此,我們可以得出結論,Average_Pulse 和 Duration 與 Calorie_Burnage 之間存在關係。


調整 R 平方

如果我們有多個解釋變數,R 平方會存在問題。

如果我們新增更多變數,R 平方几乎總會增加,並且永遠不會減少。

這是因為我們線上性迴歸函數週圍添加了更多資料點。

如果我們新增與 Calorie_Burnage 無關的隨機變數,我們就有可能錯誤地認為線性迴歸函式是一個好的擬合。調整 R 平方可以解決這個問題。

因此,如果我們有多個解釋變數,最好檢視調整後的 R 平方值。

調整後的 R 平方值為 0.814。

R 平方值始終在 0 到 1 之間(0% 到 100%)。

  • 較高的 R 平方值表示許多資料點接近線性迴歸函式線。
  • 較低的 R 平方值表示線性迴歸函式線與資料的擬合度不佳。

結論:模型很好地擬合了資料點!

恭喜!您已完成資料科學庫的最後一章。


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援