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
     ❯   

数据科学 - 斜率和截距


斜率和截距

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

f(x) = 2x + 80

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

Linear function

找到斜率

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

我们可以使用图中两点的比例差来找到斜率。

  • 如果平均脉搏为 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 度函数。在我们的示例中,函数是线性的,即 1 度。这意味着所有系数(数字)都处于 1 的幂。

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

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

f(x) = 2x + 80

任务

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

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

我们现在可以用 135 代替输入 x

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() 显示了输出

×

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.