Tại sao chúng ta sử dụng PCA để tăng tốc thuật toán học tập khi chúng ta có thể giảm số lượng tính năng?


12

Trong một khóa học về máy học, tôi đã học được rằng một cách sử dụng phổ biến của PCA ( Phân tích thành phần chính ) là tăng tốc các thuật toán học máy khác. Ví dụ, hãy tưởng tượng bạn đang đào tạo một mô hình hồi quy logistic. Nếu bạn có tập huấn luyện cho i từ 1 đến n và hóa ra kích thước của vectơ x của bạn là rất lớn (giả sử kích thước), bạn có thể sử dụng PCA để lấy kích thước nhỏ hơn (giả sử k kích thước) tính năng vector z. Sau đó, bạn có thể huấn luyện mô hình hồi quy logistic của mình trên tập huấn luyện ( z ( i ) , y ( i )(x(i),y(i))(z(i),y(i)) cho tôi từ 1 đến n. Đào tạo mô hình này sẽ nhanh hơn vì vector tính năng của bạn có ít kích thước hơn.

Tuy nhiên, tôi không hiểu tại sao bạn không thể giảm kích thước của vectơ đặc trưng của mình xuống k kích thước bằng cách chỉ chọn k các tính năng của bạn một cách ngẫu nhiên và loại bỏ phần còn lại.

Các vectơ z là sự kết hợp tuyến tính của các vectơ đặc trưng của bạn. Vì các vectơ z được giới hạn ở bề mặt k chiều, bạn có thể viết các giá trị tính năng được loại bỏ ak dưới dạng hàm tuyến tính của các giá trị tính năng k còn lại, và do đó tất cả các z có thể được hình thành bằng cách kết hợp tuyến tính các tính năng k của bạn. Vì vậy, không phải một mô hình được đào tạo trên một tập huấn luyện với các tính năng bị loại bỏ có sức mạnh tương đương với một mô hình được đào tạo trên một tập huấn luyện mà kích thước đã bị PCA giảm? Có phải nó chỉ phụ thuộc vào loại mô hình và liệu nó có dựa vào một số loại kết hợp tuyến tính không?


1
cột rơi sẽ dẫn đến mất nhiều thông tin hơn so với việc sử dụng PCA
Haitao Du

2
Phản ứng chuỗi polymerase phải làm gì với nó? :-) --- Trong mọi trường hợp, bạn phải luôn đánh vần một thuật ngữ trước khi sử dụng từ viết tắt.
Carl Witthoft

Bạn có thể xem các hàm riêng mà PCA thu được dưới dạng các tính năng mới, vì vậy PCA cho phép giảm các tính năng - bằng cách kết hợp lại các tính năng mà chúng ta có với các phương thức thu được nhiều phương sai hơn so với các tính năng mà chúng ta đã bắt đầu.
toán học

Câu trả lời:


26

Giả sử ban đầu bạn có các tính năng nhưng điều này quá nhiều vì vậy bạn muốn thực sự phù hợp với mô hình của mình trên các tính năng d < p . Bạn có thể chọn d các tính năng của bạn và bỏ phần còn lại. Nếu X là ma trận tính năng của chúng tôi, tương ứng này để sử dụng X DD { 0 , 1 } p × d chọn ra chính xác các cột của X mà chúng tôi muốn bao gồm. Nhưng điều này bỏ qua tất cả thông tin trong các cột khác, vậy tại sao không xem xét một khía cạnh tổng quát hơn giảm X V nơi V Rpd<pdXXDD{0,1}p×dXXVcác cộtp,chúng tôi chắc chắn sẽ không thể làm tốt như với tất cả cáctính năngp. Một số thông tin sẽ bị mất, và do đó nó sẽ khiến chúng ta mất ít thông tin nhất có thể. Với PCA, "thông tin" mà chúng tôi đang cố gắng tránh bị mất là sự thay đổi trong dữ liệu.VRp×d? Đây chính xác là những gì PCA làm: chúng tôi tìm thấy ma trận sao cho X V chứa càng nhiều thông tin trong X càng tốt. Không phải tất cả các kết hợp tuyến tính được tạo ra như nhau. Trừ khi ma trận X của chúng tôi có thứ hạng thấp đến mức một tập hợp các cột d ngẫu nhiên có thể (với xác suất cao) bao trùm không gian cột của tất cảVXVXXdpp

Về lý do tại sao chúng ta giới hạn bản thân vào các phép biến đổi tuyến tính của các yếu tố dự đoán, toàn bộ điểm trong trường hợp sử dụng này là thời gian tính toán. Nếu chúng ta có thể thực hiện giảm kích thước phi tuyến tính ưa thích trên có lẽ chúng ta có thể vừa với mô hình trên tất cảX quá. Vì vậy, PCA nằm hoàn hảo ở giao điểm của tính toán nhanh và hiệu quả.X


2
+1. Mặc dù vậy, vẫn có ý nghĩa để hỏi, tại sao biến thể trong X (mà PCA cố giữ lại) nên có liên quan để dự đoán Y ... Đây là một chủ đề liên quan: stats.stackexchange.com/questions/141864 .
amip nói rằng Phục hồi Monica

4

PCA giảm các tính năng trong khi bảo tồn phương sai / thông tin trong dữ liệu gốc. Điều này giúp cho việc tính toán trong khi không làm mất đi sự giống với thực tế của dữ liệu.


2

Giải pháp PCA

Đầu tiên, hãy cẩn thận khi sử dụng PCA cho mục đích này. Như tôi đã viết khi trả lời một câu hỏi liên quan, PCA không nhất thiết dẫn đến việc lựa chọn các tính năng cung cấp thông tin cho hồi quy mà bạn dự định thực hiện (xem thêm Jolliffe 1982 ).

OP đề xuất giải pháp

reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.dimension of your vector x is very largep

pCkkpp=1000k=58.25×1012k=5k=6p

Đề xuất giải pháp

p

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.