Khoa học dữ liệu - Độ dốc và chặn
Độ dốc và đánh chặn
Bây giờ chúng tôi sẽ giải thích cách chúng tôi tìm thấy hệ số góc và giao điểm của hàm số:
f(x) = 2x + 80
Hình ảnh bên dưới trỏ đến Độ dốc - biểu thị độ dốc của đường thẳng và Điểm giao điểm - là giá trị của y, khi x = 0 (điểm mà đường chéo đi qua trục tung). Đường màu đỏ là sự tiếp nối của đường màu xanh từ trang trước.
Tìm độ dốc
Độ dốc được định nghĩa là mức độ đốt cháy calo tăng lên, nếu nhịp tim trung bình tăng thêm một. Nó cho chúng ta biết đường chéo "dốc" như thế nào.
Chúng ta có thể tìm độ dốc bằng cách sử dụng hiệu tỷ lệ của hai điểm trên biểu đồ.
- Nếu mạch trung bình là 80 thì lượng calo đốt cháy là 240
- Nếu mạch trung bình là 90 thì lượng calo đốt cháy là 260
Chúng ta thấy rằng nếu nhịp tim trung bình tăng thêm 10 thì lượng calo đốt cháy tăng thêm 20.
Slope = 20/10 = 2
Độ dốc là 2.
Về mặt toán học, độ dốc được định nghĩa là:
Slope = f(x2) - f(x1) / x2-x1
f(x2) = Quan sát thứ hai về lượng calo_đốt cháy = 260
f(x1) = Quan sát đầu tiên về lượng calo_đốt cháy = 240
x2 = Quan sát thứ hai của Average_Pulse = 90
x1 = Quan sát đầu tiên của Average_Pulse = 80
Slope = (260-240) / (90 - 80) = 2
Hãy nhất quán để xác định các quan sát theo đúng thứ tự! Nếu không thì dự đoán sẽ không chính xác!
Sử dụng Python để tìm độ dốc
Tính độ dốc với đoạn mã sau:
Ví dụ
def slope(x1, y1, x2, y2):
s = (y2-y1)/(x2-x1)
return s
print (slope(80,240,90,260))
Hãy tự mình thử »Tìm điểm đánh chặn
Việc chặn được sử dụng để tinh chỉnh khả năng dự đoán Calorie_Burnage của chức năng.
Điểm giao nhau là nơi đường chéo đi qua trục y, nếu nó được vẽ hoàn toàn.
Phần bị chặn là giá trị của y, khi x = 0.
Ở đây, chúng ta thấy rằng nếu xung trung bình (x) bằng 0 thì lượng calo đốt cháy (y) là 80.
Vì vậy, số đánh chặn là 80.
Đôi khi, việc đánh chặn có ý nghĩa thực tế. Đôi khi không.
Liệu xung trung bình bằng 0 có hợp lý không?
Không, bạn sẽ chết và chắc chắn bạn sẽ không đốt cháy được chút calo nào.
Tuy nhiên, chúng ta cần bao gồm phần chặn để hoàn thiện khả năng dự đoán chính xác Calorie_Burnage của hàm toán học.
Các ví dụ khác trong đó việc chặn một hàm toán học có thể có ý nghĩa thực tế:
- Dự đoán doanh thu năm tới bằng cách sử dụng chi phí tiếp thị (Chúng ta sẽ có bao nhiêu doanh thu trong năm tới, nếu chi phí tiếp thị bằng 0?). Có thể giả định rằng một công ty vẫn sẽ có một số doanh thu ngay cả khi nó không chi tiền cho tiếp thị.
- Mức tiêu thụ nhiên liệu theo tốc độ (Chúng ta sử dụng bao nhiêu nhiên liệu nếu tốc độ bằng 0 mph?). Một chiếc ô tô sử dụng xăng vẫn sẽ tốn nhiên liệu khi chạy không tải.
Tìm độ dốc và giao điểm bằng Python
Hàm np.polyfit()
trả về độ dốc và giao điểm.
Nếu chúng ta tiếp tục với đoạn mã sau, chúng ta có thể nhận được độ dốc và phần chặn từ hàm.
Ví dụ
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)
Hãy tự mình thử »Ví dụ giải thích:
- Tách biệt các biến Average_Pulse (x) và Calorie_Burnage (y) khỏi health_data.
- Gọi hàm np.polyfit().
- Tham số cuối cùng của hàm chỉ định bậc của hàm, trong trường hợp này là "1".
Mẹo: hàm tuyến tính = hàm 1.độ. Trong ví dụ của chúng tôi, hàm này là tuyến tính, nằm ở cấp 1. Điều đó có nghĩa là tất cả các hệ số (các số) đều có lũy thừa bằng một.
Bây giờ chúng ta đã tính được độ dốc (2) và điểm chặn (80). Chúng ta có thể viết hàm toán học như sau:
Dự đoán Calorie_Burnage bằng cách sử dụng biểu thức toán học:
f(x) = 2x + 80
Nhiệm vụ:
Bây giờ, chúng tôi muốn dự đoán mức tiêu thụ calo nếu nhịp tim trung bình là 135.
Hãy nhớ rằng giao điểm là một hằng số. Hằng số là một số không thay đổi.
Bây giờ chúng ta có thể thay thế đầu vào x bằng 135:
f(135) = 2 * 135 + 80 = 350
Nếu mạch trung bình là 135 thì lượng calo đốt cháy là 350.
Xác định hàm toán học trong Python
Đây chính xác là hàm toán học tương tự, nhưng bằng Python. Hàm trả về 2*x + 80, với x là đầu vào:
Hãy thử thay thế x bằng 140 và 150.
Vẽ đồ thị mới bằng Python
Ở đây, chúng ta vẽ đồ thị giống như trước nhưng định dạng trục một chút.
Giá trị tối đa của trục y hiện là 400 và đối với trục x là 150:
Ví dụ
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()
Hãy tự mình thử »Ví dụ giải thích
- Nhập mô-đun pyplot của thư viện matplotlib
- Vẽ đồ thị dữ liệu từ Average_Pulse theo Calorie_Burnage
-
kind='line'
cho chúng tôi biết loại cốt truyện mà chúng tôi muốn. Ở đây chúng ta muốn có một đường thẳng - plt.ylim() và plt.xlim() cho chúng ta biết giá trị mà chúng ta muốn trục bắt đầu và dừng lại.
- plt.show() cho chúng ta thấy kết quả