数据科学- 斜率和截距

斜率和截距

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

f(x) = 2x + 80

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

Linear function

寻找斜率

斜率定义为如果平均脉搏增加 1,卡路里消耗增加了多少。 它告诉我们对角线有多"陡峭"。

我们可以利用图中两点的比例差来求斜率。

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

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

Slope = 20/10 = 2

斜率为 2。

数学上,斜率定义为:

Slope = f(x2) - f(x1) / x2-x1

f(x2) = Calorie_Burnage 的第二次观察 = 260
f(x1) = Calorie_Burnage 的第一次观察 = 240
x2 = 第二次观察 Average_Pulse = 90
x1 = 第一次观察 Average_Pulse = 80

Slope = (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))
亲自试一试 »

寻找截距

截距用于微调预测 Calorie_Burnage 的功能。

截距是对角线与 y 轴相交的位置(如果完全绘制)。

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

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

所以,截距是 80。

有时,截距具有实际意义。 有时不会。

平均脉搏为零有意义吗?

不,你会死,你当然不会燃烧任何卡路里。

但是,我们需要包含截距,以完成数学函数正确预测 Calorie_Burnage 的能力。

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

  • 使用营销支出预测明年的收入(如果营销支出为零,我们明年会有多少收入?)。 很可能会假设一家公司即使不花钱进行营销,也会有一些收入。
  • 燃油使用量与速度(如果速度等于 0 mph,我们使用多少燃油?)。 使用汽油的汽车在怠速时仍会使用燃料。


使用 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)

示例说明:

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

提示: 线性函数 = 1.degree 函数。 在我们的示例中,函数是线性的,在 1.degree 中。 这意味着所有系数(数字)都是 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() 显示输出