Ba phiên bản phân tích phân biệt: sự khác biệt và cách sử dụng chúng


26

Bất cứ ai cũng có thể giải thích sự khác biệt và đưa ra ví dụ cụ thể làm thế nào để sử dụng ba phân tích này?

  • LDA - Phân tích phân biệt tuyến tính
  • FDA - Phân tích phân biệt đối xử của Fisher
  • QDA - Phân tích phân biệt đối xử bậc hai

Tôi đã tìm kiếm ở khắp mọi nơi, nhưng không thể tìm thấy các ví dụ thực tế với các giá trị thực để xem cách các phân tích này được sử dụng và tính toán dữ liệu, chỉ có rất nhiều công thức khó hiểu mà không có ví dụ thực tế nào. Khi tôi cố gắng hiểu, thật khó để phân biệt phương trình / công thức nào thuộc về LDA và thuộc về FDA.

Ví dụ: giả sử có dữ liệu như vậy:

x1 x2 class
1  2  a
1  3  a
2  3  a
3  3  a
1  0  b
2  1  b
2  2  b

Và hãy nói một số dữ liệu thử nghiệm:

x1 x2
2  4
3  5
3  6

Vậy làm thế nào để sử dụng dữ liệu đó với cả ba cách tiếp cận này? Tốt nhất nên xem cách tính toán mọi thứ bằng tay, không sử dụng một số gói toán tính toán mọi thứ phía sau hậu trường.

PS Tôi chỉ tìm thấy hướng dẫn này: http://people.revoledu.com/kardi/tutorial/LDA/LDA.html#LDA . Nó cho thấy làm thế nào để sử dụng LDA.

Câu trả lời:


23

"Phân tích phân biệt đối xử của Fisher" chỉ đơn giản là LDA trong tình huống gồm 2 lớp. Khi chỉ có 2 lớp tính toán bằng tay là khả thi và phân tích có liên quan trực tiếp đến Đa hồi quy. LDA là phần mở rộng trực tiếp của ý tưởng của Fisher về tình hình của bất kỳ số lớp nào và sử dụng các thiết bị đại số ma trận (như eigendecro) để tính toán nó. Vì vậy, thuật ngữ "Phân tích phân biệt đối xử của Fisher" có thể được coi là lỗi thời ngày nay. "Phân tích phân biệt tuyến tính" nên được sử dụng thay thế. Xem thêm . Phân tích phân biệt đối xử với 2+ lớp (đa lớp) là hợp quy bởi thuật toán của nó (trích xuất các chất dicriminants như các biến thể chính tắc); thuật ngữ hiếm "Phân tích phân biệt đối xử Canonical"

Fisher đã sử dụng cái được gọi là "Hàm phân loại Fisher" để phân loại các đối tượng sau khi hàm phân biệt đã được tính toán. Ngày nay, cách tiếp cận chung hơn của Bayes được sử dụng trong quy trình LDA để phân loại các đối tượng.

Theo yêu cầu của bạn để giải thích về LDA, tôi có thể gửi cho bạn các câu trả lời của tôi: trích xuất trong LDA , phân loại trong LDA , LDA trong số các thủ tục liên quan . Ngoài này , này , này các câu hỏi và câu trả lời.

Giống như ANOVA yêu cầu một giả định về phương sai bằng nhau, LDA yêu cầu một giả định về ma trận phương sai hiệp phương sai bằng nhau (giữa các biến đầu vào) của các lớp. Giả định này rất quan trọng đối với giai đoạn phân loại. Nếu các ma trận khác nhau đáng kể, các quan sát sẽ có xu hướng được gán cho lớp nơi độ biến thiên lớn hơn. Để khắc phục vấn đề, QDA đã được phát minh. QDA là một sửa đổi của LDA, cho phép tính không đồng nhất ở trên của ma trận hiệp phương sai của các lớp.

Nếu bạn có tính không đồng nhất (ví dụ như được phát hiện bởi thử nghiệm M của Box) và bạn không có QDA trong tay, bạn vẫn có thể sử dụng LDA trong chế độ sử dụng ma trận hiệp phương sai riêng lẻ (thay vì ma trận gộp) của phân biệt đối xử trong phân loại . Điều này phần nào giải quyết vấn đề, mặc dù kém hiệu quả hơn trong QDA, bởi vì - như chỉ ra - đây là các ma trận giữa các phân biệt và không phải giữa các biến ban đầu (ma trận khác nhau).

Hãy để tôi phân tích dữ liệu ví dụ của bạn cho chính mình.


Trả lời câu trả lời và bình luận của @ zyxue

LDA là những gì bạn xác định FDA là trong câu trả lời của bạn. Đầu tiên LDA trích xuất các cấu trúc tuyến tính (được gọi là phân biệt đối xử) để tối đa hóa khoảng cách giữa đến bên trong và sau đó sử dụng các cấu trúc để thực hiện phân loại (gaussian). Nếu (như bạn nói) LDA không bị ràng buộc với nhiệm vụ trích xuất các phân biệt đối xử LDA dường như chỉ là một trình phân loại gaussian, thì không cần tên "LDA" nào cả.

SwSws là như nhau, hiệp phương sai nói trong lớp đều giống nhau, bản sắc; quyền sử dụng chúng trở nên tuyệt đối.)

Trình phân loại Gaussian (giai đoạn thứ hai của LDA) sử dụng quy tắc Bayes để gán các quan sát cho các lớp bởi các phân biệt đối xử. Kết quả tương tự có thể được thực hiện thông qua cái gọi là các hàm phân loại tuyến tính Fisher sử dụng các tính năng gốc trực tiếp. Tuy nhiên, cách tiếp cận của Bayes dựa trên các phân biệt đối xử hơi chung chung ở chỗ nó sẽ cho phép sử dụng các ma trận hiệp phương sai phân biệt lớp riêng biệt, ngoài cách sử dụng mặc định, một cách gộp. Ngoài ra, nó sẽ cho phép phân loại dựa trên một tập hợp các phân biệt đối xử.

Khi chỉ có hai lớp, cả hai giai đoạn của LDA có thể được mô tả cùng nhau trong một lần duy nhất vì "trích xuất độ trễ" và "phân loại quan sát" giảm sau đó đến cùng một nhiệm vụ.


Tôi nghĩ rằng tôi nhớ việc học trong khóa học máy của mình rằng LDA gaussian 2 lớp giả định mật độ gaussian và sử dụng quy tắc MPE Bayes trong khi LDA của Fisher không đưa ra giả định gaussian và thay đổi tiêu chí tối ưu để tối đa hóa SNR. Đây có phải là phù hợp với câu trả lời của bạn?
Austin

1
@Jake Quan tâm đến điều này là tốt, trong câu trả lời này: stats.stackexchange.com/questions/87975/ , nó được tuyên bố rằng kết quả là như nhau. Bình luận?
Dole

Bạn có chắc chắn "" Phân tích phân biệt đối xử của Fisher "chỉ đơn giản là LDA trong tình huống 2 lớp"?
zyxue

@zyxue, chắc chắn 95%, nhưng dù sao tôi cũng thấy thuật ngữ này đã lỗi thời. Vui lòng xem chú thích của tôi trong stats.stackexchange.com/q/190806/3277 .
ttnphns

@ ttnphns, fyi, theo youtu.be/hGKt0yy9q_E?t=3010 , FDA và LDA thường được trộn lẫn trong tài liệu. Một cách để phân biệt hai loại này, FDA là một phương pháp trích xuất tính năng trong khi LDA và QDA là kỹ thuật phân loại.
zyxue

1

Tôi thấy khó đồng ý rằng FDA là LDA cho hai lớp như @ttnphns đề xuất.

Tôi đề nghị hai bài giảng rất nhiều thông tin và hay về chủ đề này của Giáo sư Ali Ghodsi:

  1. LDA & QDA . Ngoài ra, trang 108 của cuốn sách Các yếu tố của học thống kê ( pdf ) có mô tả về LDA phù hợp với bài giảng.
  2. FDA

Đối với tôi, LDA và QDA tương tự nhau vì cả hai đều là các kỹ thuật phân loại với các giả định Gaussian. Một sự khác biệt lớn giữa hai là LDA giả định các ma trận hiệp phương sai tính năng của cả hai lớp là như nhau, dẫn đến một ranh giới quyết định tuyến tính. Ngược lại, QDA ít nghiêm ngặt hơn và cho phép các ma trận hiệp phương sai tính năng khác nhau cho các lớp khác nhau, dẫn đến một ranh giới quyết định bậc hai. Xem hình dưới đây từ scikit-learn để biết ý tưởng về ranh giới quyết định bậc hai trông như thế nào.

Một số ý kiến ​​về các ô con :

  • Hàng trên cùng: khi các ma trận hiệp phương sai thực sự giống nhau trong dữ liệu, LDA và QDA dẫn đến cùng một ranh giới quyết định.
  • Hàng dưới cùng: khi các ma trận hiệp phương sai khác nhau, LDA dẫn đến hiệu suất kém khi giả định của nó trở nên không hợp lệ, trong khi QDA thực hiện phân loại tốt hơn nhiều.

Mặt khác, FDA là một loài rất khác biệt, không liên quan gì đến giả định Gaussion. Những gì FDA cố gắng làm là tìm ra một phép biến đổi tuyến tính để tối đa hóa khoảng cách trung bình giữa các lớp trong khi giảm thiểu phương sai trong lớp . Bài giảng thứ 2 giải thích ý tưởng này rất hay. Trái ngược với LDA / QDA, FDA không thực hiện phân loại, mặc dù các tính năng thu được sau khi chuyển đổi được tìm thấy bởi FDA có thể được sử dụng để phân loại, ví dụ như sử dụng LDA / QDA hoặc SVM hoặc các tính năng khác.


2
Xin vui lòng xem trả lời của tôi cho câu trả lời của bạn trong câu trả lời của tôi. Tôi chưa xem bài học video mà bạn liên kết đến, vì vậy không thể nói nếu tôi có thể đồng ý với nó. Tôi không đồng ý với cách giải thích / định nghĩa (của LDA vs FDA) mà bạn đưa ra trong câu trả lời. Nhưng điều đó - định nghĩa của hai thuật ngữ - không phải là chủ đề rất quan trọng đối với tôi. Điều quan trọng hơn là phải hiểu làm thế nào tất cả hoạt động.
ttnphns

2
Nếu theo cách hiểu của bạn FDA doesn't do classification, although the features obtained after transformation found by FDA could be used for classificationthì tôi sẽ nói đó là cái mà tôi gọi là "giai đoạn trích xuất LDA". Tất nhiên, các tính năng được trích xuất này (các chức năng phân biệt đối xử) - bạn có thể sử dụng chúng theo ý muốn. Trong phân loại LDA tiêu chuẩn, chúng được sử dụng làm phân loại gaussian.
ttnphns

Tôi tò mò bạn đã đọc " LDA đầu tiên trích xuất các cấu trúc tuyến tính (được gọi là phân biệt đối xử)" ở đâu? Tôi nghĩ rằng nó được gọi là phân biệt tuyến tính bởi vì ranh giới quyết định là tuyến tính, là kết quả của việc giả định rằng ma trận hiệp phương sai tính năng là giống nhau cho các lớp khác nhau. Tương tự, QDA có ranh giới quyết định bậc hai. Chúng cũng được hiển thị trong các số liệu nhúng. Bên cạnh các video trên, tôi đang tham khảo Các yếu tố của học thống kê ( pdf . Tại trang 108, nó bắt đầu mô tả LDA mà không đề cập đến việc trích xuất tính năng.
zyxue

Dù sao, tôi nghĩ chúng ta đang nói về cùng một thứ, nhưng đó chỉ là một cách đặt tên. Bạn nghĩ rằng LDA = Feature_extraction + phân loại, nhưng dựa trên tài liệu tham khảo của tôi, LDA chỉ là về phân loại. Phần Feature_extraction ở đây được gọi là FDA. Điều quan trọng , không có gì để làm ở đây với số lượng các lớp học ở đây. Cả LDA và FDA đều có thể đối phó với hơn hai lớp.
zyxue

Chúng tôi có thể dính vào các định nghĩa chúng tôi cũng được sử dụng. Dù sao, người ta cần lưu ý rằng "cấu trúc tuyến tính" và "ranh giới quyết định tuyến tính" có liên quan với nhau, trong bối cảnh DA chúng là về cùng một thứ. Nhìn vào bức tranh của bạn với đường viền quyết định là đường thẳng. Khi bạn chuyển đổi các lớp quá, các hình elip thành hình cầu, hàm phân biệt sẽ chính xác vuông góc với đường viền. Trên thực tế, điều "chính" ở đây là chức năng phân biệt đối xử, một biến số, một chiều, trong khi ranh giới quyết định là đường viền trong không gian phụ thuộc vào hướng của nó. Ranh giới tháng 12 là "thứ cấp".
ttnphns
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.