Độ phức tạp tính toán của việc tính toán Ma trận phương sai-hiệp phương sai là gì?


8

Tôi đang sử dụng một phép tính của ma trận phương sai - hiệp phương sai trong một chương trình tôi đã viết (cho Phân tích thành phần chính), và tôi tự hỏi sự phức tạp của nó là gì. Trong khi rõ ràng sự phân rã Eigenvector đang gây ra hiệu ứng lớn nhất, tôi tự hỏi bao nhiêu cú đánh đó là do tính toán Ma trận hiệp phương sai.

Thời gian chạy tiệm cận tôi ước tính nó để sử dụng là sử dụng một thuật toán ngây thơ, bởi vì nó có để có những phương tiện của tất cả các dữ liệu kích thước N và sau đó có để làm điều đó cho mỗi thứ nguyên (nơi n là số lượng kích thước) trong một lần lặp lồng nhau, và do đó tạo ra ma trận kích thước n 2 .O(Nn2)Nnn2

Là giả định của tôi là chính xác, hoặc nếu không, sự phức tạp tiệm cận là gì?

Câu trả lời:


2

Phỏng đoán của bạn là chính xác.

Nếu với N là số lượng điểm dữ liệu và n là số lượng tính năng, thì bạn có thể thu được ma trận hiệp phương sai bằng X T X (ngoài phép trừ trung bình có thể bỏ qua từ góc độ phức tạp).XRN×nNnXTX

O(Nn²) 2Nn²XO(n2.73)

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.