菜单
×
   ❮     
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
     ❯   

数据科学 - 斜率和截距


斜率和截距

现在我们将解释我们如何找到函数的斜率和截距。

f(x) = 2x + 80

下图指向斜率 — 表示线的陡峭程度,以及截距 — 当 x = 0 时 y 的值(对角线与垂直轴相交的点)。红线是上一页蓝色线的延续。

Linear function

求斜率

斜率定义为平均脉搏增加一时,卡路里消耗量增加多少。它告诉我们对角线有多“陡峭”。

我们可以通过使用图上两点的比例差来求斜率。

  • 如果平均脉搏为 80,则卡路里消耗量为 240
  • 如果平均脉搏为 90,则卡路里消耗量为 260

我们看到,如果平均脉搏增加 10,卡路里消耗量增加 20。

斜率 = 20/10 = 2

斜率是 2。

从数学上讲,斜率定义为

斜率 = f(x2) - f(x1) / x2-x1

f(x2) = 卡路里消耗量的第二次观测值 = 260
f(x1) = 卡路里消耗量第一次观测值 = 240
x2 = 平均脉搏的第二次观测值 = 90
x1 = 平均脉搏第一次观测值 = 80

斜率 = (260-240) / (90 - 80) = 2

请务必按照正确的顺序定义观测值!否则,预测将不准确!

使用 Python 求斜率

使用以下代码计算斜率

示例

def slope(x1, y1, x2, y2)
  s = (y2-y1)/(x2-x1)
  return s

print (slope(80,240,90,260))
自己动手试一试 »

求截距

截距用于微调函数预测卡路里消耗量的能力。

截距是对角线与 y 轴相交的位置,如果将其完全画出。

截距是当 x = 0 时 y 的值。

在这里,我们看到如果平均脉搏(x)为零,那么卡路里消耗量(y)为 80。

所以,截距是 80。

有时,截距具有实际意义。有时则没有。

平均脉搏为零有意义吗?

不,您已经死了,绝对不会燃烧任何卡路里。

但是,我们需要包含截距才能使数学函数准确预测卡路里消耗量。

数学函数截距具有实际意义的其他示例

  • 通过营销支出预测明年的收入(如果我们不花钱做营销,明年的收入是多少?)。很可能假设公司即使不花钱做营销,仍会产生一定的收入。
  • 按速度计算燃油消耗(如果速度为 0 英里/小时,我们消耗多少燃油?)。一辆使用汽油的汽车在怠速时仍会消耗燃油。


使用 Python 查找斜率和截距

np.polyfit() 函数返回斜率和截距。

如果我们使用以下代码,我们可以同时获得函数中的斜率和截距。

示例

import pandas as pd
import numpy as np

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

x = health_data["Average_Pulse"]
y = health_data["Calorie_Burnage"]
slope_intercept = np.polyfit(x,y,1)

print(slope_intercept)
自己动手试一试 »

示例解释

  • 从 health_data 中分离出 Average_Pulse(x)和 Calorie_Burnage(y)变量。
  • 调用 np.polyfit() 函数。
  • 函数中的最后一个参数指定函数的次数,在本例中为“1”。

提示: 线性函数 = 1 次函数。在我们的示例中,函数是线性的,它是一次函数。这意味着所有系数(数字)的幂都是一。

我们现在已经计算出了斜率(2)和截距(80)。我们可以将数学函数写成如下形式:

使用数学表达式预测卡路里消耗量

f(x) = 2x + 80

任务

现在,我们想预测平均脉搏为 135 时的卡路里消耗量。

请记住,截距是一个常数。常数是一个不变的数字。

我们现在可以替换输入 x 为 135

f(135) = 2 * 135 + 80 = 350

如果平均脉搏为 135,卡路里消耗量为 350。


在 Python 中定义数学函数

这是完全相同的数学函数,但用 Python 实现。该函数返回 2*x + 80,其中 x 是输入。

示例

def my_function(x)
  return 2*x + 80

print (my_function(135))
自己动手试一试 »

尝试将 x 替换为 140 和 150。


在 Python 中绘制新图

在这里,我们绘制与之前相同的图,但稍微格式化了轴。

y 轴的最大值现在是 400,x 轴的最大值是 150。

示例

import matplotlib.pyplot as plt

health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='line'),
plt.ylim(ymin=0, ymax=400)
plt.xlim(xmin=0, xmax=150)

plt.show()
自己动手试一试 »

示例解释

  • 导入 matplotlib 库的 pyplot 模块
  • 绘制 Average_Pulse 与 Calorie_Burnage 的数据
  • kind='line' 告诉我们想要哪种类型的图。这里,我们想要一条直线。
  • plt.ylim() 和 plt.xlim() 告诉我们轴希望从何值开始和停止。
  • plt.show() 显示输出。

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

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