選單
×
   ❮     
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 提供支援