Điều gì có thể khiến PCA làm xấu đi kết quả của phân loại?


27

Tôi có một trình phân loại mà tôi đang thực hiện xác thực chéo, cùng với hàng trăm tính năng mà tôi đang tiến hành lựa chọn để tìm các kết hợp tính năng tối ưu. Tôi cũng so sánh điều này với việc chạy các thử nghiệm tương tự với PCA, nơi tôi sử dụng các tính năng tiềm năng, áp dụng SVD, chuyển đổi tín hiệu gốc vào không gian tọa độ mới và sử dụng các tính năng hàng đầu trong quy trình lựa chọn chuyển tiếp của tôi.k

Trực giác của tôi là PCA sẽ cải thiện kết quả, vì các tín hiệu sẽ "nhiều thông tin" hơn các tính năng ban đầu. Là sự hiểu biết ngây thơ của tôi về PCA dẫn tôi vào rắc rối? Bất cứ ai cũng có thể đề xuất một số lý do phổ biến tại sao PCA có thể cải thiện kết quả trong một số tình huống, nhưng làm xấu đi chúng ở những người khác?


Câu hỏi của bạn có thể được tóm tắt như thế này không?: "Điều gì tốt hơn - để xây dựng các trình phân loại dựa trên các biến ban đầu hoặc trên một vài thành phần chính được trích xuất từ ​​các biến đó?"
ttnphns

1
Tôi sẽ nói nhiều hơn dọc theo dòng chữ, "Có những tình huống khi sử dụng các biến ban đầu tốt hơn so với một vài thành phần nguyên tắc được trích xuất từ ​​những điều đó?"
Dolan Antenucci

1
Có nhiều phân loại kỹ thuật. Ví dụ: nếu phân tích phân biệt đối xử, tôi khuyên bạn nên đọc bài đăng này (bao gồm cả nhận xét của riêng tôi ở đó).
ttnphns

1
"Kết quả của phân loại" nghĩa là gì? Nếu tỷ lệ được phân loại chính xác, đây là quy tắc chấm điểm không liên tục, nghĩa là điểm chính xác được tối ưu hóa bởi mô hình không có thật. Tôi sẽ đề nghị sử dụng quy tắc chấm điểm chính xác phù hợp, để bắt đầu.
Frank Harrell

1
Hơi muộn cho bữa tiệc, nhưng: điều đầu tiên tôi muốn kiểm tra lại là kết quả xác thực của lựa chọn chuyển tiếp đã thực sự thu được với các trường hợp độc lập. Nếu không, bạn có thể phải chịu một thiên vị lạc quan rất lớn.
cbeleites hỗ trợ Monica

Câu trả lời:


29

Hãy xem xét một trường hợp đơn giản, được nâng lên từ một bài báo tuyệt vời và bị đánh giá thấp "Lưu ý về việc sử dụng các thành phần chính trong hồi quy" .

Giả sử bạn chỉ có hai tính năng (được chia tỷ lệ và không có nghĩa), biểu thị chúng x 2 với tương quan dương bằng 0,5, được căn chỉnh trong X và biến phản ứng thứ ba Y bạn muốn phân loại. Giả sử rằng phân loại của Y được xác định đầy đủ bằng dấu của x 1 - x 2 .x1x2XYYx1x2

Thực hiện PCA trên kết quả trong mới (sắp thứ tự theo đúng) tính năng [ x 1 + x 2 , x 1 - x 2 ] , vì Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - x 2 ) = 2 - 2 ρX[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ. Do đó, nếu bạn giảm kích thước của mình xuống 1, tức là thành phần chính đầu tiên, bạn đang vứt bỏ giải pháp chính xác để phân loại!

Vấn đề xảy ra vì PCA là thuyết bất khả tri đến . Thật không may, người ta không thể bao gồm Y trong PCA vì điều này sẽ dẫn đến rò rỉ dữ liệu.YY


Rò rỉ dữ liệu là khi ma trận của bạn được xây dựng bằng cách sử dụng các yếu tố dự đoán mục tiêu được đề cập, do đó mọi dự đoán ngoài mẫu sẽ không thể thực hiện được.X

Ví dụ: trong chuỗi thời gian tài chính, cố gắng dự đoán ngày đóng cửa cuối ngày của châu Âu, diễn ra lúc 11:00 EST, sử dụng các đóng cửa cuối ngày của Mỹ, lúc 4:00 EST EST, là rò rỉ dữ liệu kể từ khi Mỹ đóng cửa , xảy ra vài giờ sau đó, đã kết hợp giá của châu Âu đóng cửa.


2
"rò rỉ dữ liệu" là gì?
dùng603

@Wayne tốn kém quá haha
Cam.Davidson.Pilon

(-1) vì đã gây nhầm lẫn: (1) PCA không được giám sát, do đó, nó sẽ không bao giờ bao gồm Y trong việc sao chép chuyển đổi. Kỹ thuật được giám sát tương ứng là PLS, sử dụng cả X và Y. (2) Rò rỉ dữ liệu (như trong: thử nghiệm với dữ liệu phụ thuộc thống kê) không tuân theo việc sử dụng phương pháp được giám sát. Ngược lại: nó sẽ xảy ra với PCA giống như với PLS nếu bạn không tuân thủ quy tắc rằng từ bước phân tích đầu tiên sử dụng nhiều hơn một trường hợp (ví dụ: định tâm, chia tỷ lệ, chiếu PCA / PLS) trên tất cả các tính toán phải chỉ được thực hiện trên dữ liệu đào tạo (nghĩa là cần phải ...
cbeleites hỗ trợ Monica

... tính toán lại cho từng mô hình thay thế. Kết quả của các tính toán này sau đó có thể được áp dụng cho dữ liệu thử nghiệm, tức là trừ trung tâm thu được từ dữ liệu huấn luyện, xoay theo vòng quay mà PCA thu được trong các trường hợp đào tạo, v.v.
cbeleites hỗ trợ Monica

Ví dụ: chuỗi thời gian đặc biệt khó khăn, vì những gì tạo thành một trường hợp độc lập sẽ phụ thuộc rất nhiều vào ứng dụng. Xem ví dụ: stats.stackexchange.com/questions/76376/ Từ
cbeleites hỗ trợ Monica

23

Có một lời giải thích hình học đơn giản. Hãy thử ví dụ sau trong R và nhớ lại rằng thành phần chính đầu tiên tối đa hóa phương sai.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA giúp PCA giúp

Hướng của phương sai tối đa là ngang và các lớp được phân tách theo chiều ngang.

PCA đau PCA đau

Hướng của phương sai cực đại là ngang, nhưng các lớp được phân tách theo chiều dọc


... Và trong ví dụ 2, chất tương tự được giám sát, PLS thực sự sẽ giúp ích.
cbeleites hỗ trợ Monica


3

Tôi thấy câu hỏi đã có câu trả lời được chấp nhận nhưng muốn chia sẻ bài viết này nói về việc sử dụng PCA để chuyển đổi tính năng trước khi phân loại .

Thông điệp mang về nhà (được hiển thị đẹp mắt trong câu trả lời của @ vqv) là:

Phân tích thành phần chính (PCA) dựa trên việc trích xuất các trục mà dữ liệu cho thấy độ biến thiên cao nhất. Mặc dù PCA xuất hiện trên dữ liệu của cơ sở dữ liệu trên cơ sở mới và có thể giúp ích rất nhiều cho việc học tập không giám sát, không có gì đảm bảo rằng các trục mới phù hợp với các tính năng phân biệt đối xử trong vấn đề phân loại (được giám sát).

Đối với những người quan tâm, nếu bạn xem Phần 4. Kết quả thử nghiệm , họ so sánh độ chính xác phân loại với 1) kỳ tích ban đầu, 2) tính năng biến đổi PCA và 3) kết hợp cả hai, đó là điều mới mẻ đối với tôi.

Kết luận của tôi:

Các phép biến đổi tính năng dựa trên PCA cho phép tóm tắt thông tin từ một số lượng lớn các tính năng thành một số thành phần hạn chế, tức là kết hợp tuyến tính của các tính năng gốc. Tuy nhiên, các thành phần chính thường khó diễn giải (không trực quan) và vì kết quả thực nghiệm trong bài viết này cho thấy chúng thường không cải thiện hiệu suất phân loại.

Tái bút: Tôi lưu ý rằng một trong những hạn chế của bài báo đã được liệt kê là thực tế là các tác giả đã giới hạn đánh giá hiệu suất của các bộ phân loại chỉ để 'tích lũy', có thể là một chỉ số hiệu suất rất thiên vị.


3

x1,x2,x3yx3=y

Giả sử bây giờ trong tập huấn thiết lập biến thể của y là rất nhỏ và cũng là biến thể của x3.

Bây giờ nếu bạn chạy PCA và bạn quyết định chỉ chọn 2 biến, bạn sẽ có được kết hợp x1x2. Vì vậy, thông tin củax3 đó là biến duy nhất có thể giải thích y bị mất

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.