Mã Python đa thức

Nếu các điểm dữ liệu của bạn rõ ràng sẽ không phù hợp với hồi quy tuyến tính (một đường thẳng đi qua tất cả các điểm dữ liệu), thì đó có thể là lý tưởng cho hồi quy đa thức

Hồi quy đa thức, giống như hồi quy tuyến tính, sử dụng mối quan hệ giữa các biến x và y để tìm ra cách tốt nhất để vẽ một đường thẳng qua các điểm dữ liệu

Mã Python đa thức

Làm thế nào nó hoạt động?

Python có các phương thức để tìm mối quan hệ giữa các điểm dữ liệu và để vẽ một đường hồi quy đa thức. Chúng tôi sẽ chỉ cho bạn cách sử dụng các phương pháp này thay vì đi qua công thức toán học

Trong ví dụ bên dưới, chúng tôi đã đăng ký 18 ô tô khi chúng đi qua một trạm thu phí nhất định

Chúng tôi đã đăng ký tốc độ của ô tô và thời gian trong ngày (giờ) xảy ra việc vượt qua

Trục x biểu thị số giờ trong ngày và trục y biểu thị tốc độ

Thí dụ

Bắt đầu bằng cách vẽ một biểu đồ phân tán

nhập matplotlib. pyplot dưới dạng plt

x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

plt. phân tán(x, y)
plt. hiển thị ()

Kết quả

Mã Python đa thức

Chạy ví dụ »

Thí dụ

Nhập numpymatplotlib sau đó vẽ đường hồi quy đa thức

nhập numpy
nhập matplotlib. pyplot dưới dạng plt

x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

mymodel = numpy. poly1d(numpy. polyfit(x, y, 3))

myline = numpy. không gian trống (1, 22, 100)

plt. phân tán(x, y)
plt. cốt truyện(myline, mymodel(myline))
plt. hiển thị ()

Kết quả

Mã Python đa thức

Chạy ví dụ »

Ví dụ giải thích

Nhập các mô-đun bạn cần

Bạn có thể tìm hiểu về mô-đun NumPy trong Hướng dẫn NumPy của chúng tôi

Bạn có thể tìm hiểu về mô-đun SciPy trong Hướng dẫn SciPy của chúng tôi

import numpy
import matplotlib.pyplot as plt

Tạo các mảng đại diện cho các giá trị của trục x và y

x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]
y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

NumPy có một phương thức cho phép chúng ta tạo một mô hình đa thức

mymodel = numpy.poly1d(numpy.polyfit(x, y, 3))

Sau đó chỉ định cách dòng sẽ hiển thị, chúng tôi bắt đầu ở vị trí 1 và kết thúc ở vị trí 22

myline = numpy.linspace(1, 22, 100)

Vẽ biểu đồ phân tán ban đầu

Vẽ đường hồi quy của đa thức

plt.plot(myline, mymodel(myline))

Hiển thị sơ đồ



R-bình phương

Điều quan trọng là phải biết mối quan hệ giữa các giá trị của trục x và y tốt như thế nào, nếu không có mối quan hệ nào thì hồi quy đa thức không thể được sử dụng để dự đoán bất cứ điều gì

Mối quan hệ được đo bằng một giá trị gọi là r-squared

Giá trị r bình phương nằm trong khoảng từ 0 đến 1, trong đó 0 có nghĩa là không có mối quan hệ nào và 1 có nghĩa là 100% có liên quan

Python và mô-đun Sklearn sẽ tính toán giá trị này cho bạn, tất cả những gì bạn phải làm là cung cấp cho nó các mảng x và y

Thí dụ

Dữ liệu của tôi phù hợp như thế nào trong hồi quy đa thức?

nhập numpy
từ sklearn. nhập số liệu r2_score

x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

mymodel = numpy. poly1d(numpy. polyfit(x, y, 3))

in(r2_score(y, mymodel(x)))

Hãy thử nếu chính bạn »

Ghi chú. kết quả 0. 94 cho thấy có một mối quan hệ rất tốt và chúng ta có thể sử dụng hồi quy đa thức trong các dự đoán trong tương lai


Dự đoán giá trị tương lai

Bây giờ chúng ta có thể sử dụng thông tin chúng ta đã thu thập để dự đoán các giá trị trong tương lai

Thí dụ. Chúng ta hãy thử dự đoán tốc độ của một chiếc ô tô đi qua trạm thu phí vào khoảng thời gian 17. 00

Để làm như vậy, chúng ta cần cùng một mảng mymodel từ ví dụ trên

mymodel = numpy.poly1d(numpy.polyfit(x, y, 3))

Thí dụ

Dự đoán vận tốc ô tô đi qua lúc 17. 00

nhập numpy
từ sklearn. nhập số liệu r2_score

x = [1,2,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22]y = [100,90,80,60,60,55,60,65,70,70,75,76,78,79,90,99,99,100]

mymodel = numpy. poly1d(numpy. polyfit(x, y, 3))

tốc độ = mymodel(17)
in(tốc độ)

Chạy ví dụ »

Ví dụ dự đoán tốc độ là 88. 87, mà chúng ta cũng có thể đọc được từ sơ đồ

Mã Python đa thức

Phù hợp xấu?

Hãy để chúng tôi tạo một ví dụ trong đó hồi quy đa thức sẽ không phải là phương pháp tốt nhất để dự đoán các giá trị trong tương lai

Thí dụ

Các giá trị này cho trục x và y sẽ dẫn đến sự phù hợp rất kém đối với hồi quy đa thức

nhập numpy
nhập matplotlib. pyplot dưới dạng plt

x = [89,43,36,36,95,10,66,34,38,20,26,29,48,64,6,5,36,66,72,40]y = [21,46,3,35,67,95,53,72,58,10,26,34,90,33,38,20,56,2,47,15]

mymodel = numpy. poly1d(numpy. polyfit(x, y, 3))

myline = numpy. không gian trống (2, 95, 100)

plt. phân tán(x, y)
plt. cốt truyện(myline, mymodel(myline))
plt. hiển thị ()

Kết quả

Mã Python đa thức

Chạy ví dụ »

Và giá trị bình phương r?

Thí dụ

Bạn sẽ nhận được giá trị r bình phương rất thấp

nhập numpy
từ sklearn. nhập số liệu r2_score

x = [89,43,36,36,95,10,66,34,38,20,26,29,48,64,6,5,36,66,72,40]y = [21,46,3,35,67,95,53,72,58,10,26,34,90,33,38,20,56,2,47,15]

mymodel = numpy. poly1d(numpy. polyfit(x, y, 3))

in(r2_score(y, mymodel(x)))

Hãy thử nếu chính bạn »

Kết quả. 0. 00995 cho biết mối quan hệ rất xấu và cho chúng tôi biết rằng tập dữ liệu này không phù hợp với hồi quy đa thức

một đa thức trong 3 biến là gì?

Một đa thức có ba số hạng biến được gọi là phương trình tam thức . Nó còn được gọi là phương trình bậc ba. Dạng đại số của phương trình bậc hai có dạng. ax3 + bx2 + cx + d = 0, trong đó a, b và c là các hệ số, d là hằng số và bậc của đa thức là 3.

4 loại hàm đa thức là gì?

Các loại hàm đa thức .
Hàm đa thức không đổi. P(x) = a = ax. .
Hàm đa thức bằng không. P(x) = 0;
Hàm đa thức tuyến tính. P(x) = ax + b
Hàm đa thức bậc hai. P(x) = ax2+bx+c
Hàm đa thức bậc ba. ax3+bx2+cx+d