NumPy giải quyết các ô vuông nhỏ nhất cho các hệ thống chưa xác định như thế nào?


14

Hãy nói rằng chúng ta có X hình dạng (2, 5)
và y hình dạng (2,)

Những công việc này: np.linalg.lstsq(X, y)

Chúng tôi hy vọng điều này chỉ hoạt động nếu X có hình dạng (N, 5) trong đó N> = 5 Nhưng tại sao và như thế nào?

Chúng tôi nhận lại 5 trọng lượng như mong đợi nhưng vấn đề này được giải quyết như thế nào?

Có phải chúng ta có 2 phương trình và 5 ẩn số không?
Làm thế nào numpy có thể giải quyết điều này?
Nó phải làm một cái gì đó như nội suy để tạo ra các phương trình nhân tạo hơn? ..


3
Tại sao nó không hoạt động? Một hệ thống không xác định có nhiều giải pháp.
Matthew Gunn

Bạn có thể có một liên kết đến lý thuyết có liên quan không? ..
George Pligoropoulos

Câu trả lời:


18

Sự hiểu biết của tôi là numpy.linalg.lstsq dựa trên dgelsd thường quy LAPACK .

Vấn đề là giải quyết:

minimize(overx)Axb2

Tất nhiên, điều này không có một giải pháp duy nhất cho ma trận A có thứ hạng nhỏ hơn độ dài của vectơ . Trong trường hợp hệ thống không xác định, cung cấp giải pháp sao cho:bdgelsdz

  • Az=b
  • z2x2 cho tất cả thỏa mãn . (tức là là giải pháp định mức tối thiểu cho hệ thống không xác định.xAx=bz

Ví dụ: nếu hệ thống là , numpy.linalg.lstsq sẽ trả về .x+y=1x=.5,y=.5

Làm thế nào để dgelsd làm việc?

dgelsdThường trình tính toán phân rã giá trị số ít (SVD) của A.

Tôi sẽ chỉ phác thảo ý tưởng đằng sau bằng cách sử dụng một SVD để giải quyết một hệ thống tuyến tính. Sự phân hủy giá trị đơn lẻ là một nhân tử UΣV=A nơi UV là ma trận trực giao và Σ là một ma trận đường chéo nơi các mục chéo được gọi là giá trị duy nhất.

Thứ hạng hiệu quả của ma trận A sẽ là số lượng các giá trị số ít có hiệu quả khác không (nghĩa là đủ khác với 0 so với độ chính xác của máy, v.v ...). Đặt S là ma trận đường chéo của các giá trị số ít khác không. Do đó, SVD là:

A=U[S000]V

Giả nghịch đảo của A được cho bởi:

A=V[S1000]U

Xét nghiệm x=Ab . Sau đó:

Axb=U[S000]VV[S1000]Ubb=U[I000]Ubb

Về cơ bản có hai trường hợp ở đây:

  1. Ib
  2. Axb=0

U

Sự tương đương của giả nghịch đảo

A

A=A(AA)1

Đối với một hệ thống không xác định, bạn có thể chỉ ra rằng giả nghịch đảo cung cấp cho bạn giải pháp định mức tối thiểu.

A

A=(AA)1A


dgelsd sử dụng SVD nhưng R lm sử dụng QR?
Haitao Du

@ hxd1011R's lmsử dụng hệ số QR theo mặc định nhưng bạn có thể chỉ định các lựa chọn thay thế.
Sycorax nói phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.