NumPy Hình vuông ít nhất

Numpy Hinh Vuong It Nhat



Hôm nay, chúng ta sẽ tìm hiểu về bình phương nhỏ nhất trong phương trình tuyến tính và cách triển khai phương pháp bình phương nhỏ nhất sao cho phù hợp nhất với đường hồi quy trong tập dữ liệu được cung cấp. Nhưng trước đó, hãy tìm hiểu kiến ​​thức cơ bản về NumPy. NumPy là một trong những gói toán học tốt nhất của Python cung cấp các dịch vụ cho mảng và ma trận đa chiều cùng với một loạt các phép toán số phức có thể được thực hiện trên các ma trận / mảng này.

Một trong những phương pháp của Python lstsq () được sử dụng để tìm đường hồi quy của phương trình tuyến tính ax = b đã biết phù hợp nhất với phương trình này. Điều này có nghĩa là bạn phải xác định đường thể hiện đúng mối quan hệ giữa điểm x và điểm y nếu dữ liệu của bạn chỉ ra rằng có một điểm. Đường thẳng giữa cả hai điểm được gọi là đường hồi quy khi nó được sử dụng để tìm bình phương nhỏ nhất thông qua phương trình này, ax = b.

Cú pháp:

Hãy bắt đầu tìm hiểu kiểu triển khai của hàm linalg.lstsq (). Đầu tiên, chúng tôi viết tên thư viện mà chúng tôi sử dụng trong Python là “numpy”. Sau đó, chúng ta nối hàm linalg () và nối hàm lstsq (). Hàm linalg () có nghĩa là đại số tuyến tính. Nó luôn được sử dụng với hàm lstsq () vì nó là một biểu thức đại số tuyến tính. Sau đó, chúng ta chuyển các đối số trong dấu ngoặc hàm.









Thông số:

Hãy hiểu các tham số của hàm linalg.lstsq ():



Điểm 1: Nó là ma trận hệ số.





point2: Ma trận hoặc mảng này chứa các biến phụ thuộc.

rcond: Kiểu dữ liệu của nó là float. Tỷ lệ rcond đóng vai trò là điểm cắt cho các giá trị đơn lẻ nhỏ hơn của điểm_1. Nếu một giá trị số ít nhỏ hơn số lần rcond phần tử số ít lớn nhất của điểm_1, thì nó được coi là 0 khi xác định thứ hạng.



Giá trị trả lại:

Đổi lại, chúng ta nhận được bình phương nhỏ nhất của biến x đã biết trong phương trình ax = b.

Ví dụ 1:

Hãy bắt đầu triển khai ví dụ đầu tiên của chúng tôi về phương thức bình phương nhỏ nhất của thư viện Python, NumPy. Đầu tiên, chúng ta cần một trình biên dịch Python để chúng ta có thể viết mã trong đó. Mở trình biên dịch. Bạn cũng cần cài đặt thư viện NumPy vì chúng ta đang sử dụng một trong những hàm của NumPy là hàm lstsq (). Sau đó, bạn phải nhập gói NumPy trong đó. Đầu tiên, hãy viết từ khóa “nhập” cho trình biên dịch biết rằng chúng ta sẽ nhập gói. Sau đó, chúng ta phải viết tên gói mà chúng ta sử dụng trong hàm là “numpy”. Và sau đó, chúng tôi cũng viết tên thay thế của NumPy “np” vì nhiều lập trình viên sử dụng cách tiếp cận này. Đây là một cách tiếp cận lập trình tốt và tiết kiệm thời gian.

Sau khi nhập gói, chúng tôi bắt đầu viết dòng mã thực mà chúng tôi muốn làm. Chúng tôi in các thông báo trước để người dùng có thể dễ dàng hiểu những gì chúng tôi đang làm trong ví dụ bằng cách sử dụng câu lệnh print (). Chúng ta tạo mảng một chiều “A” bằng cách sử dụng hàm array () và sau đó in nó bằng cách gọi câu lệnh print (). Sau đó, chúng ta tạo một mảng một chiều “B” khác bằng cách sử dụng hàm array () và in nó bằng cách sử dụng hàm print ().

nhập khẩu numpy như ví dụ.

in ( 'Triển khai Phương pháp Least Square trong NumPy:' )

Một = ví dụ. mảng ( [ 1 , hai , 1 , 1 , 1 , hai , hai , 1 , 1 ] )

in ( ' \N Mảng A là: ' , Một )

B = ví dụ. mảng ( [ 4 , 3 , 5 , 4 , hai , 3 , 6 , 3 , hai ] )

in ( ' \N Mảng B là: ' , B )

X = ví dụ. lanh . lstsq ( ví dụ. vstack ( [ Một , ví dụ. những cái ( chỉ có ( Một ) ) ] ) . T , B , rcond = Không có ) [ 0 ]

in ( ' \N Quảng trường Ít nhất là: ' , X )

Sau khi tạo cả hai điểm A và B, chúng ta thực hiện hàm lstsq (). Nhưng trước tiên, chúng ta sử dụng hàm vstack () để xếp chồng các phần tử của “A”, theo trình tự. Sau đó, chúng tôi chuyển vị của mảng “A”. Sau đó, chúng ta truyền hàm vstack () làm đối số đầu tiên của hàm lstsq (). Đối số thứ hai là mảng “B” và đối số thứ ba là “rcond”, trong đó chúng tôi đặt giá trị của rcond là “none”. Sau đó, chúng tôi lưu trữ toàn bộ hàm trong một mảng khác có tên “x” cho thấy rằng nó là phương trình tuyến tính biến đã biết, ax = b. Sau đó, chúng tôi hiển thị kết quả nên chúng tôi sử dụng câu lệnh print () cho việc này và chuyển mảng “x” vào đó.

Ví dụ 2:

Bây giờ, hãy bắt đầu triển khai một ví dụ khác về hình vuông nhỏ nhất NumPy. Chúng tôi luôn nhập thư viện đầu tiên mà chúng tôi sử dụng trong chương trình là NumPy. Đầu tiên, chúng tôi viết từ khóa “nhập” để lấy gói trong chương trình. Chúng tôi cũng viết tên gói là “numpy” và sau đó là bí danh của anh ấy, “np”. Sau đó, chúng tôi gọi phương thức print () để chúng tôi có thể hiển thị thông báo có thể truy xuất về các ô vuông nhỏ nhất để người dùng hiểu rõ hơn.

Sau đó, chúng ta tạo tên mảng “x_axis” và lưu trữ mảng trong đó bằng cách sử dụng hàm arange (). Sau đó, chúng tôi in nó bằng phương thức print (). Sau đó, chúng ta tạo một tên mảng khác là “y_axis” và lưu trữ mảng trong đó mà chúng ta đã tạo trong hình minh họa sau.

Sau khi tạo cả hai mảng, chúng ta triển khai phương thức ones () trên mảng x_axis và lưu trữ nó trong một mảng khác có tên là “array_a”. Và sau đó, chúng tôi cũng in mảng này. Chúng tôi tạo một mảng khác có tên “arg_reg_line” và triển khai một hàm linalg.lstsq () trên đó. Sau đó, chúng tôi truyền các tham số cho hàm này để chúng tôi có thể nhận được bình phương nhỏ nhất giữa hai mảng hoặc điểm. Tham số đầu tiên là chúng ta lấy chuyển vị của array_a. Tham số thứ hai là điểm thứ hai là y_axis. Sau đó, chúng ta có “rcond” chứa giá trị “none”. Sau đó, chúng tôi hiển thị mảng bằng phương thức print ().

nhập khẩu numpy như ví dụ.

in ( 'Triển khai hàm linalg.lstsq ():' )

x_axis = ví dụ. arange ( 0 , 10 )

in ( ' \N Giá trị của trục x là: ' , x_axis )

y_axis = [ 10.3 , 10,5 , mười một , 11,5 , 13,2 , 13,9 , 14 , 15,5 , 16,6 , 17 ]

in ( ' \N Giá trị của trục y là: ' , y_axis )

array_a = ví dụ. mảng ( [ x_axis , ví dụ. những cái ( 10 ) ] )

in ( ' \N Mảng là: \N ' , array_a )

arg_reg_line = ví dụ. lanh . lstsq ( mảng_a. T , y_axis , rcond = Không có ) [ 0 ]

in ( ' \N Các tham số của dòng Regrssion là: ' , arg_reg_line )

reg_line = arg_reg_line [ 0 ] * x_axis + arg_reg_line [ 1 ]

nhập khẩu matplotlib. pyplot như làm ơn

làm ơn. kịch bản ( x_axis , reg_line , 'r-' )

làm ơn. kịch bản ( x_axis , y_axis , 'O' )

làm ơn. Tiêu đề ( 'Dòng hồi quy tuyến tính' )

làm ơn. xlabel ( 'Trục X' )

làm ơn. ylabel ( 'Trục Y' )

làm ơn. buổi bieu diễn ( )

Đây là kết quả đầu ra của ví dụ được triển khai previoulsy:

Chúng tôi nhập một gói NumPy khác là gói “matplotlib” được sử dụng để vẽ biểu đồ. Sau đó, chúng tôi vẽ biểu đồ các giá trị x_axis và y_axis_values. Tiếp theo, chúng tôi đặt tiêu đề và nhãn của biểu đồ. Cuối cùng, chúng tôi hiển thị biểu đồ bằng phương thức show ().

Đây là biểu đồ mong muốn của ví dụ đã cho:

Sự kết luận

Trong bài viết này, chúng ta đã tìm hiểu thế nào là bình phương nhỏ nhất và cách lấy linalg.lstsq () của biến chưa biết x bằng cách sử dụng phương trình tuyến tính ax = b. Chúng tôi đã sử dụng nhiều hàm của NumPy để tìm bình phương nhỏ nhất và triển khai một số ví dụ có giải thích chi tiết để người dùng hiểu rõ hơn.