Dòng phi tuyến tính của Python phù hợp nhất

Điều chỉnh đường cong là một loại tối ưu hóa nhằm tìm ra một tập hợp tham số tối ưu cho một hàm xác định phù hợp nhất với một tập hợp các quan sát nhất định

Không giống như học có giám sát, khớp đường cong yêu cầu bạn xác định chức năng ánh xạ các ví dụ về đầu vào thành đầu ra

Hàm ánh xạ, còn được gọi là hàm cơ sở, có thể có bất kỳ dạng nào bạn muốn, bao gồm đường thẳng (hồi quy tuyến tính), đường cong (hồi quy đa thức), v.v. Điều này mang lại sự linh hoạt và khả năng kiểm soát để xác định dạng đường cong, trong đó quy trình tối ưu hóa được sử dụng để tìm các tham số tối ưu cụ thể của hàm

Trong hướng dẫn này, bạn sẽ khám phá cách thực hiện khớp đường cong trong Python

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết

  • Điều chỉnh đường cong liên quan đến việc tìm các tham số tối ưu cho một hàm ánh xạ các ví dụ về đầu vào thành đầu ra
  • Thư viện SciPy Python cung cấp API để khớp đường cong với tập dữ liệu
  • Cách sử dụng khớp đường cong trong SciPy để khớp một loạt các đường cong khác nhau với một tập hợp các quan sát

Bắt đầu dự án của bạn với cuốn sách mới của tôi Tối ưu hóa cho Máy học, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ

Bắt đầu nào

Dòng phi tuyến tính của Python phù hợp nhất

Khớp đường cong với Python
Ảnh của Gael Varoquaux, bảo lưu một số quyền

Hướng dẫn tổng quan

Hướng dẫn này được chia thành ba phần;

  1. Lắp đường cong
  2. API Python lắp đường cong
  3. Ví dụ về việc lắp đường cong

Lắp đường cong

Điều chỉnh đường cong là một vấn đề tối ưu hóa để tìm ra một đường phù hợp nhất với tập hợp các quan sát

Cách dễ nhất là nghĩ về việc điều chỉnh đường cong theo hai chiều, chẳng hạn như đồ thị

Hãy xem xét rằng chúng tôi đã thu thập các ví dụ về dữ liệu từ miền vấn đề với đầu vào và đầu ra

Trục x là biến độc lập hoặc đầu vào của hàm. Trục y là biến phụ thuộc hoặc đầu ra của hàm. Chúng tôi không biết dạng hàm ánh xạ các ví dụ về đầu vào thành đầu ra, nhưng chúng tôi nghi ngờ rằng chúng tôi có thể tính gần đúng hàm với dạng hàm chuẩn

Điều chỉnh đường cong trước tiên bao gồm việc xác định dạng chức năng của hàm ánh xạ (còn được gọi là hàm cơ sở hoặc hàm mục tiêu), sau đó tìm kiếm các tham số cho hàm dẫn đến sai số tối thiểu

Lỗi được tính toán bằng cách sử dụng các quan sát từ miền và chuyển các đầu vào tới hàm ánh xạ ứng cử viên của chúng tôi và tính toán đầu ra, sau đó so sánh đầu ra được tính toán với đầu ra được quan sát

Khi đã khớp, chúng ta có thể sử dụng chức năng ánh xạ để nội suy hoặc ngoại suy các điểm mới trong miền. Người ta thường chạy một chuỗi các giá trị đầu vào thông qua chức năng ánh xạ để tính toán một chuỗi các kết quả đầu ra, sau đó tạo một biểu đồ đường của kết quả để cho biết đầu ra thay đổi như thế nào với đầu vào và mức độ phù hợp của đường với các điểm được quan sát

Chìa khóa để điều chỉnh đường cong là dạng của hàm ánh xạ

Một đường thẳng giữa đầu vào và đầu ra có thể được xác định như sau

  • y = a * x + b

Trong đó y là đầu ra được tính toán, x là đầu vào và a và b là các tham số của hàm ánh xạ được tìm thấy bằng thuật toán tối ưu hóa

Đây được gọi là phương trình tuyến tính vì nó là tổng trọng số của các yếu tố đầu vào

Trong mô hình hồi quy tuyến tính, các tham số này được gọi là hệ số;

Phương trình này có thể được khái quát hóa cho bất kỳ số lượng đầu vào nào, nghĩa là khái niệm khớp đường cong không giới hạn ở hai chiều (một đầu vào và một đầu ra), nhưng có thể có nhiều biến đầu vào

Ví dụ: hàm ánh xạ dòng cho hai biến đầu vào có thể trông như sau

  • y = a1 * x1 + a2 * x2 + b

Phương trình không nhất thiết phải là một đường thẳng

Chúng ta có thể thêm các đường cong trong hàm ánh xạ bằng cách thêm số mũ. Ví dụ: chúng ta có thể thêm phiên bản bình phương của đầu vào có trọng số theo tham số khác

  • y = a * x + b * x^2 + c

Đây được gọi là hồi quy đa thức và thuật ngữ bình phương có nghĩa là nó là đa thức bậc hai

Cho đến nay, các phương trình tuyến tính thuộc loại này có thể phù hợp bằng cách tối thiểu hóa bình phương nhỏ nhất và có thể được tính toán theo phương pháp giải tích. Điều này có nghĩa là chúng ta có thể tìm thấy các giá trị tối ưu của các tham số bằng cách sử dụng một chút đại số tuyến tính

Chúng ta cũng có thể muốn thêm các hàm toán học khác vào phương trình, chẳng hạn như sin, cosin, v.v. Mỗi thuật ngữ được tính trọng số với một tham số và được thêm vào toàn bộ để đưa ra đầu ra;

  • y = a * sin(b * x) + c

Việc thêm các hàm toán học tùy ý vào hàm ánh xạ của chúng ta thường có nghĩa là chúng ta không thể tính toán các tham số một cách phân tích và thay vào đó, chúng ta sẽ cần sử dụng thuật toán tối ưu hóa lặp lại

Đây được gọi là bình phương nhỏ nhất phi tuyến tính, vì hàm mục tiêu không còn lồi (nó phi tuyến tính) và không dễ giải quyết

Bây giờ chúng ta đã quen thuộc với khớp đường cong, hãy xem cách chúng ta có thể thực hiện khớp đường cong trong Python

Bạn muốn bắt đầu với các thuật toán tối ưu hóa?

Tham gia khóa học xử lý sự cố email miễn phí trong 7 ngày của tôi ngay bây giờ (có mã mẫu)

Nhấp để đăng ký và cũng nhận được phiên bản PDF Ebook miễn phí của khóa học

Bắt đầu Khóa học nhỏ MIỄN PHÍ của bạn ngay bây giờ

API Python lắp đường cong

Chúng tôi có thể thực hiện điều chỉnh đường cong cho tập dữ liệu của mình bằng Python

Thư viện mã nguồn mở SciPy cung cấp hàm curve_fit() để điều chỉnh đường cong thông qua bình phương nhỏ nhất phi tuyến tính

Hàm lấy cùng một dữ liệu đầu vào và đầu ra làm đối số, cũng như tên của hàm ánh xạ sẽ sử dụng

Hàm ánh xạ phải lấy ví dụ về dữ liệu đầu vào và một số đối số. Các đối số còn lại này sẽ là các hệ số hoặc hằng số trọng số sẽ được tối ưu hóa bằng quy trình tối ưu hóa bình phương tối thiểu phi tuyến tính

Ví dụ: chúng tôi có thể có một số quan sát từ miền của chúng tôi được tải dưới dạng biến đầu vào x và biến đầu ra y

1

2

3

4

.. .

# tải các biến đầu vào từ một tệp

x_values = . . .

y_values = . . .

Tiếp theo, chúng ta cần thiết kế một hàm ánh xạ để khớp một dòng với dữ liệu và triển khai nó dưới dạng một hàm Python nhận đầu vào và đối số

Nó có thể là một đường thẳng, trong trường hợp đó nó sẽ trông như sau

1

2

3

# hàm mục tiêu

def mục tiêu(x, a, b, c):

return a * x + b

Sau đó, chúng ta có thể gọi hàm curve_fit() để khớp một đường thẳng với tập dữ liệu bằng cách sử dụng hàm đã xác định của chúng ta

Hàm curve_fit() trả về các giá trị tối ưu cho hàm ánh xạ, e. g, các giá trị hệ số. Nó cũng trả về một ma trận hiệp phương sai cho các tham số ước tính, nhưng bây giờ chúng ta có thể bỏ qua điều đó

1

2

3

.. .

# đường cong vừa vặn

popt, _ = curve_fit(objective, x_values, y_values)

Khi đã khớp, chúng ta có thể sử dụng các tham số tối ưu và hàm ánh xạ object() để tính toán đầu ra cho bất kỳ đầu vào tùy ý nào

Điều này có thể bao gồm đầu ra cho các ví dụ mà chúng tôi đã thu thập từ miền, nó có thể bao gồm các giá trị mới nội suy các giá trị được quan sát hoặc nó có thể bao gồm các giá trị ngoại suy nằm ngoài giới hạn của những gì được quan sát

1

2

3

4

5

6

7

.. .

# xác định giá trị đầu vào mới

x_new = . . .

# giải nén các tham số tối ưu cho hàm mục tiêu

a, b, c = popt

# sử dụng tham số tối ưu để tính giá trị mới

y_new = mục tiêu(x_new, a, b, c)

Bây giờ chúng ta đã quen với việc sử dụng API điều chỉnh đường cong, hãy xem một ví dụ đã hoạt động

Ví dụ về việc lắp đường cong

Chúng tôi sẽ phát triển một đường cong để phù hợp với một số quan sát dữ liệu kinh tế trong thế giới thực

Trong ví dụ này, chúng tôi sẽ sử dụng cái gọi là tập dữ liệu “Hồi quy kinh tế của Longley”;

  • Suy thoái kinh tế của Longley (longley. csv)
  • Mô tả hồi quy kinh tế của Longley (longley. tên)

Chúng tôi sẽ tự động tải xuống tập dữ liệu như một phần của ví dụ đã hoạt động

Có bảy biến đầu vào và 16 hàng dữ liệu, trong đó mỗi hàng xác định một bản tóm tắt các chi tiết kinh tế trong một năm từ 1947 đến 1962

Trong ví dụ này, chúng ta sẽ khám phá sự phù hợp giữa quy mô dân số và số người có việc làm mỗi năm

Ví dụ bên dưới tải tập dữ liệu từ URL, chọn biến đầu vào là “dân số” và biến đầu ra là “có việc làm” và tạo biểu đồ phân tán

1

2

3

4

5

6

7

8

9

10

11

12

# cốt truyện "Dân số" so với "Có việc làm"

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

# tải tập dữ liệu

url = 'https. // thô. githubusercontent. com/jbrownlee/Bộ dữ liệu/master/longley. csv'

khung dữ liệu = read_csv(url, header=None)

dữ liệu = khung dữ liệu. giá trị

# chọn biến đầu vào và đầu ra

x, y = dữ liệu[:, 4], dữ liệu . [:, -1]

# cốt truyện đầu vào so với đầu ra

pyplot. phân tán(x, y)

pyplot. hiển thị()

Chạy ví dụ tải tập dữ liệu, chọn các biến và tạo một biểu đồ phân tán

Chúng ta có thể thấy rằng có một mối quan hệ giữa hai biến. Cụ thể, khi dân số tăng, tổng số lao động tăng

Không phải là vô lý khi nghĩ rằng chúng ta có thể phù hợp với dữ liệu này

Dòng phi tuyến tính của Python phù hợp nhất

Âm mưu phân tán dân số vs. Tổng số việc làm

Đầu tiên, chúng tôi sẽ thử khớp một đường thẳng với dữ liệu này, như sau

1

2

3

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b):

return a * x + b

Chúng ta có thể sử dụng khớp đường cong để tìm các giá trị tối ưu của “a” và “b” và tóm tắt các giá trị được tìm thấy

1

2

3

4

5

6

.. .

# đường cong phù hợp

popt, _ = curve_fit(objective, x, y)

# tóm tắt các giá trị tham số

a, b = bật

in('y = %. 5f * x + %. 5f' % (a, b))

Sau đó, chúng ta có thể tạo một biểu đồ phân tán như trước

1

2

3

.. .

# cốt truyện đầu vào so với đầu ra

pyplot. phân tán(x, y)

Trên biểu đồ phân tán, chúng ta có thể vẽ một đường cho hàm với các giá trị tham số được tối ưu hóa

Điều này trước tiên liên quan đến việc xác định một chuỗi các giá trị đầu vào giữa các giá trị tối thiểu và tối đa được quan sát trong tập dữ liệu (e. g. từ khoảng 120 đến khoảng 130)

1

2

3

.. .

# xác định chuỗi đầu vào giữa đầu vào nhỏ nhất và lớn nhất đã biết

x_line = dải(phút(x), max(x), 1)

Sau đó, chúng ta có thể tính toán giá trị đầu ra cho từng giá trị đầu vào

1

2

3

.. .

# tính toán đầu ra cho phạm vi

y_line = mục tiêu(x_line, a, b)

Sau đó, tạo một biểu đồ dòng của đầu vào so với. các kết quả đầu ra để xem một dòng

1

2

3

.. .

# tạo biểu đồ đường cho chức năng ánh xạ

pyplot. cốt truyện(x_line, y_line, '--', color='red')

Liên kết điều này lại với nhau, ví dụ dưới đây sử dụng khớp đường cong để tìm các tham số của đường thẳng cho dữ liệu kinh tế của chúng tôi

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

# khớp một đường thẳng với dữ liệu kinh tế

từ numpy nhập arange

từ gấu trúc nhập read_csv

từ scipy. tối ưu hóa nhập curve_fit

từ matplotlib nhập pyplot

 

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b):

return a * x + b

 

# tải tập dữ liệu

url = 'https. // thô. githubusercontent. com/jbrownlee/Bộ dữ liệu/master/longley. csv'

khung dữ liệu = read_csv(url, header=None)

dữ liệu = khung dữ liệu. giá trị

# chọn biến đầu vào và đầu ra

x, y = dữ liệu[:, 4], dữ liệu . [:, -1]

# đường cong phù hợp

popt, _ = curve_fit(objective, x, y)

# tóm tắt các giá trị tham số

a, b = bật

in('y = %. 5f * x + %. 5f' % (a, b))

# cốt truyện đầu vào so với đầu ra

pyplot. phân tán(x, y)

# xác định chuỗi đầu vào giữa đầu vào nhỏ nhất và lớn nhất đã biết

x_line = dải(phút(x), max(x), 1)

# tính toán đầu ra cho phạm vi

y_line = mục tiêu(x_line, a, b)

# tạo biểu đồ đường cho chức năng ánh xạ

pyplot. cốt truyện(x_line, y_line, '--', color='red')

pyplot. hiển thị()

Chạy ví dụ thực hiện điều chỉnh đường cong và tìm các tham số tối ưu cho hàm mục tiêu của chúng tôi

Đầu tiên, các giá trị của các tham số được báo cáo

1

y = 0. 48488 * x + 8. 38067

Tiếp theo, một biểu đồ được tạo hiển thị dữ liệu gốc và dòng phù hợp với dữ liệu

Chúng ta có thể thấy rằng nó phù hợp khá tốt

Dòng phi tuyến tính của Python phù hợp nhất

Biểu đồ đường thẳng phù hợp với tập dữ liệu kinh tế

Cho đến nay, điều này không thú vị lắm vì chúng ta có thể đạt được hiệu quả tương tự bằng cách điều chỉnh mô hình hồi quy tuyến tính trên tập dữ liệu

Hãy thử mô hình hồi quy đa thức bằng cách thêm các số hạng bình phương vào hàm mục tiêu

1

2

3

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b, c):

return a * x + b * x**2 + c

Liên kết điều này lại với nhau, ví dụ hoàn chỉnh được liệt kê bên dưới

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

# khớp đa thức bậc hai với dữ liệu kinh tế

từ numpy nhập arange

từ gấu trúc nhập read_csv

từ scipy. tối ưu hóa nhập curve_fit

từ matplotlib nhập pyplot

 

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b, c):

return a * x + b * x**2 + c

 

# tải tập dữ liệu

url = 'https. // thô. githubusercontent. com/jbrownlee/Bộ dữ liệu/master/longley. csv'

khung dữ liệu = read_csv(url, header=None)

dữ liệu = khung dữ liệu. giá trị

# chọn biến đầu vào và đầu ra

x, y = dữ liệu[:, 4], dữ liệu . [:, -1]

# đường cong phù hợp

popt, _ = curve_fit(objective, x, y)

# tóm tắt các giá trị tham số

a, b, c = popt

in('y = %. 5f * x + %. 5f * x^2 + %. 5f' % (a, b, c))

# cốt truyện đầu vào so với đầu ra

pyplot. phân tán(x, y)

# xác định chuỗi đầu vào giữa đầu vào nhỏ nhất và lớn nhất đã biết

x_line = dải(phút(x), max(x), 1)

# tính toán đầu ra cho phạm vi

y_line = mục tiêu(x_line, a, b, c)

# tạo biểu đồ đường cho chức năng ánh xạ

pyplot. cốt truyện(x_line, y_line, '--', color='red')

pyplot. hiển thị()

Đầu tiên các thông số tối ưu được báo cáo

1

y = 3. 25443 * x + -0. 01170 * x^2 + -155. 02783

Tiếp theo, một biểu đồ được tạo hiển thị dòng trong ngữ cảnh của các giá trị được quan sát từ miền

Chúng ta có thể thấy rằng phương trình đa thức bậc hai mà chúng ta đã xác định trực quan phù hợp với dữ liệu hơn so với đường thẳng mà chúng ta đã thử nghiệm đầu tiên

Dòng phi tuyến tính của Python phù hợp nhất

Biểu đồ của đa thức bậc hai phù hợp với tập dữ liệu kinh tế

Chúng ta có thể tiếp tục và thêm nhiều thuật ngữ đa thức hơn vào phương trình để phù hợp hơn với đường cong

Ví dụ: bên dưới là một ví dụ về đa thức bậc năm phù hợp với dữ liệu

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

# khớp đa thức bậc 5 với dữ liệu kinh tế

từ numpy nhập arange

từ gấu trúc nhập read_csv

từ scipy. tối ưu hóa nhập curve_fit

từ matplotlib nhập pyplot

 

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b, c, d, e, f):

return (a * x) + (b * x**2) + (c * x**3) + (d * x**4) + (e * x**5) + f

 

# tải tập dữ liệu

url = 'https. // thô. githubusercontent. com/jbrownlee/Bộ dữ liệu/master/longley. csv'

khung dữ liệu = read_csv(url, header=None)

dữ liệu = khung dữ liệu. giá trị

# chọn biến đầu vào và đầu ra

x, y = dữ liệu[:, 4], dữ liệu . [:, -1]

# đường cong phù hợp

popt, _ = curve_fit(objective, x, y)

# tóm tắt các giá trị tham số

a, b, c, d, e, f = popt

# cốt truyện đầu vào so với đầu ra

pyplot. phân tán(x, y)

# xác định chuỗi đầu vào giữa đầu vào nhỏ nhất và lớn nhất đã biết

x_line = dải(phút(x), max(x), 1)

# tính toán đầu ra cho phạm vi

y_line = mục tiêu(x_line, a, b, c, d, e, f)

# tạo biểu đồ đường cho chức năng ánh xạ

pyplot. cốt truyện(x_line, y_line, '--', color='red')

pyplot. hiển thị()

Chạy ví dụ khớp với đường cong và vẽ sơ đồ kết quả, một lần nữa thu được nhiều sắc thái hơn một chút về cách mối quan hệ trong dữ liệu thay đổi theo thời gian

Dòng phi tuyến tính của Python phù hợp nhất

Đồ thị của đa thức bậc 5 phù hợp với bộ dữ liệu kinh tế

Điều quan trọng, chúng tôi không giới hạn ở hồi quy tuyến tính hoặc hồi quy đa thức. Chúng ta có thể sử dụng bất kỳ chức năng cơ sở tùy ý

Ví dụ: có lẽ chúng tôi muốn một đường có các đường lắc lư để ghi lại chuyển động ngắn hạn khi quan sát. Chúng ta có thể thêm một đường cong hình sin vào phương trình và tìm các tham số tích hợp tốt nhất yếu tố này trong phương trình

Ví dụ: một hàm tùy ý sử dụng sóng hình sin và đa thức bậc hai được liệt kê bên dưới

1

2

3

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b, c, d):

return a * sin(b - x) + c * x**2 + d

Ví dụ hoàn chỉnh về việc điều chỉnh đường cong bằng hàm cơ bản này được liệt kê bên dưới

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

# khớp một dòng với dữ liệu kinh tế

từ numpy nhập sin

từ numpy nhập sqrt

từ numpy nhập arange

từ gấu trúc nhập read_csv

từ scipy. tối ưu hóa nhập curve_fit

từ matplotlib nhập pyplot

 

# xác định hàm mục tiêu thực sự

def mục tiêu(x, a, b, c, d):

return a * sin(b - x) + c * x**2 + d

 

# tải tập dữ liệu

url = 'https. // thô. githubusercontent. com/jbrownlee/Bộ dữ liệu/master/longley. csv'

khung dữ liệu = read_csv(url, header=None)

dữ liệu = khung dữ liệu. giá trị

# chọn biến đầu vào và đầu ra

x, y = dữ liệu[:, 4], dữ liệu . [:, -1]

# đường cong phù hợp

popt, _ = curve_fit(objective, x, y)

# tóm tắt các giá trị tham số

a, b, c, d = popt

in(popt)

# cốt truyện đầu vào so với đầu ra

pyplot. phân tán(x, y)

# xác định chuỗi đầu vào giữa đầu vào nhỏ nhất và lớn nhất đã biết

x_line = dải(phút(x), max(x), 1)

# tính toán đầu ra cho phạm vi

y_line = mục tiêu(x_line, a, b, c, d)

# tạo biểu đồ đường cho chức năng ánh xạ

pyplot. cốt truyện(x_line, y_line, '--', color='red')

pyplot. hiển thị()

Chạy ví dụ khớp với một đường cong và vẽ kết quả

Chúng ta có thể thấy rằng việc thêm một sóng hình sin có tác dụng mong muốn thể hiện sự dao động định kỳ với xu hướng tăng, cung cấp một cách khác để nắm bắt các mối quan hệ trong dữ liệu

Dòng phi tuyến tính của Python phù hợp nhất

Âm mưu của sóng hình sin phù hợp với bộ dữ liệu kinh tế

Làm thế nào để bạn chọn phù hợp nhất?

Nếu bạn muốn giải pháp phù hợp nhất, bạn sẽ mô hình hóa vấn đề dưới dạng bài toán học tập có giám sát hồi quy và thử nghiệm một bộ thuật toán để khám phá ra thuật toán nào tốt nhất để giảm thiểu lỗi

Trong trường hợp này, điều chỉnh đường cong phù hợp khi bạn muốn xác định hàm một cách rõ ràng, sau đó khám phá các tham số của hàm phù hợp nhất với một dòng dữ liệu

Mô hình nào là tốt nhất cho không

Mô hình hóa mối quan hệ phi tuyến tính bằng cách sử dụng Mô hình hồi quy đa thức . Hồi quy phi tuyến tính là mối quan hệ giữa các biến độc lập x và biến phụ thuộc y dẫn đến dữ liệu được mô hình hóa hàm phi tuyến tính.

Làm cách nào để sử dụng Curve_fit trong Python?

Điều chỉnh dữ liệu .
Nhập hàm curve_fit từ scipy
Tạo một danh sách hoặc mảng gọn gàng của biến độc lập của bạn (giá trị x của bạn). .
Tạo một danh sách các mảng numpy của các biến phụ thuộc của bạn (giá trị y của bạn). .
Tạo một hàm cho phương trình bạn muốn điều chỉnh. .
Sử dụng chức năng curve_fit để điều chỉnh dữ liệu của bạn

phù hợp bình phương tối thiểu phi tuyến tính là gì?

Bình phương nhỏ nhất phi tuyến tính giải được min(∑. F(x i ) - y i . 2 ), trong đó F(x i ) là một hàm phi tuyến và . Xem Bình phương nhỏ nhất phi tuyến tính (Curve Fitting). Đối với cách tiếp cận dựa trên vấn đề, hãy tạo các biến vấn đề, sau đó biểu diễn hàm mục tiêu và các ràng buộc theo các biến tượng trưng này. i is data. See Nonlinear Least Squares (Curve Fitting). For the problem-based approach, create problem variables, and then represent the objective function and constraints in terms of these symbolic variables.

Đường xu hướng OLS là gì?

Trong thống kê, bình phương nhỏ nhất thông thường (OLS) là một loại phương pháp bình phương nhỏ nhất tuyến tính để chọn các tham số chưa biết trong mô hình hồi quy tuyến tính . giảm thiểu tổng bình phương của.