Liệu nó có ý nghĩa để kết hợp PCA và LDA?


25

Giả sử tôi có một bộ dữ liệu cho một nhiệm vụ phân loại thống kê được giám sát, ví dụ, thông qua trình phân loại của Bayes. Bộ dữ liệu này bao gồm 20 tính năng và tôi muốn tổng hợp thành 2 tính năng thông qua các kỹ thuật giảm kích thước như Phân tích thành phần chính (PCA) và / hoặc Phân tích phân biệt tuyến tính (LDA).

Cả hai kỹ thuật này đều chiếu dữ liệu lên một không gian con tính năng nhỏ hơn: với PCA, tôi sẽ tìm thấy các hướng (thành phần) tối đa hóa phương sai trong tập dữ liệu (mà không cần xem xét nhãn lớp) và với LDA tôi sẽ có các thành phần tối đa hóa giữa tách lớp.

Bây giờ, tôi tự hỏi nếu, làm thế nào và tại sao các kỹ thuật này có thể được kết hợp và nếu nó có ý nghĩa.

Ví dụ:

  1. chuyển đổi tập dữ liệu qua PCA và chiếu nó vào không gian con 2D mới
  2. chuyển đổi (bộ dữ liệu đã được chuyển đổi PCA) qua LDA cho tối đa. tách lớp

hoặc là

  1. bỏ qua bước PCA và sử dụng 2 thành phần hàng đầu từ LDA.

hoặc bất kỳ sự kết hợp nào khác có ý nghĩa.


2
Không thể có phổ quát best practice. PCA và LDA, như các kỹ thuật giảm kích thước, rất khác nhau. Đôi khi mọi người làm PCA trước LDA, nhưng nó có nguy cơ vứt bỏ (với các PC bị loại bỏ) các khía cạnh phân biệt đối xử quan trọng. Câu hỏi mà bạn hỏi đã thực sự được hỏi trong một số hình thức nhiều lần trên trang web này. Vui lòng tìm kiếm "PCA LDA", để đọc những gì mọi người nói với nó.
ttnphns

@SebastianRaschka: Tôi tự hỏi liệu câu trả lời của tôi ở đây có hữu ích không, hoặc bạn có câu hỏi nào thêm về những vấn đề này không?
amip nói rằng Phục hồi lại

@amoeba xin lỗi, nó đã không thấy câu trả lời cho đến bây giờ - bằng cách nào đó nó đã trượt qua các vết nứt, cảm ơn bạn!

Câu trả lời:


44

Tóm tắt: PCA có thể được thực hiện trước LDA để thường xuyên hóa vấn đề và tránh sự phù hợp quá mức.

Hãy nhớ lại rằng các phép chiếu LDA được tính toán thông qua sự xuất hiện của , trong đó và nằm trong phạm vi giữa và giữa các lớp. Nếu có ít hơn điểm dữ liệu (trong đó là chiều của không gian của bạn, tức là số lượng tính năng / biến), thì sẽ là số ít và do đó không thể đảo ngược. Trong trường hợp này, đơn giản là không có cách nào để thực hiện LDA trực tiếp, nhưng nếu ai đó áp dụng PCA trước, nó sẽ hoạt động. @Aaron đã đưa ra nhận xét này trong các bình luận cho câu trả lời của anh ấy, và tôi đồng ý với điều đó (nhưng không đồng ý với câu trả lời của anh ấy nói chung, như bạn sẽ thấy bây giờ).Σ W Σ B N N Σ WΣW1ΣBΣWΣBNNΣW

Tuy nhiên, đây chỉ là một phần của vấn đề. Bức tranh lớn hơn là LDA rất dễ có xu hướng phù hợp với dữ liệu. Lưu ý rằng ma trận hiệp phương sai trong lớp được đảo ngược trong các tính toán LDA; đối với ma trận chiều cao đảo ngược là một hoạt động thực sự nhạy cảm, chỉ có thể được thực hiện một cách đáng tin cậy nếu ước tính của thực sự tốt. Nhưng ở kích thước cao , thực sự rất khó để có được ước tính chính xác về và trong thực tế, người ta thường phải có nhiều hơn điểm dữ liệu để bắt đầu hy vọng rằng ước tính đó là tốt. khác N » 1 Σ W N Σ WΣWN1ΣWNΣW sẽ gần như là số ít (tức là một số giá trị riêng sẽ rất thấp) và điều này sẽ gây ra sự phù hợp quá mức, tức là phân tách lớp gần như hoàn hảo trên dữ liệu đào tạo với hiệu suất cơ hội trên dữ liệu thử nghiệm.

Để giải quyết vấn đề này, người ta cần thường xuyên hóa vấn đề. Một cách để làm điều đó là sử dụng PCA để giảm tính chiều. Có những phương pháp khác, được cho là tốt hơn, ví dụ như phương pháp LDA (rLDA) thông thường chỉ đơn giản sử dụng với nhỏ thay vì (cái này được gọi là ước tính thu nhỏ ), nhưng làm PCA trước tiên về mặt khái niệm là cách tiếp cận đơn giản nhất và thường hoạt động tốt.λ Σ W(1λ)ΣW+λIλΣW

Hình minh họa

Dưới đây là một minh họa về vấn đề quá phù hợp. Tôi đã tạo 60 mẫu cho mỗi lớp trong 3 lớp từ phân phối Gaussian tiêu chuẩn (trung bình bằng 0, phương sai đơn vị) trong các không gian 10-, 50-, 100- và 150 chiều và áp dụng LDA để chiếu dữ liệu trên 2D:

Quá mức trong LDA

Lưu ý làm thế nào khi chiều tăng trưởng, các lớp trở nên tốt hơn và tách biệt tốt hơn, trong khi thực tế không có sự khác biệt giữa các lớp.

Chúng ta có thể thấy PCA giúp ngăn chặn tình trạng thừa như thế nào nếu chúng ta làm cho các lớp hơi tách biệt. Tôi đã thêm 1 vào tọa độ đầu tiên của lớp thứ nhất, 2 cho tọa độ đầu tiên của lớp thứ hai và 3 cho tọa độ đầu tiên của lớp thứ ba. Bây giờ chúng được tách ra một chút, xem phần phụ bên trái trên cùng:

Quá mức trong LDA và chính quy hóa với PCA

Quá mức (hàng trên cùng) vẫn còn rõ ràng. Nhưng nếu tôi xử lý trước dữ liệu bằng PCA, luôn giữ 10 chiều (hàng dưới cùng), thì quá mức sẽ biến mất trong khi các lớp vẫn cách nhau gần như tối ưu.

Tái bút Để tránh những hiểu lầm: Tôi không cho rằng PCA + LDA là một chiến lược chính quy hóa tốt (ngược lại, tôi sẽ khuyên bạn nên sử dụng rLDA), tôi chỉ đơn giản chứng minh rằng đó là một chiến lược khả thi .


Cập nhật. Chủ đề rất giống nhau đã được thảo luận trước đây trong các chủ đề sau với câu trả lời thú vị và toàn diện được cung cấp bởi @cbeleites:

Xem thêm câu hỏi này với một số câu trả lời hay:


Đó là một câu trả lời tuyệt vời, nghiêm túc! Và trong khi giải thích lý thuyết cơ bản, bạn cũng có một lời giải thích thực tế hay, một câu trả lời tuyệt vời khác cho bộ sưu tập tham khảo của tôi. Cảm ơn rất nhiều!

Tôi không hiểu cốt truyện thứ hai, dường như với tôi rằng các lớp không được phân tách với PCA trước LDA (hàng dưới cùng)
PierreE

@PierreE, trên ô thứ hai, các lớp được tạo sao cho chúng gần như không bị tách rời. Sự tách biệt thật nhỏ bé. Ở hàng dưới cùng, bạn có thể thấy sự tách biệt nhỏ này, nhưng bạn cần nhìn kỹ: tập trung vào các lớp màu xanh và đỏ và bạn sẽ thấy rằng một lớp được dịch sang trái và lớp khác sang phải.
amip nói phục hồi Monica

OK tôi hiểu rồi. Tôi quên rằng việc tách các lớp mà chúng ta thấy ở hàng trên cùng thực sự là quá mức. Cảm ơn
PierreE

1

Nếu bạn có một vấn đề hai lớp thì LDA sẽ đưa bạn xuống 1 chiều. Không có lý do để làm PCA đầu tiên.


1
Hừm, tôi không làm theo lý luận của bạn ở đây: Tôi khá chắc chắn rằng LDA KHÔNG đưa bạn xuống 1 chiều trừ khi bạn chọn. Nó phụ thuộc vào số lượng trình duyệt mà bạn muốn giữ lại sau khi sắp xếp các giá trị riêng bằng cách giảm các giá trị. Có lẽ tôi đang thiếu một cái gì đó ở đây ... nhưng tôi đã không đề cập đến số lượng lớp học. Giả sử chúng ta có 3 lớp với 20 tính năng mỗi lớp và tôi muốn chiếu chúng lên không gian con 3D.

1
Lý do duy nhất để làm PCA trước tiên là nếu ma trận hiệp phương sai trong lớp là số ít. Nếu bạn có 20 tính năng và ba lớp thì nó sẽ không phải là số ít nên đừng làm PCA trước.
Aaron

4
assume we have 3 classes. @SebastianRaschka: Sau đó, LDA sẽ cho phép bạn tối đa 2 chức năng phân biệt đối xử. Số lượng giá trị riêng trong LDA là min (num_groups-1, num_features).
ttnphns

@Sebastian Số lượng các chức năng phân biệt đối xử bạn chọn từ LDA tùy thuộc vào những gì bạn muốn làm với nó. Là một biến đổi không gian, nó giống như PCA "được giám sát" và bạn chọn bao nhiêu tùy thích. Là một siêu phẳng phương pháp phân tách, các siêu phẳng là, theo định nghĩa, trong chiều hướng N-1. Mặc dù vậy, tôi có thể hỏi một câu hỏi về chủ đề đó để biết thêm thông tin, vì tôi vẫn không hiểu min(num_groups-1,num_features)nguồn gốc từ đâu ...
Matthieu

1
@Matthieu Tôi tin rằng đó là do ma trận phân tán giữa lớp, bạn tạo nó bằng cách thêm ma trận c (c = số lớp) có thứ hạng 1 trở xuống. Vì vậy, bạn chỉ có thể có giá trị riêng c-1 khác không tối đa.
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.