菜单
×
   ❮     
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 提供支持