Menu
×
   ❮     
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
     ❯   

数据科学 - 线性回归案例


案例:使用时长 + 平均心率预测卡路里消耗

创建一个以平均心率和时长为解释变量的线性回归表

示例

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 库作为 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 中定义线性回归函数以进行预测。

如果

  • 平均心率为 110,训练时长为 60 分钟,卡路里消耗是多少?
  • 平均心率为 140,训练时长为 45 分钟,卡路里消耗是多少?
  • 平均心率为 175,训练时长为 20 分钟,卡路里消耗是多少?

示例

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))
自己试试 »

答案

  • 平均心率为 110,训练时长为 60 分钟 = 消耗 365 卡路里
  • 平均心率为 140,训练时长为 45 分钟 = 消耗 372 卡路里
  • 平均心率为 175,训练时长为 20 分钟 = 消耗 337 卡路里

访问系数

查看系数

  • 如果平均心率增加 1,卡路里消耗增加 3.17。
  • 如果时长增加 1,卡路里消耗增加 5.84。

访问 P 值

查看每个系数的 P 值。

  • 平均心率、时长和截距的 P 值均为 0.00。
  • 所有变量的 P 值都具有统计学意义,因为它们小于 0.05。

因此,我们可以得出结论,平均心率和时长与卡路里消耗之间存在关系。


调整后的 R 平方

如果我们有多个解释变量,R 平方就会出现问题。

如果我们添加更多变量,R 平方几乎总是会增加,而永远不会减少。

这是因为我们正在添加更多围绕线性回归函数的数据点。

如果我们添加不影响卡路里消耗的随机变量,我们就有可能错误地得出线性回归函数是良好拟合的结论。调整后的 R 平方可以解决这个问题。

因此,如果我们有多个解释变量,最好查看调整后的 R 平方值。

调整后的 R 平方为 0.814。

R 平方的值始终介于 0 到 1 之间(0% 到 100%)。

  • R 平方值高表示许多数据点靠近线性回归函数线。
  • R 平方值低表示线性回归函数线不适合数据。

结论:该模型很好地拟合了数据点!

恭喜!您现在已经完成了数据科学库的最后一个模块。


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.