Ý nghĩa của phân tích thành phần chính, eigenvector & eigenvalues


976

Trong lớp nhận dạng mẫu ngày nay, giáo sư của tôi đã nói về PCA, eigenvector và eigenvalues.

Tôi hiểu toán học của nó. Nếu tôi được yêu cầu tìm giá trị bản địa, v.v. Tôi sẽ làm chính xác như một cái máy. Nhưng tôi đã không hiểu nó. Tôi không hiểu mục đích của nó. Tôi không cảm nhận được nó.

Tôi tin tưởng mạnh mẽ vào trích dẫn sau:

Bạn không thực sự hiểu điều gì trừ khi bạn có thể giải thích nó với bà của bạn. - Albert Einstein

Chà, tôi không thể giải thích những khái niệm này cho một giáo dân hay bà.

  1. Tại sao PCA, eigenvector & eigenvalues? Sự cần thiết cho những khái niệm này là gì?
  2. Làm thế nào bạn sẽ giải thích những điều này với một giáo dân?

95
Câu hỏi hay. Tôi đồng ý với các trích dẫn là tốt. Tôi tin rằng có nhiều người trong lĩnh vực thống kê và toán học rất thông minh và có thể đi sâu vào công việc của họ, nhưng không hiểu sâu sắc những gì họ đang làm. Hoặc họ làm, nhưng không có khả năng giải thích nó cho người khác. Tôi đi ra ngoài để cung cấp câu trả lời ở đây bằng tiếng Anh đơn giản, và đặt câu hỏi yêu cầu câu trả lời bằng tiếng Anh.
Neil McGuigan

7
Điều này đã được hỏi trên trang Toán học vào tháng 7, nhưng cũng không được và nó không nhận được nhiều câu trả lời (không đáng ngạc nhiên, với sự tập trung khác nhau ở đó). math.stackexchange.com/questions/1146/ Mạnh
whuber

6
Tương tự như lời giải thích của Zuur et al trong Phân tích dữ liệu sinh thái nơi họ nói về việc chiếu tay của bạn lên một máy chiếu trên cao. Bạn tiếp tục xoay tay để hình chiếu trên tường trông khá giống với những gì bạn nghĩ rằng một bàn tay sẽ trông như thế nào.
Roman Luštrik

12
Câu hỏi này dẫn tôi đến một bài báo hay, và mặc dù tôi nghĩ đó là một câu trích dẫn hay nhưng nó không phải từ Einstein. Đây là một sự phân phối sai lầm phổ biến, và câu trích dẫn ban đầu rất có thể là của Ernest Rutherford, người đã nói, "Nếu bạn không thể giải thích vật lý của mình cho một người được bảo lãnh thì có lẽ đó không phải là vật lý rất tốt." Tất cả cùng cảm ơn vì đã bắt đầu chủ đề này.
gavaletz

23
Alice Calaprice, Einstein có thể trích dẫn cuối cùng , Princeton UP 2011 đánh dấu trích dẫn ở đây là một trong nhiều "Có lẽ không phải bởi Einstein". Xem tr.482.
Nick Cox

Câu trả lời:


1293

Hãy tưởng tượng một bữa tối gia đình lớn, nơi mọi người bắt đầu hỏi bạn về PCA. Đầu tiên bạn giải thích nó với bà cố của bạn; rồi đến bà ngoại; sau đó đến mẹ của bạn; sau đó đến người phối ngẫu của bạn; cuối cùng, cho con gái của bạn (một nhà toán học). Mỗi lần người bên cạnh ít hơn một cư sĩ. Đây là cách cuộc trò chuyện có thể đi.

Bà cố: Tôi nghe nói bạn đang học "Pee-See-Ay". Tôi tự hỏi đó là gì ...

Bạn: Ah, đó chỉ là một phương pháp tóm tắt một số dữ liệu. Hãy nhìn xem, chúng ta có một số chai rượu vang đang đứng ở đây trên bàn. Chúng ta có thể mô tả mỗi loại rượu bằng màu sắc của nó, bằng độ mạnh của nó, bao nhiêu tuổi, v.v. (xem phần trực quan rất đẹp này về các tính chất của rượu được lấy từ đây ). Chúng tôi có thể soạn một danh sách toàn bộ các đặc điểm khác nhau của mỗi loại rượu trong hầm của chúng tôi. Nhưng nhiều người trong số họ sẽ đo các thuộc tính liên quan và do đó sẽ là dư thừa. Nếu vậy, chúng ta sẽ có thể tóm tắt mỗi loại rượu với ít đặc điểm hơn! Đây là những gì PCA làm.

Bà: Điều này thật thú vị! Vì vậy, điều PCA này kiểm tra những đặc điểm nào là dư thừa và loại bỏ chúng?

Bạn: Câu hỏi tuyệt vời, bà ạ! Không, PCA không chọn một số đặc điểm và loại bỏ các đặc điểm khác. Thay vào đó, nó xây dựng một số đặc điểm mới hóa ra để tóm tắt danh sách các loại rượu vang của chúng tôi. Tất nhiên những đặc điểm mới này được xây dựng bằng cách sử dụng những cái cũ; ví dụ, một đặc tính mới có thể được tính là tuổi rượu trừ mức độ axit của rượu hoặc một số kết hợp khác như thế (chúng tôi gọi chúng là kết hợp tuyến tính ).

Trong thực tế, PCA tìm thấy các đặc điểm tốt nhất có thể, những đặc điểm tóm tắt danh sách các loại rượu cũng như chỉ có thể (trong số tất cả các kết hợp tuyến tính có thể hiểu được). Đây là lý do tại sao nó rất hữu ích.

Mẹ: Hmmm, điều này chắc chắn nghe tốt, nhưng tôi không chắc là tôi hiểu. Bạn thực sự có ý nghĩa gì khi bạn nói rằng những đặc điểm PCA mới này "tóm tắt" danh sách các loại rượu vang?

Bạn: Tôi đoán tôi có thể đưa ra hai câu trả lời khác nhau cho câu hỏi này. Câu trả lời đầu tiên là bạn đang tìm kiếm một số tính chất rượu vang (đặc điểm) khác biệt mạnh mẽ giữa các loại rượu vang. Thật vậy, hãy tưởng tượng rằng bạn nghĩ ra một tài sản giống với hầu hết các loại rượu vang. Điều này sẽ không hữu ích lắm phải không? Rượu vang rất khác nhau, nhưng tài sản mới của bạn làm cho tất cả chúng trông giống nhau! Đây chắc chắn sẽ là một bản tóm tắt xấu. Thay vào đó, PCA tìm kiếm các thuộc tính thể hiện càng nhiều biến thể giữa các loại rượu càng tốt.

Câu trả lời thứ hai là bạn tìm kiếm các đặc tính cho phép bạn dự đoán hoặc "tái cấu trúc" các đặc tính rượu ban đầu. Một lần nữa, hãy tưởng tượng rằng bạn đến với một tài sản không liên quan đến các đặc điểm ban đầu; nếu bạn chỉ sử dụng tài sản mới này, không có cách nào bạn có thể xây dựng lại tài sản ban đầu! Điều này, một lần nữa, sẽ là một bản tóm tắt xấu. Vì vậy, PCA tìm kiếm các thuộc tính cho phép tái cấu trúc các đặc điểm ban đầu tốt nhất có thể.

Đáng ngạc nhiên, hóa ra hai mục tiêu này là tương đương và vì vậy PCA có thể giết chết hai con chim bằng một hòn đá.

Người phối ngẫu: Nhưng em yêu, hai "mục tiêu" của PCA nghe có vẻ rất khác nhau! Tại sao chúng sẽ tương đương?

Bạn: Hừm. Có lẽ tôi nên vẽ một chút (lấy khăn ăn và bắt đầu viết nguệch ngoạc) . Chúng ta hãy chọn hai đặc điểm của rượu, có lẽ là độ đậm của rượu và nồng độ cồn - Tôi không biết chúng có tương quan với nhau không, nhưng hãy tưởng tượng rằng chúng là. Đây là một biểu đồ phân tán của các loại rượu khác nhau có thể trông như thế nào:

Dữ liệu mẫu của PCA

Mỗi dấu chấm trong "đám mây rượu vang" này hiển thị một loại rượu cụ thể. Bạn thấy rằng hai thuộc tính ( xy trên hình này) có mối tương quan với nhau. Một thuộc tính mới có thể được xây dựng bằng cách vẽ một đường xuyên qua trung tâm của đám mây rượu này và chiếu tất cả các điểm lên đường này. Thuộc tính mới này sẽ được cung cấp bởi một tổ hợp tuyến tính w1x+w2y , trong đó mỗi dòng tương ứng với một số giá trị cụ thể của w1w2 .

Bây giờ hãy nhìn vào đây thật cẩn thận - đây là cách các hình chiếu này trông giống như các đường khác nhau (các chấm đỏ là các hình chiếu của các chấm màu xanh):

Hoạt hình PCA: lỗi phương sai và tái thiết

Như tôi đã nói trước đây, PCA sẽ tìm ra dòng "tốt nhất" theo hai tiêu chí khác nhau về đâu là "tốt nhất". Đầu tiên, sự thay đổi của các giá trị dọc theo dòng này phải là tối đa. Hãy chú ý đến cách "lây lan" (chúng tôi gọi đó là "phương sai") của các chấm đỏ thay đổi trong khi đường quay; bạn có thể thấy khi nó đạt đến mức tối đa? Thứ hai, nếu chúng ta xây dựng lại hai đặc điểm ban đầu (vị trí của một chấm màu xanh) từ một đặc điểm mới (vị trí của một chấm đỏ), lỗi tái cấu trúc sẽ được đưa ra bởi độ dài của đường màu đỏ kết nối. Quan sát chiều dài của các đường màu đỏ này thay đổi như thế nào trong khi đường quay; bạn có thể thấy khi tổng chiều dài đạt tối thiểu?

Nếu bạn nhìn chằm chằm vào hoạt hình này một thời gian, bạn sẽ nhận thấy rằng "phương sai tối đa" và "lỗi tối thiểu" đạt được cùng một lúc, cụ thể là khi dòng chỉ vào dấu tick màu đỏ mà tôi đã đánh dấu trên cả hai mặt của đám mây rượu vang . Dòng này tương ứng với tài sản rượu vang mới sẽ được PCA xây dựng.

Nhân tiện, PCA là viết tắt của "phân tích thành phần chính" và tài sản mới này được gọi là "thành phần chính đầu tiên". Và thay vì nói "tài sản" hoặc "đặc tính", chúng ta thường nói "tính năng" hoặc "biến".

Con gái: Rất đẹp, papa! Tôi nghĩ rằng tôi có thể thấy lý do tại sao hai mục tiêu mang lại kết quả như nhau: về cơ bản là do định lý Pythagoras, phải không? Dù sao, tôi nghe nói rằng PCA bằng cách nào đó có liên quan đến người bản địa và giá trị bản địa; Họ ở đâu trên bức tranh này?

Bạn: Quan sát rực rỡ. Về mặt toán học, sự lan rộng của các chấm đỏ được đo bằng khoảng cách bình phương trung bình từ tâm đám mây rượu đến từng chấm đỏ; như bạn đã biết, nó được gọi là phương sai . Mặt khác, tổng sai số tái thiết được đo bằng độ dài bình phương trung bình của các đường màu đỏ tương ứng. Nhưng vì góc giữa các vạch đỏ và vạch đen luôn là 90, tổng của hai đại lượng này bằng khoảng cách bình phương trung bình giữa tâm của đám mây rượu và mỗi chấm màu xanh; đây chính xác là định lý Pythagoras. Tất nhiên khoảng cách trung bình này không phụ thuộc vào hướng của đường màu đen, do đó phương sai càng cao thì sai số càng thấp (vì tổng của chúng không đổi). Đối số lượn sóng tay này có thể được thực hiện chính xác ( xem tại đây ).

Nhân tiện, bạn có thể tưởng tượng rằng đường màu đen là một thanh rắn và mỗi đường màu đỏ là một lò xo. Năng lượng của lò xo tỷ lệ thuận với chiều dài bình phương của nó (điều này được biết đến trong vật lý là định luật Hooke), do đó, thanh sẽ tự định hướng như để giảm thiểu tổng khoảng cách các bình phương này. Tôi đã thực hiện một mô phỏng về việc nó sẽ trông như thế nào, với sự hiện diện của một số ma sát nhớt:

Hoạt hình PCA: con lắc

Về eigenvector và eigenvalues. Bạn biết ma trận hiệp phương sai là gì; trong ví dụ của tôi nó là một 2×2 ma trận được cho bởi

(1.070.630.630.64).
Điều này có nghĩa là phương sai của biến x1.07 , phương sai của biến y0.64 và hiệp phương sai giữa chúng là 0.63 . Vì nó là một ma trận đối xứng hình vuông, nó có thể được chéo hóa bằng cách chọn một hệ tọa độ trực giao mới, được đưa ra bởi các hàm riêng của nó (tình cờ, đây được gọi là định lý phổ); giá trị riêng tương ứng sau đó sẽ được đặt trên đường chéo. Trong hệ tọa độ mới này, ma trận hiệp phương sai là đường chéo và trông giống như sau:
(1.52000.19),
có nghĩa là mối tương quan giữa các điểm bây giờ bằng không. Rõ ràng là phương sai của bất kỳ phép chiếu nào sẽ được đưa ra bởi trung bình trọng số của các giá trị riêng (tôi chỉ phác họa trực giác ở đây). Do đó, phương sai tối đa có thể có ( 1.52 ) sẽ đạt được nếu chúng ta chỉ cần thực hiện phép chiếu trên trục tọa độ đầu tiên. Theo sau đó, hướng của thành phần chính đầu tiên được đưa ra bởi hàm riêng đầu tiên của ma trận hiệp phương sai. ( Thêm chi tiết tại đây. )

Bạn cũng có thể thấy điều này trên hình xoay: có một đường màu xám ở đó trực giao với màu đen; cùng nhau chúng tạo thành một khung tọa độ quay. Cố gắng chú ý khi các chấm màu xanh trở nên không tương quan trong khung xoay này. Câu trả lời, một lần nữa, là nó xảy ra chính xác khi đường màu đen chỉ vào dấu vết màu đỏ tươi. Bây giờ tôi có thể cho bạn biết làm thế nào tôi tìm thấy chúng: chúng đánh dấu hướng của hàm riêng đầu tiên của ma trận hiệp phương sai, trong trường hợp này bằng (0.81,0.58) .


Theo yêu cầu phổ biến, tôi đã chia sẻ mã Matlab để tạo các hình động ở trên .


79
+1 Câu chuyện hay và minh họa. ...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...Tôi sẽ tiếp tục: và sau bữa tối - với chính mình. Và ở đây bạn đột nhiên bị mắc kẹt ...
ttnphns

68
Tôi hoàn toàn thích những minh họa bạn thực hiện cho những câu trả lời này.
Shadowtalker 10/03/2015

57
Tôi thường chỉ duyệt qua Xác thực chéo để đọc mọi thứ, nhưng tôi chưa bao giờ có lý do để tạo tài khoản ... chủ yếu là vì các loại câu hỏi ở đây nằm ngoài chuyên môn của tôi và tôi thực sự không thể trả lời được. Tôi thường chỉ ở trên StackOverflow và tôi đã ở trên mạng StackExchange khoảng một năm nay. Tuy nhiên, tôi chỉ quyết định tạo một tài khoản hôm nay chủ yếu để nâng cấp bài đăng của bạn. Đây có lẽ là bản giải trình tốt nhất về PCA mà tôi từng đọc và tôi đã đọc rất nhiều. Cảm ơn bạn vì bài đăng tuyệt vời này - cách kể chuyện tuyệt vời, đồ họa và thật dễ đọc! +1
rayryeng

14
Lưu ý cho bản thân tôi: câu trả lời của tôi hiện có 100 lượt upvote, câu trả lời của JDLong có 220 lượt upvote; Nếu chúng ta giả định tăng trưởng liên tục thì mỏ của tôi có 100 upvote / năm và của anh ta có 40 upvote / năm. Hay đúng hơn là 55 / năm nếu được tính kể từ khi nó vượt qua 100 lần nâng cấp [có huy hiệu vàng] vào tháng 1 năm 2014. Điều này có nghĩa là tôi sẽ bắt kịp trong 2,5--3 năm, khoảng cuối năm 2018. Hãy xem :-)
amoeba

3
Lưu ý cho bản thân tôi: Tôi phải cập nhật ước tính của mình. Một tháng sau, câu trả lời này đã nhận được 18 lượt upvote so với 5 cho JDLong. Điều này cho thấy rằng tôi có thể bắt kịp dưới một năm kể từ bây giờ. Thật thú vị, 5 / tháng rất gần với ước tính trên 55 / năm của tôi, nhưng 18 / tháng là hơn hai lần trên 100 / năm. Vì câu trả lời của tôi không thay đổi, có vẻ như việc đến vị trí thứ hai đã đẩy nhanh quá trình nâng cấp (có lẽ là do khả năng hiển thị tăng lên).
amip

376

Bản thảo "Hướng dẫn về phân tích thành phần chính" của Lindsay I Smith thực sự đã giúp tôi tìm kiếm PCA. Tôi nghĩ nó vẫn quá phức tạp để giải thích với bà của bạn, nhưng nó không tệ. Bạn nên bỏ qua một vài bit đầu tiên để tính toán eigens, v.v. Nhảy xuống ví dụ trong chương 3 và xem các biểu đồ.

Tôi có một số ví dụ khi tôi làm việc thông qua một số ví dụ về đồ chơi để tôi có thể hiểu hồi quy tuyến tính PCA so với OLS. Tôi sẽ cố gắng đào chúng lên và đăng chúng.

chỉnh sửa: Bạn không thực sự hỏi về sự khác biệt giữa Bình phương tối thiểu thông thường (OLS) và PCA nhưng vì tôi đã ghi chú lại nên tôi đã viết một bài blog về nó . Phiên bản rất ngắn là OLS của y ~ x giảm thiểu lỗi vuông góc với trục độc lập như thế này (các đường màu vàng là ví dụ về hai lỗi):

văn bản thay thế

Nếu bạn đã hồi quy x ~ y (trái ngược với y ~ x trong ví dụ đầu tiên), nó sẽ giảm thiểu lỗi như thế này:

văn bản thay thế

và PCA có hiệu quả giảm thiểu lỗi trực giao cho chính mô hình, như vậy:

văn bản thay thế

Quan trọng hơn, như những người khác đã nói, trong tình huống bạn có BUNCH WHOLE của các biến độc lập, PCA giúp bạn tìm ra sự kết hợp tuyến tính nào của các biến này là quan trọng nhất. Các ví dụ trên chỉ giúp hình dung thành phần chính đầu tiên trông như thế nào trong một trường hợp thực sự đơn giản.

Trong bài đăng trên blog của tôi, tôi có mã R để tạo các biểu đồ trên và để tính thành phần chính đầu tiên. Có thể đáng để chơi với để xây dựng trực giác của bạn xung quanh PCA. Tôi có xu hướng không thực sự sở hữu một cái gì đó cho đến khi tôi viết mã tái tạo nó. 


9
Cuộc gọi tốt trên bản thảo Lindsay I Smith - chỉ cần đọc nó ngày hôm nay; rất hữu ích
Phim hài

7
Vậy PCA có tương đương với Total Least Squares nếu nó tối ưu hóa khoảng cách trực giao từ các điểm đến đường thẳng phù hợp?
Marcin

3
@Marcin - điều này đúng. Bạn có thể tái cụm từ PCA như việc tìm kiếm thứ hạng tốt nhất ước tính ( 1 m p ) của bản gốc p biến ( x i jm1mpp ), với hàm mục tiêu của Σ n i = 1 Σ p j = 1 ( x i j - x i j ) 2 . Chọn số lượng PC tương đương với việc chọn thứ hạng của các dự đoán. x^iji=1,,nj=1,,pi=1nj=1p(xijx^ij)2
xác suất

3
Lỗi toán học nhỏ ở Smith: "tất cả các hàm riêng của ma trận đều vuông góc ... cho dù bạn có bao nhiêu chiều" chỉ áp dụng cho ma trận đối xứng, đây là một ma trận cách nhau 45 độ . Smith lưu ý sự đối xứng của ma trận hiệp phương sai trước đó, nhưng không phải là hàm ý - tính đối xứng đảm bảo các hàm nriêng vuông góc. Trên thực tế, không phải tất cả các n x nma trận thực thậm chí còn có các giá trị riêng thực (ví dụ: {{0,1}, {- 1,0}}) và trong số đó, không phải tất cả đều có ncác hàm riêng độc lập (ví dụ: {{1,1}, {0 , 1}})! Vấn đề đối xứng!
Cá bạc

8
Là nhà toán học dạy người bản địa, tôi phải co rúm người lại khi đọc bản thảo Lindsay Smith này. "... vectơ kết quả là bội số nguyên của ..." - điểm cần đề cập đến số nguyên là gì? Một hàm riêng của ma trận A là bất kỳ vectơ X sao cho AX là bội của X. Không phải là bội số nguyên, chỉ là bội số! Bội số không nguyên cũng ok! Jeez tại sao tạo ra sự nhầm lẫn không cần thiết ở đâu là không?
Dmitri Zaitsev

144

Trước tiên hãy làm (2). PCA phù hợp với một ellipsoid cho dữ liệu. Một ellipsoid là một khái quát đa chiều của các hình dạng hình cầu bị biến dạng như xì gà, bánh kếp và trứng. Tất cả đều được mô tả gọn gàng bởi các hướng và độ dài của trục chính (bán) của chúng, chẳng hạn như trục của điếu xì gà hoặc trứng hoặc mặt phẳng của bánh kếp. Cho dù ellipsoid được biến như thế nào, các hàm riêng đều chỉ theo các hướng chính đó và các giá trị riêng cho bạn độ dài. Các giá trị riêng nhỏ nhất tương ứng với các hướng mỏng nhất có ít biến thiên nhất, do đó, bỏ qua chúng (làm sập chúng phẳng) sẽ mất tương đối ít thông tin: đó là PCA.

(1) Ngoài việc đơn giản hóa (ở trên), chúng tôi có nhu cầu mô tả, trực quan hóa và hiểu biết sâu sắc. Có thể giảm kích thước là một điều tốt : nó giúp mô tả dữ liệu dễ dàng hơn và, nếu chúng ta may mắn giảm chúng xuống còn ba hoặc ít hơn, hãy để chúng tôi vẽ một bức tranh. Đôi khi chúng ta thậm chí có thể tìm thấy những cách hữu ích để diễn giải sự kết hợp của dữ liệu được biểu thị bằng tọa độ trong hình, điều này có thể đủ khả năng hiểu rõ về hành vi chung của các biến.


Hình trên cho thấy một số đám mây gồm điểm, cùng với các hình elip chứa 50% của mỗi đám mây và các trục được căn chỉnh theo các hướng chính. Trong hàng đầu tiên, các đám mây về cơ bản có một thành phần chính, bao gồm 95% của tất cả các phương sai: đây là các hình dạng xì gà. Ở hàng thứ hai, các đám mây về cơ bản có hai thành phần chính, một thành phần có kích thước gấp đôi, cùng với 95% của tất cả các phương sai: đây là các hình dạng bánh kếp. Trong hàng thứ ba, cả ba thành phần chính đều có kích thước lớn: đây là những hình dạng quả trứng.200

Số liệu

Bất kỳ đám mây điểm 3D nào "kết hợp" theo nghĩa không thể hiện các cụm hoặc gân hoặc các ngoại lệ sẽ trông giống như một trong số này. Bất kỳ đám mây điểm 3D tại tất cả --provided không phải tất cả các điểm là trùng - có thể được mô tả bằng một trong những con số này như một điểm ban đầu khởi hành để xác định tiếp tục phân nhóm hoặc khuôn mẫu.

Trực giác bạn phát triển từ việc chiêm ngưỡng các cấu hình như vậy có thể được áp dụng cho các kích thước cao hơn, mặc dù rất khó hoặc không thể hình dung được các kích thước đó.


2
Để thêm vào điều này, khi bạn có (gần-) dấu chấm phẩy bằng nhau (tức là ellipsoid có một lát tròn (gần-)), nó chỉ ra rằng hai phần dữ liệu tương ứng với các trục đó có phụ thuộc (gần-); người ta có thể nói về các trục chính cho hình elip, nhưng các vòng tròn chỉ có một bán kính. :)
JM không phải là một thống kê

6
Tôi sẽ thận trọng hơn ở đây, JM Trước tiên, chỉ cần làm rõ, bởi "gần như phụ thuộc", bạn phải có nghĩa là "gần như độc lập". Điều này đúng với biến thiên đa thường, nhưng trong nhiều trường hợp, PCA được thực hiện với dữ liệu không rõ ràng. Thật vậy, các phân tích phân cụm theo một số tính toán của PCA có thể được xem như một cách để đánh giá một dạng phi bình thường mạnh mẽ. Về mặt toán học, hình tròn làm có trục chính, nhưng họ chỉ là không xác định duy nhất: bạn có thể chọn bất kỳ cặp trực giao của bán kính như các trục chính của họ.
whuber

1
Vâng, xin lỗi, tôi cho rằng "các trục chính của một vòng tròn là không xác định" sẽ là một cách tốt hơn để đặt nó.
JM không phải là một thống kê

2
Giải thích rất hay! Cố gắng hiểu nó tốt hơn .. ở đâu trong toán học PCA người ta có thể thấy rằng "PCA phù hợp với một elipsoid với dữ liệu"?
Kochede

4
@Kochede Một ellipsoid là một đường viền của dạng bậc hai. Ma trận hiệp phương sai là một dạng bậc hai. PCA xác định các trục của nó và độ dài của chúng.
whuber

106

Hmm, ở đây có một cách hoàn toàn phi toán học trên PCA ...

Hãy tưởng tượng bạn vừa mở một cửa hàng rượu táo. Bạn có 50 loại rượu táo và bạn muốn tìm ra cách phân bổ chúng lên kệ, để các loại rượu có vị tương tự được đặt trên cùng một kệ. Có rất nhiều hương vị và kết cấu khác nhau trong rượu táo - ngọt, chua, đắng, men, trái cây, rõ ràng, xì hơi, v.v. Vì vậy, những gì bạn cần làm để đặt chai vào các loại là trả lời hai câu hỏi:

1) Những phẩm chất nào là quan trọng nhất để xác định các nhóm ciders? ví dụ: phân loại dựa trên độ ngọt có dễ dàng phân cụm các con nhện của bạn thành các nhóm nếm tương tự hơn so với phân loại dựa trên hiệu quả?

2) Chúng ta có thể giảm danh sách các biến bằng cách kết hợp một số biến không? ví dụ, có thực sự có một biến số là sự kết hợp giữa "men và độ trong và độ xì hơi" và điều này tạo ra một thang đo thực sự tốt để phân loại giống?

Đây thực chất là những gì PCA làm. Các thành phần chính là các biến giải thích một cách hữu ích sự thay đổi trong một tập dữ liệu - trong trường hợp này, đó là sự khác biệt hữu ích giữa các nhóm. Mỗi thành phần chính là một trong các biến giải thích ban đầu của bạn hoặc kết hợp một số biến giải thích ban đầu của bạn.


4
Điều gì về eigenvector & eigenvalues?
Ηλίας

3
Được rồi: Eigenvalue được liên kết với từng thành phần chính cho bạn biết mức độ biến đổi trong tập dữ liệu mà nó giải thích (trong ví dụ của tôi, cách phân tách rõ ràng các chai của bạn thành các nhóm). Chúng thường được biểu thị bằng tỷ lệ phần trăm của tổng biến thể trong tập dữ liệu. Đối với Eigenvector, đó là nơi mà móng vuốt nói rằng tôi tuân theo kết quả phân tích như một cái máy;) Trong đầu tôi, chúng liên quan đến cách bạn xoay di động của Vince theo hướng 'tốt nhất' của nó, nhưng điều này có thể không phải là cách đúng đắn để nghĩ về họ.
Freya Harrison

17
Eigenvector chỉ là sự kết hợp tuyến tính của các biến ban đầu (trong không gian yếu tố đơn giản hoặc xoay); họ đã mô tả cách các biến "đóng góp" cho từng trục yếu tố. Về cơ bản, hãy nghĩ về PCA như là cách để xây dựng các trục mới chỉ ra các hướng của phương sai cực đại (trong không gian biến ban đầu), như được biểu thị bởi giá trị riêng và cách đóng góp của các biến được tính trọng số hoặc biến đổi tuyến tính trong không gian mới này.
chl

ma trận hiệp phương sai của vấn đề này sẽ như thế nào? những gì nó cho chúng ta biết về các biến số (ngọt, chua, đắng, men, trái cây, rõ ràng, xì hơi, vv)?
JustCantly

1
Tôi không biết những gì về các nhà thống kê và đồ uống có cồn, nhưng Whiskey Classified thực hiện chính xác điều này cho rượu whisky Scotch ...
nekomatic

96

Tôi sẽ trả lời theo "thuật ngữ của giáo dân" bằng cách nói rằng PCA nhằm mục đích khớp các đường thẳng với các điểm dữ liệu (mọi người đều biết đường thẳng là gì). Chúng tôi gọi những đường thẳng này là "thành phần chính". Có nhiều thành phần chính như có các biến. Thành phần chính đầu tiên là đường thẳng tốt nhất bạn có thể phù hợp với dữ liệu. Thành phần chính thứ hai là đường thẳng tốt nhất bạn có thể phù hợp với các lỗi từ thành phần chính đầu tiên. Thành phần chính thứ ba là đường thẳng tốt nhất mà bạn có thể phù hợp với các lỗi từ các thành phần chính thứ nhất và thứ hai, v.v., v.v.

Nếu ai đó hỏi ý của bạn là "tốt nhất" hay "lỗi", thì điều này cho bạn biết họ không phải là "cư sĩ", vì vậy có thể đi sâu hơn một chút về các chi tiết kỹ thuật như lỗi vuông góc, không biết lỗi ở đâu hướng x hoặc hướng y, nhiều hơn 2 hoặc 3 chiều, v.v. Hơn nữa nếu bạn tránh tham chiếu đến hồi quy OLS (mà "cư sĩ" có lẽ sẽ không hiểu) thì việc giải thích sẽ dễ dàng hơn.

Các hàm riêng và giá trị riêng không phải là các khái niệm cần thiết cho mỗi se, thay vào đó chúng là các khái niệm toán học đã tồn tại. Khi bạn giải quyết vấn đề toán học của PCA, nó sẽ kết thúc tương đương với việc tìm giá trị riêng và hàm riêng của ma trận hiệp phương sai.


8
+1, đây thực sự là "thuật ngữ của giáo dân" và tôi biết bạn có thể rút ra nó rất chặt chẽ nếu bạn muốn!
gung

2
Câu trả lời tốt nhất cho đến nay, tôi muốn nói. Và tôi sử dụng PCA rất nhiều.
a11msp

2
Wow - đây thực sự là một lời giải thích tuyệt vời và đơn giản! Cảm ơn bạn!
Nick

52

Tôi có thể cung cấp cho bạn lời giải thích / bằng chứng riêng về PCA, điều mà tôi nghĩ là thực sự đơn giản và thanh lịch, và không yêu cầu bất cứ điều gì ngoại trừ kiến ​​thức cơ bản về đại số tuyến tính. Nó xuất hiện khá dài, vì tôi muốn viết bằng ngôn ngữ đơn giản dễ tiếp cận.

Giả sử chúng ta có một số mẫu dữ liệu từ một n không gian ba chiều. Bây giờ chúng ta muốn chiếu dữ liệu này trên một vài dòng trong n không gian ba chiều, trong một cách mà vẫn giữ được càng nhiều sai càng tốt (có nghĩa là, phương sai của các số liệu dự kiến nên càng lớn so với phương sai của dữ liệu gốc như khả thi).Mnn

Bây giờ, chúng ta hãy quan sát rằng nếu chúng ta dịch (di chuyển) tất cả các điểm của một số vector , phương sai sẽ vẫn như cũ, kể từ khi chuyển tất cả các điểm của β sẽ di chuyển số học của họ có nghĩa là bởi β là tốt, và phương sai là tuyến tính tỷ lệ với Σ M i = 1x i - μ 2 . Do đó chúng tôi dịch tất cả các điểm bởi - μ , vì vậy mà số học của họ có nghĩa là trở thành 0 , cho thoải mái tính toán. Hãy biểu thị các điểm dịch là x ' i = x i - μβββi=1Mxiμ2μ0xi=xiμ. Chúng ta hãy cũng quan sát, rằng sự thay đổi bây giờ có thể được thể hiện đơn giản là .i=1Mxi2

Bây giờ sự lựa chọn của dòng. Chúng ta có thể mô tả bất kỳ dòng nào dưới dạng tập hợp các điểm thỏa mãn phương trình , đối với một số vectơ v , w . Lưu ý rằng nếu chúng ta di chuyển các dòng của một số vector γ vuông góc với v , sau đó tất cả các dự báo trên dòng cũng sẽ được di chuyển bằng γ , do đó giá trị trung bình của các dự sẽ được di chuyển bằng γx=αv+wv,wγvγγ, do đó phương sai của các phép chiếu sẽ không thay đổi. Điều đó có nghĩa là chúng ta có thể di chuyển đường thẳng song song với chính nó và không thay đổi phương sai của các hình chiếu trên đường thẳng này. Một lần nữa vì mục đích thuận tiện, chúng ta hãy giới hạn bản thân mình chỉ các dòng đi qua điểm 0 (điều này có nghĩa là các dòng được mô tả bởi ).x=αv

Được rồi, bây giờ giả sử chúng ta có một vectơ mô tả hướng của một dòng là một ứng cử viên có thể cho dòng chúng ta tìm kiếm. Chúng ta cần tính toán phương sai của các hình chiếu trên dòng α v . Những gì chúng ta sẽ cần là các điểm chiếu và ý nghĩa của chúng. Từ đại số tuyến tính chúng ta đều biết rằng trong trường hợp đơn giản này chiếu của x ' i trên α vx i , v /v 2 . Chúng ta hãy từ bây giờ giới hạn bản thân mình chỉ các vectơ đơn vị v . Điều đó có nghĩa chúng ta có thể viết theo chiều dài của chiếu của điểm x 'vαvxiαvxi,v/v2v trênvđơn giản làx ' i ,v.xivxi,v

Trong một số câu trả lời trước đây, có người nói rằng PCA giảm thiểu tổng bình phương khoảng cách từ đường đã chọn. Bây giờ chúng ta có thể thấy điều đó đúng, bởi vì tổng bình phương của các hình chiếu cộng với tổng bình phương khoảng cách từ đường đã chọn bằng tổng bình phương khoảng cách từ điểm . Bằng cách tối đa hóa tổng bình phương của các hình chiếu, chúng tôi giảm thiểu tổng bình phương khoảng cách và ngược lại, nhưng đây chỉ là một sự suy diễn sâu sắc, trở lại bằng chứng bây giờ.0

Đối với ý nghĩa của các phép chiếu, hãy quan sát rằng là một phần của một số cơ sở trực giao của không gian của chúng ta và nếu chúng ta chiếu các điểm dữ liệu của mình trên mọi vectơ của cơ sở đó, thì tổng của chúng sẽ bị hủy (vì nó chiếu vào vectơ từ cơ sở giống như viết các điểm dữ liệu trong cơ sở trực giao mới). Vì vậy, tổng của tất cả các hình chiếu trên vectơ v (hãy gọi tổng S v ) và tổng các hình chiếu trên các vectơ khác từ cơ sở (hãy gọi nó là S o ) là 0, vì đó là giá trị trung bình của các điểm dữ liệu. Nhưng S v là trực giao với S o ! Điều đó có nghĩa là S o = S vvvSvSoSvSo .So=Sv=0

Vì vậy, giá trị trung bình của các dự đoán của chúng tôi là . 0Chà, thật tiện lợi, vì điều đó có nghĩa là phương sai chỉ là tổng bình phương độ dài của các hình chiếu, hoặc trong các ký hiệu

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

Chà, đột nhiên ma trận hiệp phương sai xuất hiện. Hãy biểu thị nó chỉ đơn giản bằng . Nó có nghĩa là bây giờ chúng tôi đang tìm kiếm một đơn vị vector v nhằm tối đa hóa v TX v , đối với một số bán tích cực nhất định ma trận X .XvvTXvX

Bây giờ, chúng ta hãy xem các vector riêng và giá trị riêng của ma trận , và biểu thị chúng bằng e 1 , e 2 , ... , e nλ 1 , ... , λ n tương ứng, chẳng hạn rằng λ 1λ 2 , λ 3 ... . Nếu các giá trị bước sóng không trùng lặp, vector riêng tạo thành một cơ sở trực chuẩn. Nếu họ làm như vậy, chúng tôi chọn các hàm riêng theo cách mà chúng tạo thành một cơ sở trực giao.Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

Bây giờ hãy tính cho một eigenvector e i . Chúng tôi có e T iX e i = e T i( λ i đ i ) = λ i ( e i 2 ) 2 = λ i .vTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

Khá tốt, điều này cho chúng ta cho e 1 . Bây giờ chúng ta hãy lấy một vectơ tùy ý v . Kể từ vector riêng tạo thành một cơ sở trực giao, chúng ta có thể viết v = Σ n i = 1 đ iv , e i , và chúng tôi có Σ n i = 1v , e i 2 = 1 . Hãy biểu thị β i = v , e i .λ1e1vv=i=1neiv,eii=1nv,ei2=1βi=v,ei

Bây giờ chúng ta hãy đếm . Chúng tôi viết lại câu như một sự kết hợp tuyến tính của e i , và nhận được: ( n Σ i = 1 β i đ i ) TX ( n Σ i = 1 β i đ i ) = ( n Σ i = 1 β i đ i ) ( n Σ ivTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

vTXv=i=1nλiβi2βi21

Điều đó có nghĩa là phương sai của phép chiếu là giá trị trung bình của giá trị riêng. Chắc chắn, nó luôn luôn ít hơn giá trị riêng lớn nhất, đó là lý do tại sao nó nên là lựa chọn của vectơ PCA đầu tiên.

lin(e2,e3,,en)e2

i=1kλi/i=1nλi

kkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,ujei2=1j=1kβij2+j=1nkθj2=1γi1i

i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1 câu trả lời rất hay! Chưa đọc nó hoàn toàn, nhưng câu trả lời của bạn là loại mà tôi đang tìm kiếm. Tất cả các bước được giải thích =)
jjepsuomi

9
Chỉ cho tôi một Layman biết đại số tuyến tính cơ bản, và tôi sẽ chỉ cho bạn một sinh viên toán học.
xác suất

xiαvxi,v/v2xi,v/v

1
Tôi nghĩ rằng đây là lời giải thích tốt nhất cho PCA tôi từng thấy. Cảm ơn bạn.
Nimitz14

1
Đó là lời giải thích yêu thích của tôi cũng cho thấy lý do tại sao người bản địa tối đa hóa phương sai.
Romwell

47

Được rồi, tôi sẽ thử cái này. Vài tháng trước, tôi đã đào một lượng lớn tài liệu để tìm một lời giải thích trực quan mà tôi có thể giải thích cho một người không thống kê. Tôi tìm thấy các dẫn xuất sử dụng số nhân Lagrange trực quan nhất.

Giả sử chúng ta có dữ liệu kích thước cao - giả sử 30 phép đo được thực hiện trên một con côn trùng. Các con bọ có kiểu gen khác nhau và các đặc điểm vật lý hơi khác nhau ở một số kích thước này, nhưng với dữ liệu kích thước cao như vậy, thật khó để biết côn trùng thuộc nhóm nào.

PCA là một kỹ thuật để giảm kích thước bằng cách:

  1. Lấy kết hợp tuyến tính của các biến ban đầu.
  2. Mỗi kết hợp tuyến tính giải thích phương sai nhất trong dữ liệu có thể.
  3. Mỗi kết hợp tuyến tính là không tương thích với những người khác

Hoặc, theo thuật ngữ toán học:

  1. Yj=ajx
  2. k>jV(Yk)<V(Yj)
  3. akaj=0

Tìm các kết hợp tuyến tính thỏa mãn các ràng buộc này dẫn chúng ta đến giá trị riêng. Tại sao?

Tôi khuyên bạn nên kiểm tra cuốn sách Giới thiệu về Phân tích dữ liệu đa biến để lấy đạo hàm đầy đủ (tr. 50), nhưng ý tưởng cơ bản là các vấn đề tối ưu hóa liên tiếp (tối đa hóa phương sai) bị ràng buộc sao cho a'a = 1 cho các hệ số a (để ngăn chặn trường hợp khi phương sai có thể là vô hạn) và bị ràng buộc để đảm bảo các hệ số là trực giao.

Điều này dẫn đến tối ưu hóa với số nhân Lagrange, từ đó tiết lộ lý do tại sao giá trị bản địa được sử dụng. Tôi quá lười để gõ nó ra (xin lỗi!) Nhưng, bản PDF này đi qua bằng chứng khá tốt từ thời điểm này.

Tôi sẽ không bao giờ cố gắng giải thích điều này với bà tôi, nhưng nếu tôi phải nói chung về các kỹ thuật giảm kích thước, tôi sẽ chỉ ra ví dụ chiếu tầm thường này (không phải PCA). Giả sử bạn có một chiếc di động Calder rất phức tạp. Một số điểm trong không gian 3 chiều gần nhau, một số điểm khác thì không. Nếu chúng ta treo chiếc điện thoại này từ trần nhà và chiếu ánh sáng vào nó từ một góc, chúng ta sẽ chiếu lên một mặt phẳng kích thước thấp hơn (một bức tường 2 chiều). Bây giờ, nếu thiết bị di động này chủ yếu rộng theo một hướng, nhưng mỏng theo hướng khác, chúng ta có thể xoay nó để có được các phép chiếu khác nhau về tính hữu dụng. Theo trực giác, một hình dạng gầy trong một chiều được chiếu trên tường ít hữu ích hơn - tất cả các bóng chồng lên nhau và không cung cấp cho chúng tôi nhiều thông tin. Tuy nhiên, nếu chúng ta xoay nó để ánh sáng chiếu vào mặt rộng, chúng ta có được một bức tranh tốt hơn về dữ liệu kích thước giảm - các điểm được trải rộng hơn. Đây thường là những gì chúng ta muốn. Tôi nghĩ rằng bà tôi có thể hiểu rằng :-)


6
Đó là rất cư sĩ ;-)

2
Đó là một chút toán học, nhưng cách tốt nhất để hiểu một cái gì đó là rút ra nó.
Vince

29
Bạn có một người bà được giáo dục đặc biệt :-).
whuber

7
tôi thích lời giải thích với ánh sáng chiếu vào cấu trúc 3 chiều
Neil McGuigan

(+1) Tất cả đều là câu trả lời tuyệt vời nhưng đây là câu trả lời tôi cũng sẽ đưa ra.
Digio

37

Cố gắng phi kỹ thuật ... Hãy tưởng tượng bạn có một dữ liệu đa biến, một đám mây đa chiều. Khi bạn tính ma trận hiệp phương sai của những người bạn thực sự (a) tập trung vào đám mây, tức là đặt gốc tọa độ là trung bình đa chiều, các trục hệ tọa độ sẽ giao nhau ở giữa đám mây, (b) mã hóa thông tin về hình dạng của đám mây và làm thế nào nó được định hướng trong không gian bằng các phương pháp hiệp phương sai. Vì vậy, hầu hết các thông tin quan trọng về hình dạng của toàn bộ dữ liệu được lưu trữ trong ma trận hiệp phương sai.

Sau đó, bạn thực hiện phân tách riêng của martrix đó và thu được danh sách các giá trị riêng và số lượng các hàm riêng tương ứng. Bây giờ, thành phần chính thứ 1 là biến mới, tiềm ẩn có thể được hiển thị khi trục đi qua gốc tọa độ và được định hướng dọc theo hướng của phương sai tối đa (độ dày) của đám mây. Phương sai dọc theo trục này, tức là phương sai của tọa độ của tất cả các điểm trên nó, giá trị riêng đầu tiên và hướng của trục trong không gian được tham chiếu đến các trục gốc (các biến) được xác định bởi hàm riêng thứ nhất: các mục nhập của nó là các cosin giữa nó và các trục gốc đó. Các tọa độ đã nói ở trên của các điểm dữ liệu trên thành phần 1 là các giá trị thành phần chính thứ nhất hoặc điểm thành phần; chúng được tính như là sản phẩm của ma trận dữ liệu (ở giữa) và hàm riêng.

"Sau" pr thứ nhất. thành phần đã đo được, nghĩa là "loại bỏ" khỏi đám mây với tất cả phương sai mà nó chiếm và tính chiều của đám mây giảm xuống một. Tiếp theo, mọi thứ được lặp lại với giá trị riêng thứ hai và hàm riêng thứ hai - pr thứ 2. thành phần đang được ghi lại, và sau đó "loại bỏ". Vân vân.

Vì vậy, một lần nữa: eigenvector là cosin định hướng cho các thành phần chính, trong khi giá trị riêng là độ lớn (phương sai) trong các thành phần chính. Tổng của tất cả các giá trị riêng bằng tổng phương sai nằm trên đường chéo của ma trận phương sai - hiệp phương sai. Nếu bạn chuyển thông tin "phóng đại" được lưu trữ trong các giá trị riêng sang các hàm riêng để thêm thông tin đó vào thông tin "định hướng" được lưu trữ trong đó bạn sẽ có được cái gọi là tải thành phần chính ; các tải trọng này - bởi vì chúng mang cả hai loại thông tin - là hiệp phương sai giữa các biến ban đầu và các thành phần chính.

Sau này tôi muốn đặc biệt nhấn mạnh hai lần ở đây sự khác biệt về thuật ngữ giữa các hàm riêngtải . Nhiều người và một số gói (bao gồm cả một số R) sử dụng hai thuật ngữ một cách thay thế cho nhau. Đó là một thực tế xấu bởi vì các đối tượng và ý nghĩa của chúng là khác nhau. Eigenvector là các cosin hướng, góc của "phép quay" trực giao mà PCA đạt tới. Tải trọng là các hàm riêng được cấy với thông tin về độ biến thiên hoặc độ lớn của dữ liệu được xoay. Các tải là các hệ số liên kết giữa các thành phần và các biến và chúng có thể so sánh trực tiếp với các hệ số liên kết được tính giữa các biến - hiệp phương sai, tương quan hoặc các sản phẩm vô hướng khác1). Eigenvector là hệ số để dự đoán các biến theo điểm thành phần thô. Tải là hệ số để dự đoán các biến theo điểm thành phần (bình thường hóa) (không có gì lạ: tải có kết tủa thông tin về tính biến thiên, do đó, các thành phần được sử dụng phải bị tước bỏ). Một lý do nữa để không trộn lẫn các hàm riêng và tải là một số kỹ thuật giảm kích thước khác ngoài PCA - chẳng hạn như một số hình thức phân tích nhân tố - tính toán tải trực tiếp, bỏ qua các hàm riêng. Eigenvector là sản phẩm của phân rã eigen hoặc phân rã giá trị số ít; một số hình thức phân tích nhân tố không sử dụng các phân tách này và đến các tải khác theo cách khác. Cuối cùng, đó là tải, không phải là hàm riêng, qua đó bạn diễn giải các thành phần hoặc yếu tố (nếu bạn cần diễn giải chúng). Tải là về sự đóng góp của thành phần vào một biến: trong PCA (hoặc phân tích nhân tố) thành phần / yếu tố tự tải vào biến, chứ không phải ngược lại. Trong kết quả PCA toàn diện, người ta phải báo cáo cả hàm riêng và tải, như được hiển thị, ví dụở đây hoặc ở đây .

Xem thêm về tải trọng vs eigenvector.


1


@amoeba, tôi không nhấn mạnh và bạn có thể sử dụng bất kỳ thuật ngữ nào bạn đã quen. Tôi đã giải thích rõ ràng lý do tại sao tôi nghĩ các thuật ngữ "tải" và "người bản địa" là tốt hơn để tách biệt. Tôi theo truyền thống cổ điển, chẳng hạn như ở Harman. Phân tích nhân tố hiện đại, nếu chỉ tôi nhớ đúng truyền thống.
ttnphns

(Tiếp theo) Dù sao đi nữa, bạn biết rằng thuật ngữ "tải", mặc dù thực sự khá mơ hồ, nhưng không nhất thiết không bị lẫn với "eigenvector" trong các phân tích đa biến khác, chẳng hạn như phân tích phân biệt. Một lần nữa, như tôi đã nói, trong các lần tải PCA 1) kết hợp thông tin về mức độ biến đổi; 2) Là hiệp phương sai / tương quan, và do đó được sử dụng để giải thích. Giá trị Eigenvector - không.
ttnphns

2
+1 Tôi đã đọc bài viết của bạn trên PCA và các vấn đề liên quan khác, và đã học được rất nhiều.
Antoni Parellada

29

OK, một câu trả lời hoàn toàn phi toán học:

Nếu bạn có một loạt các biến trên một loạt các đối tượng và bạn muốn giảm nó xuống một số lượng nhỏ hơn các biến số trên cùng các đối tượng đó, trong khi mất càng ít thông tin càng tốt, thì PCA là một công cụ để thực hiện điều này.

Nó khác với phân tích nhân tố, mặc dù chúng thường cho kết quả tương tự, trong đó FA cố gắng phục hồi một số lượng nhỏ các biến tiềm ẩn từ một số lượng lớn hơn các biến quan sát được cho là có liên quan đến các biến tiềm ẩn.


Này Peter! Thật tốt khi gặp bạn ở đây. Đây là một câu trả lời thực sự tốt, đơn giản, không có toán học.
JD Long

3
+1 để đề cập đến FA, điều mà không ai khác có thể thảo luận, và những lời giải thích của một số người dường như hòa trộn với nhau.
gung

Dường như không có sự khác biệt trong các mục tiêu của PCA và FA - cả hai đều nhằm mục đích xoay để bạn có thể thấy các yếu tố quan trọng nhất (vectơ tiềm ẩn, hoặc eigendimensions hoặc vectơ số ít hoặc bất cứ điều gì). Nhưng FA dường như không phải là một thuật toán mà là một nhóm các kỹ thuật liên quan (với nhau và SVD và PCA) với các mục tiêu tương ứng không rõ ràng (nghĩa là đa dạng và không nhất quán lẫn nhau, vì vậy các biến thể khác nhau 'tối ưu hóa' những thứ khác nhau).
David MW Powers

Sẽ là chính xác khi nói rằng PCA là một trong nhiều cách có thể để phân tích nhân tố?
abalter

Thuật ngữ trong lĩnh vực này nổi tiếng là không nhất quán.
Peter Flom

29

Dễ dàng nhất để làm toán trong 2 chiều.

Mỗi ma trận tương ứng với một chuyển đổi tuyến tính. Các phép biến đổi tuyến tính có thể được hình dung bằng cách lấy một hình đáng nhớ trên mặt phẳng và xem cách hình đó bị biến dạng bởi biến đổi tuyến tính:

biến đổi tuyến tính (ảnh: Flanigan & Kazdan )

  • mona lisa eigenvectorshear
  • ×1
  • Bóng đá PCA
    1=23%[1]+46%[2]+39%[3]

f(ax+by)=af(x)+bf(y)+abxytừ một số không gian thú vị. Ví dụ :

khuôn mặt

Bản thân PCA là một ví dụ khác, một ví dụ quen thuộc nhất với các nhà thống kê. Một số câu trả lời khác như Freya đưa ra các ứng dụng PCA trong thế giới thực .

similar how?x42.8%[x]57.2%[y]


2
Trên thực tế, thật trùng hợp khi các phép quay là tuyến tính và do đó, một cách thuận tiện để mô tả những gì đang diễn ra đối với dữ liệu phi hình học. Sự trùng hợp liên quan đến bản chất bậc hai của cả không gian Cartesian / Euclide và Định lý giới hạn trung tâm / Gaussian. Viz. sigmas cộng lại theo phương trình bậc hai như kích thước trực giao, đó là nơi thuật ngữ quay vòng / trực giao ND của chúng ta bắt nguồn bằng cách tương tự với không gian 2D và 3D.
David MW Powers

@DavidMWPowers Thú vị. Tôi đang suy nghĩ về các phép quay từ quan điểm đại số tuyến tính.
đẳng cấu

27

Sau bài viết xuất sắc của JD Long trong chủ đề này, tôi đã tìm một ví dụ đơn giản và mã R cần thiết để sản xuất PCA và sau đó quay lại dữ liệu gốc. Nó đã cho tôi một số trực giác hình học đầu tay, và tôi muốn chia sẻ những gì tôi có. Tập dữ liệu và mã có thể được sao chép và dán trực tiếp vào biểu mẫu R Github .

Tôi đã sử dụng một bộ dữ liệu mà tôi tìm thấy trực tuyến trên các chất bán dẫn ở đây và tôi đã cắt nó thành hai chiều - "số nguyên tử" và "điểm nóng chảy" - để tạo điều kiện cho âm mưu.


Như một lời cảnh báo, ý tưởng hoàn toàn minh họa cho quá trình tính toán: PCA được sử dụng để giảm hơn hai biến thành một vài thành phần chính có nguồn gốc hoặc để xác định cộng tuyến trong trường hợp có nhiều tính năng. Vì vậy, nó sẽ không tìm thấy nhiều ứng dụng trong trường hợp có hai biến, và cũng không cần phải tính toán các hàm riêng của ma trận tương quan như được chỉ ra bởi @amoeba.


Hơn nữa, tôi cắt ngắn các quan sát từ 44 đến 15 để giảm bớt nhiệm vụ theo dõi các điểm riêng lẻ. Kết quả cuối cùng là khung dữ liệu bộ xương ( dat1):

compounds   atomic.no      melting.point
AIN         10             498.0
AIP         14             625.0
AIAs        23             1011.5
...         ...            ... 

Cột "hợp chất" biểu thị hiến pháp hóa học của chất bán dẫn và đóng vai trò của tên hàng.

Điều này có thể được sao chép như sau (sẵn sàng sao chép và dán trên bảng điều khiển R):

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

Dữ liệu sau đó được thu nhỏ lại:

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

Các bước đại số tuyến tính theo sau:

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10.296melt_p0.2961]

Hàm tương quan cor(dat1)cho cùng một đầu ra trên dữ liệu không được chia tỷ lệ như hàm cov(X)trên dữ liệu được chia tỷ lệ.

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000.7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC21111]

[0.7,0.7][0.7,0.7]

e_vectors[,1] = - e_vectors[,1]; colnames(e_vectors) <- c("PC1","PC2")

1.29642170.703578364.8%eigen(C)$values[1]/sum(eigen(C)$values) * 10065%35.2%

nhập mô tả hình ảnh ở đây

Chúng tôi sẽ bao gồm cả hai trình xác định được đưa ra kích thước nhỏ của ví dụ về bộ dữ liệu đồ chơi này, hiểu rằng việc loại trừ một trong những trình xác định sẽ dẫn đến giảm kích thước - ý tưởng đằng sau PCA.

Các ma trận điểm đã được xác định là nhân ma trận của các dữ liệu quy mô ( X) của ma trận vector riêng (hoặc "quay") :

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

X[0.7,0.7]TPC1[0.7,0.7]TPC2

nhập mô tả hình ảnh ở đây

[0.7,0.7]

nhập mô tả hình ảnh ở đây

1

> apply(e_vectors, 2, function(x) sum(x^2))
PC1 PC2 
  1   1 

trong khi (các tải ) là các hàm riêng được chia tỷ lệ theo các giá trị riêng (mặc dù thuật ngữ khó hiểu trong các hàm R dựng sẵn được hiển thị bên dưới). Do đó, các tải có thể được tính như sau:

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

> prcomp(X)$rotation %*% diag(princomp(covmat = C)$sd^2)
                   [,1]      [,2]
atomic.no     0.9167086  0.497505
melting.point 0.9167086 -0.497505

Thật thú vị khi lưu ý rằng đám mây dữ liệu được xoay (biểu đồ điểm số) sẽ có phương sai dọc theo từng thành phần (PC) bằng với giá trị riêng:

> apply(score_matrix, 2, function(x) var(x))
       PC1        PC2 
53829.7896   110.8414 
> lambda
[1] 53829.7896   110.8414

Sử dụng các chức năng tích hợp, kết quả có thể được nhân rộng:

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

UΣVTprcomp()

svd_scaled_dat <-svd(scale(dat1))
eigen_vectors <- svd_scaled_dat$v
eigen_values <- (svd_scaled_dat$d/sqrt(nrow(dat1) - 1))^2
scores<-scale(dat1) %*% eigen_vectors

Kết quả được hiển thị bên dưới, với lần đầu tiên, khoảng cách từ các điểm riêng lẻ đến trình xác định đầu tiên và trên biểu đồ thứ hai, khoảng cách trực giao đến trình xác định thứ hai:

nhập mô tả hình ảnh ở đây

Thay vào đó, nếu chúng ta vẽ các giá trị của ma trận điểm (PC1 và PC2) - không còn là "tan chảy.point" và "nguyên tử.no", mà thực sự là một sự thay đổi cơ sở của tọa độ điểm với các hàm riêng, thì các khoảng cách này sẽ là được bảo tồn, nhưng tự nhiên sẽ trở nên vuông góc với trục xy:

nhập mô tả hình ảnh ở đây

Bí quyết bây giờ là khôi phục dữ liệu gốc . Các điểm đã được biến đổi thông qua phép nhân ma trận đơn giản bởi các hàm riêng. Bây giờ dữ liệu đã được quay trở lại bằng cách nhân với nghịch đảo của ma trận của các hàm riêng với một thay đổi được đánh dấu kết quả ở vị trí của các điểm dữ liệu. Chẳng hạn, chú ý sự thay đổi của chấm màu hồng "GaN" ở góc phần tư phía trên bên trái (vòng tròn màu đen ở ô bên trái, bên dưới), trở về vị trí ban đầu ở góc phần tư phía dưới bên trái (vòng tròn màu đen ở ô bên phải, bên dưới).

Bây giờ chúng tôi cuối cùng đã có dữ liệu gốc được khôi phục trong ma trận "khử" này:

nhập mô tả hình ảnh ở đây

Ngoài sự thay đổi tọa độ xoay của dữ liệu trong PCA, các kết quả phải được giải thích và quá trình này có xu hướng liên quan đến a biplot, trên đó các điểm dữ liệu được vẽ đối với tọa độ eigenvector mới và các biến ban đầu hiện được đặt chồng lên nhau vectơ. Thật thú vị khi lưu ý sự tương đương ở vị trí của các điểm giữa các ô trong hàng đồ thị xoay thứ hai ở trên ("Điểm với xy Trục = Eigenvector") (ở bên trái trong các ô theo sau) và biplot(với đúng):

nhập mô tả hình ảnh ở đây

Sự chồng chất của các biến ban đầu là các mũi tên màu đỏ cung cấp một đường dẫn đến việc giải thích PC1như một vectơ theo hướng (hoặc có mối tương quan dương) với cả hai atomic nomelting point; và PC2là một thành phần cùng với việc tăng các giá trị của atomic nonhưng tương quan nghịch với melting point, phù hợp với các giá trị của hàm riêng:

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

Hướng dẫn tương tác này của Victor Powell cung cấp phản hồi ngay lập tức về những thay đổi của người bản địa khi đám mây dữ liệu được sửa đổi.


1
+1 cho nỗ lực và đặc biệt cho hoạt hình! Nhưng ta nên nhớ rằng PCA trên ma trận tương quan của hai biến là một trường hợp đặc biệt bởi vì tất cả các ma trận tương quan của hai biến các hàm riêng giống nhau : một trong số chúng sẽ luôn là [0,7 0,7] (0,7 là 1 / sqrt (2)). Đây không phải là trường hợp cho ma trận hiệp phương sai, hoặc cho ma trận tương quan ở các chiều cao hơn.
amip

14

Từ một người đã sử dụng PCA rất nhiều (và cũng cố gắng giải thích nó cho một vài người) đây là một ví dụ từ lĩnh vực khoa học thần kinh của riêng tôi.

Khi chúng tôi ghi âm từ da đầu của một người, chúng tôi sẽ thực hiện với 64 điện cực. Vì vậy, trong thực tế, chúng ta có 64 số trong một danh sách đại diện cho điện áp được đưa ra bởi da đầu. Bây giờ vì chúng tôi ghi lại với độ chính xác đến micro giây, nếu chúng tôi có thử nghiệm 1 giờ (thường là 4 giờ) thì điều đó mang lại cho chúng tôi 1e6 * 60 ^ 2 == 3.600.000.000 điểm thời gian mà điện áp được ghi ở mỗi điện cực để bây giờ chúng tôi có ma trận 3.600.000.000 x 64. Vì một giả định chính của PCA là các biến của bạn có mối tương quan với nhau, nên đây là một kỹ thuật tuyệt vời để giảm lượng dữ liệu lố bịch này xuống một lượng có thể điều chỉnh được. Như đã nói nhiều lần rồi, các giá trị riêng biểu thị lượng phương sai được giải thích bởi các biến (cột). Trong trường hợp này, một giá trị riêng biểu thị phương sai của điện áp tại một thời điểm cụ thể được đóng góp bởi một điện cực cụ thể. Vì vậy, bây giờ chúng ta có thể nói, "Ồ, điện cực tốtxtại thời điểm ynày là những gì chúng ta nên tập trung vào để phân tích sâu hơn bởi vì đó là nơi có nhiều thay đổi nhất đang diễn ra ". Hy vọng điều này sẽ giúp. Yêu những âm mưu hồi quy đó!


12

Tôi có thể là một người xấu để trả lời điều này bởi vì tôi là người bà hoạt ngôn, người đã có khái niệm giải thích cho tôi và không nhiều hơn nữa, nhưng ở đây đi:

Giả sử bạn có một dân số. Một phần lớn dân số đang chết vì đau tim. Bạn đang cố gắng tìm ra nguyên nhân gây ra các cơn đau tim.

Bạn có hai phần dữ liệu: chiều cao và cân nặng.

Bây giờ, rõ ràng có MỘT SỐ mối quan hệ giữa cân nặng và đau tim, nhưng mối tương quan không thực sự mạnh mẽ. Có một số người nặng bị đau tim, nhưng một số thì không.

Bây giờ, bạn làm PCA, và nó cho bạn biết rằng cân nặng chia cho chiều cao ('khối lượng cơ thể') là một yếu tố dự đoán nhiều khả năng của các cơn đau tim sau đó là cân nặng hoặc chiều cao, bởi vì, lo và "thực tế" là nó khối lượng cơ thể gây ra các cơn đau tim.

Về cơ bản, bạn làm PCA vì bạn đang đo lường rất nhiều thứ và bạn không thực sự biết liệu đó có phải là thành phần chính hay không nếu có thành phần nào đó sâu hơn mà bạn không đo được.

[Xin vui lòng chỉnh sửa này nếu nó hoàn toàn không có cơ sở. Tôi thực sự không hiểu khái niệm này sâu sắc hơn thế này].


1
Chào mừng bạn đến với trang web thống kê @Joel! Nếu bạn có cơ hội, bạn cũng có thể đóng góp cho cuộc thảo luận về dự án phân tích dữ liệu StackExchange được đề xuất của chúng tôi: stats.stackexchange.com/questions/2512/ .
Shane

9
Ví dụ tuyệt vời, nhưng về mặt kỹ thuật, PCA không thể tìm thấy giải thích khối lượng cơ thể vì nó chỉ có thể tìm thấy các giải thích tuyến tính, đó là tổng trọng số của các biến ban đầu. Tuy nhiên, nếu bạn lấy nhật ký của các biến đầu vào, tỷ lệ sẽ trở thành sự khác biệt và nếu đó là lời giải thích phù hợp, PCA sẽ có thể tìm thấy nó.
David MW Powers

10

Đây là một cho bà:

Trong thị trấn của chúng tôi có những con đường đi về phía bắc và phía nam, một số đi về phía đông và phía tây, và thậm chí một số đi về phía tây bắc và đông nam, một số NE đến SW. Một ngày nọ, một anh chàng đo tất cả lưu lượng trên tất cả các đường phố, anh ta thấy rằng lưu lượng truy cập nhiều nhất là theo đường chéo, từ tây bắc đến đông nam, lớn thứ hai là vuông góc với hướng này theo hướng đông bắc sang tây nam và tất cả phần còn lại khá nhỏ. Vì vậy, anh ta vẽ một hình vuông lớn và đặt một đường lớn từ trái sang phải và nói rằng đó là NA đến SE, sau đó vẽ một đường thẳng đứng khác lên xuống ở giữa. Ông nói rằng đó là hướng đông đúc thứ hai cho giao thông (NE đến SW). Phần còn lại là nhỏ nên có thể bỏ qua.

Dòng bên trái là eigenvector đầu tiên và dòng lên xuống là eigenvector thứ hai. Tổng số xe ô tô đi bên trái và bên phải là giá trị riêng đầu tiên và những chiếc đi lên và xuống là giá trị riêng thứ hai.


1
Sự tương tự này dường như bị phá vỡ khi kiểm tra. Điều gì nếu hướng lưu lượng lớn nhất và lớn thứ hai không trực giao? Làm thế nào để sự tương tự của bạn giúp chúng tôi hiểu PCA trong trường hợp như vậy?
whuber

Tôi đoán bà hiểu nghĩa trực giao nghĩa là gì? Vâng, một số sai sót ở đó nhưng đó là một sự khởi đầu. Tôi nghĩ thật tuyệt khi đã có rất nhiều câu trả lời ở đây.
BajaBob

2
Cho dù "bà" có hiểu bài đăng hay không, nó cần phải rõ ràng và chính xác. Sự tương tự của bạn dường như không hoàn thành một trong những mục tiêu đó. Đó có thể là do tôi không hiểu sự tương tự: Tôi không thể kết nối nó với PCA là gì hoặc làm gì. Có lẽ bạn có thể làm rõ cách thức hoạt động của sự tương tự để những người đọc khác không trở nên bí ẩn như tôi.
whuber

Thực tế là chúng không trực giao có nghĩa là bạn cần ICA hoặc FA chứ không phải PCA. Nếu bà ngoại đang xem Star Trek (vâng, đó là thế hệ đó) khi họ cho thấy con tàu khuyết tật ở một góc - PCA sẽ có xu hướng phục hồi mặt phẳng tham chiếu phù hợp với quy mô và tầm nhìn (mặt phẳng thiên hà hoặc trục của con tàu).
David MW Powers

-1. Tôi đồng ý với @whuber rằng sự tương tự này không hoạt động. Những gì được cho là dữ liệu ở đây, những "ma trận hiệp phương sai" này là gì? Tôi không hiểu gì cả.
amip

10

Câu trả lời này đưa ra một giải thích trực quan và không toán học:

PCA sẽ cung cấp cho bạn một tập các vectơ trực giao trong một đám mây điểm cao. Thứ tự của các vectơ được xác định bởi thông tin được truyền đi phía sau chiếu tất cả các điểm lên các vectơ.

Nói cách khác: Vectơ thành phần chính đầu tiên sẽ cho bạn biết nhiều nhất về đám mây điểm sau khi chiếu tất cả các điểm lên vectơ. Đây là một cách giải thích trực giác của khóa học.

Nhìn vào ellipsoid này (theo liên kết cho mô hình 3D) :

nhập mô tả hình ảnh ở đây

Nếu bạn phải chọn một vectơ tạo thành không gian con một chiều mà trên đó các điểm của các điểm ellipsoids sẽ được chiếu. Bạn sẽ chọn cái nào vì nó truyền tải nhiều thông tin nhất về bộ gốc theo 3 chiều?

Tôi đoán màu đỏ dọc theo trục dài nhất. Và đây thực sự là thành phần chính được tính toán đầu tiên! Cái nào tiếp theo - tôi sẽ chọn cái màu xanh dọc theo trục dài nhất tiếp theo.

Thông thường, bạn muốn chiếu một tập hợp các điểm từ không gian nhiều chiều lên mặt phẳng hai chiều hoặc vào không gian ba chiều .

nhập mô tả hình ảnh ở đây


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/


10

Mặc dù có nhiều ví dụ được đưa ra để cung cấp sự hiểu biết trực quan về PCA, nhưng thực tế đó gần như có thể khiến việc nắm bắt khó khăn hơn ngay từ đầu, ít nhất là đối với tôi.

"Điều gì về PCA là tất cả những ví dụ khác nhau từ các ngành khác nhau có điểm chung ??"

Điều giúp tôi hiểu một cách trực giác là một vài điểm tương đồng về toán học, vì rõ ràng toán học là phần dễ dàng đối với bạn, mặc dù điều này không giúp giải thích điều đó với bà của bạn ...

Hãy nghĩ về một vấn đề chính quy, cố gắng để có được

||XBY||=0

YY

YYXkBYXBkSVSVT

AA


9

Đây là một câu trả lời toán học: thành phần chính đầu tiên là chiều dài nhất của dữ liệu. Nhìn vào nó và hỏi: dữ liệu rộng nhất ở đâu? Đó là thành phần đầu tiên. Thành phần tiếp theo là vuông góc. Vì vậy, một điếu xì gà dữ liệu có chiều dài và chiều rộng. Nó có ý nghĩa cho bất cứ điều gì là loại thuôn dài.


6
Thật không may, tính chính xác của câu trả lời này phụ thuộc vào cách diễn đạt mơ hồ "dài nhất" được diễn giải. Nhiều cách giải thích tự nhiên và có liên quan, chẳng hạn như đường kính , sẽ sai.
whuber

PCA thực sự hoạt động khá tốt với các loại cách tự nhiên khác nhau để đo kích thước / kích thước. Bạn chỉ cần thay thế ma trận hiệp phương sai bằng ma trận để đo "thứ nguyên" theo bất kỳ hướng nào (ma trận chỉ cần được xác định dương hoặc đối xứng.) Điều này giống như QuickSort hoạt động cho toán tử đặt hàng khác nhau, nhưng bạn sẽ nhận được kết quả khác nhau cho các nhà khai thác đặt hàng khác nhau.
James LI

9

Cách tôi hiểu các thành phần chính là: Dữ liệu có nhiều biến số (chiều cao, cân nặng, tuổi, nhiệt độ, bước sóng, tỷ lệ sống phần trăm, v.v.) có thể được trình bày theo ba chiều để liên quan đến cốt truyện.

Bây giờ nếu bạn muốn hiểu "dữ liệu 3D" bằng cách nào đó, bạn có thể muốn biết mặt phẳng 2D nào (mặt cắt ngang) của dữ liệu 3D này chứa nhiều thông tin nhất cho một bộ biến đã cho. Các mặt phẳng 2D này là các thành phần chính, chứa tỷ lệ của từng biến.

Hãy nghĩ về các thành phần chính như chính các biến, với các đặc điểm tổng hợp từ các biến ban đầu (biến mới này có thể được mô tả là trọng lượng phần, chiều cao phần, tuổi phần, v.v.). Khi bạn vẽ một thành phần chính (X) dựa trên một thành phần khác (Y), điều bạn đang làm là xây dựng bản đồ 2D có thể mô tả hình học tương quan giữa các biến ban đầu. Bây giờ là phần hữu ích: vì mỗi đối tượng (quan sát) được so sánh được liên kết với các giá trị cho từng biến, nên các đối tượng (quan sát) cũng được tìm thấy ở đâu đó trên bản đồ XY này. Vị trí của chúng dựa trên sự đóng góp tương đối của từng biến cơ bản (nghĩa là một quan sát có thể bị ảnh hưởng nặng nề bởi tuổi tác và nhiệt độ, trong khi một quan sát khác có thể bị ảnh hưởng nhiều hơn bởi chiều cao và cân nặng).


8

Tôi sẽ đưa ra một câu trả lời phi toán học và một cái nhìn chi tiết hơn về con mắt của động lực xuyên suốt toán học trong phần thứ hai.


Không toán học:

Giải thích phi toán học là PCA giúp cho dữ liệu chiều cao bằng cách cho bạn xem hướng dữ liệu của bạn có phương sai nhất. Những hướng này là các thành phần chính . Khi bạn có thông tin này, trong một số trường hợp, bạn có thể quyết định sử dụng các thành phần chính làm các biến có ý nghĩa và giảm đáng kể tính chiều của dữ liệu bằng cách chỉ giữ các thành phần chính có phương sai nhất ( công suất giải thích ).

Ví dụ: giả sử bạn đưa ra một câu hỏi bỏ phiếu chính trị với 30 câu hỏi, mỗi câu hỏi có thể được trả lời từ 1 ( rất không đồng ý ) đến 5 ( rất đồng ý ). Bạn nhận được vô số phản hồi và bây giờ bạn có dữ liệu 30 chiều và bạn không thể tạo ra đầu hoặc đuôi từ đó. Sau đó, trong tuyệt vọng, bạn nghĩ chạy PCA và khám phá 90% phương sai của bạn đến từ một hướng và hướng đó không tương ứng với bất kỳ trục nào của bạn. Sau khi kiểm tra thêm dữ liệu, sau đó bạn kết luận rằng trục lai mới này tương ứng với phổ chính trị bên trái, tức là phổ dân chủ / cộng hòa, và tiếp tục xem xét các khía cạnh tinh tế hơn trong dữ liệu.


Toán:

Đôi khi nó giúp thu nhỏ và nhìn vào động lực toán học để làm sáng tỏ ý nghĩa.

Có một họ ma trận đặc biệt có thể biến thành ma trận đường chéo chỉ bằng cách thay đổi trục tọa độ của bạn. Đương nhiên, chúng được gọi là ma trận chéo và đủ thanh lịch, trục tọa độ mới cần thiết để thực hiện điều này thực sự là các hàm riêng.

Hóa ra ma trận hiệp phương sai là đối xứng và sẽ luôn luôn có đường chéo ! Trong trường hợp này, các hàm riêng được gọi là các thành phần chính và khi bạn viết ra ma trận hiệp phương sai trong tọa độ eigenvector, các mục chéo (chỉ còn lại) tương ứng với phương sai theo hướng của hàm riêng. Điều này cho phép chúng ta biết hướng nào có phương sai nhất. Ngoài ra, do ma trận hiệp phương sai là đường chéo trong các tọa độ này, bạn đã khéo léo loại bỏ tất cả các mối tương quan giữa các biến của bạn.

Như thường thấy trong các ứng dụng thực tế, chúng tôi giả định rằng các biến của chúng tôi thường được phân phối và do đó, việc thử và thay đổi tọa độ của chúng tôi để xem hình ảnh đơn giản nhất là điều hoàn toàn tự nhiên. Bằng cách biết các thành phần chính của bạn và giá trị riêng tương ứng (phương sai) của chúng, bạn sẽ có thể giảm tính chiều của dữ liệu nếu cần và cũng có một bản tóm tắt chung nhanh về sự thay đổi trong dữ liệu của bạn.

Nhưng vào cuối ngày, gốc rễ của tất cả các mong muốn này xuất phát từ thực tế là các ma trận đường chéo là cách dễ dàng hơn để đối phó với so với Messier của họ, anh em họ tổng quát hơn.


2
Cảm ơn sự đóng góp của bạn. Tuy nhiên, nó dường như giải quyết một sự giải thích hẹp không cần thiết về PCA. (1) PCA đã được áp dụng một cách hiệu quả cho các bộ dữ liệu không phải Gaussian. (2) PCA không phải là thủ tục tham số chính thức; có lẽ tốt hơn để nghĩ về nó như là thăm dò trong tinh thần. (3) Tất cả các ma trận hiệp phương sai, của bất kỳ loại phân phối hoặc dữ liệu đa biến nào, đều có thể chéo. Cả Gaussianity (Normality) hay không suy biến đều là những yêu cầu. (Tính đối xứng của ma trận và có các thành phần thực đảm bảo tính chéo .)
whuber

Tôi phải thừa nhận, tôi cảm thấy xấu hổ vì đã quên, nhưng điểm hay về ma trận hiệp phương sai nói chung là có thể chéo. Tôi sẽ chỉnh sửa để phản ánh điều đó. Ngoài ra, bạn có thể giải thích về điểm (2) không? Tôi không quen với sự khác biệt giữa các thủ tục tham số hoặc không tham số.
Christian Bueno

7

Tôi xem PCA là một công cụ hình học. Nếu bạn được cung cấp một loạt các điểm trong 3 không gian gần như hoàn toàn trên một đường thẳng và bạn muốn tìm ra phương trình của đường thẳng đó, bạn sẽ có được nó thông qua PCA (lấy thành phần đầu tiên). Nếu bạn có một loạt các điểm trong không gian 3 phần lớn là mặt phẳng và muốn khám phá phương trình của mặt phẳng đó, hãy thực hiện thông qua PCA (lấy vectơ thành phần ít quan trọng nhất và điều đó là bình thường đối với mặt phẳng).


7

Tại sao eigenvalues ​​/ eigenvector?

Khi làm PCA, bạn muốn tính toán một số cơ sở trực giao bằng cách tối đa hóa phương sai dự kiến ​​trên mỗi vectơ cơ sở.

Đã tính toán các vectơ cơ sở trước đó, bạn muốn cái tiếp theo là:

  • trực giao với trước
  • định mức 1
  • tối đa hóa phương sai dự kiến, tức là với chỉ tiêu hiệp phương sai tối đa

Đây là một vấn đề tối ưu hóa bị ràng buộc và hệ số nhân Lagrange (ở đây cho trực giác hình học, xem trang wikipedia) cho bạn biết rằng độ dốc của mục tiêu (phương sai dự kiến) và ràng buộc (định mức đơn vị) phải "song song" ở mức tối ưu.

Điều này giống như nói rằng vectơ cơ sở tiếp theo phải là một hàm riêng của ma trận hiệp phương sai. Sự lựa chọn tốt nhất ở mỗi bước là chọn một cái có giá trị riêng lớn nhất trong số các bước còn lại.


5
Chắc chắn không phải là một lời giải thích cho một giáo dân - vectơ cơ sở trực giao? tối đa hóa phương sai chiếu? vấn đề tối ưu hóa bị hạn chế? Số nhân Lagrange? Đây là những thuật ngữ rất "biệt ngữ". Chỉ cho một giáo dân hiểu ý nghĩa của những điều này và tôi sẽ chỉ cho bạn một nhà toán học / nhà thống kê
xác suất

6

Về cơ bản PCA tìm thấy các biến mới là sự kết hợp tuyến tính của các biến ban đầu sao cho trong không gian mới, dữ liệu có ít kích thước hơn. Hãy nghĩ về một tập dữ liệu bao gồm các điểm theo 3 chiều trên bề mặt của một tấm phẳng được giữ ở một góc. Trong các trục x, y, z ban đầu, bạn cần 3 chiều để biểu thị dữ liệu, nhưng với phép biến đổi tuyến tính đúng, bạn chỉ cần 2 chiều.

Về cơ bản những gì @Joel đã nói, nhưng chỉ kết hợp tuyến tính của các biến đầu vào.


6

Một thời gian trước, tôi đã cố gắng để hiểu thuật toán PCA này và tôi muốn ghi chú về các vectơ eigen và các giá trị eigen. Tài liệu đó nói rằng mục đích của EVs là chuyển đổi một mô hình của mô hình kích thước lớn thành một mô hình có kích thước rất nhỏ.

Ví dụ, thay vì xây dựng cây cầu có kích thước đầy đủ đầu tiên và sau đó thực hiện các thử nghiệm và thử nghiệm trên nó, có thể sử dụng EV để tạo một cây cầu có kích thước rất nhỏ trong đó tất cả các yếu tố / số lượng sẽ được giảm theo cùng một lề và hơn nữa kết quả thực tế của các thử nghiệm và các thử nghiệm liên quan đến căng thẳng được thực hiện trên đó có thể được tính toán và mở rộng một cách thích hợp khi cần thiết cho mô hình ban đầu. Theo một cách nào đó EVs giúp tạo ra bản tóm tắt của bản gốc .

Đối với tôi, lời giải thích này có ý nghĩa sâu sắc với những gì tôi đang cố gắng làm! Mong nó cũng giúp được cho bạn!


-1. Có lẽ tôi đã không hoàn toàn đánh giá cao sự tương tự, nhưng nó có vẻ khá sai lệch đối với tôi. PCA thực sự (theo một cách nào đó) cho phép "chuyển đổi" mô hình "lớn" thành mô hình "nhỏ", nhưng nó làm như vậy bằng cách giảm tính chiều của bộ dữ liệu. Nhưng làm thế nào là cây cầu nhỏ có chiều thấp hơn so với cây cầu lớn?! Cả hai đều là 3D, phải không.
amip

@amoeba: trích đoạn này nằm ngoài một bài báo tôi đọc, đây không phải là lời tôi nói. Tôi đã không nghiên cứu chủ đề này từ lâu và tôi đã mất dấu vết.
Rorschach

6

Hãy tưởng tượng bà vừa mới chụp những bức ảnh và phim đầu tiên của mình trên máy ảnh kỹ thuật số mà bạn đã tặng cho cô ấy vào dịp Giáng sinh, không may cô ấy buông tay phải khi ấn nút xuống để chụp ảnh, và cô ấy cũng run lên một chút trong các bộ phim. Cô nhận thấy rằng con người, cây cối, hàng rào, tòa nhà, cửa ra vào, đồ đạc, v.v. không thẳng lên và xuống, không thẳng đứng, và sàn nhà, mặt đất, biển, đường chân trời không nằm ngang, và các bộ phim cũng khá run. Cô ấy hỏi bạn có thể giúp cô ấy sửa chúng không, tất cả 3000 bức ảnh ngày lễ và khoảng 100 video ở nhà và bãi biển (cô ấy là người Úc), mở quà, đi dạo trong nước. Cô ấy có phần mềm ảnh này cho phép bạn làm điều đó. Bạn nói với cô ấy rằng sẽ mất nhiều ngày và dù sao cũng sẽ không làm việc với các video, nhưng bạn biết các kỹ thuật được gọi là PCA và ICA có thể giúp ích. Bạn giải thích rằng nghiên cứu của bạn thực sự chỉ liên quan đến kiểu xoay dữ liệu này vào các chiều tự nhiên, rằng các kỹ thuật này tìm ra các hướng quan trọng nhất trong dữ liệu, ảnh trong trường hợp này và xoay sao cho quan trọng nhất là ngang, thứ hai là chiều dọc (và thậm chí nó có thể tiếp tục cho nhiều chiều hơn mà chúng ta không thể tưởng tượng rõ lắm, mặc dù thời gian cũng là một chiều trong các bộ phim).

-

Bên kỹ thuật. Trên thực tế, bạn có thể kiếm được bằng tiến sĩ khi làm điều này cho cô ấy, và có một bài báo quan trọng của Bell và Sejnowski (1997) về các thành phần độc lập của hình ảnh tương ứng với các cạnh. Để liên hệ điều này với PCA: ICA sử dụng PCA hoặc SVD như bước đầu tiên để giảm tính thứ nguyên và các xấp xỉ ban đầu, nhưng sau đó cải thiện chúng mà không chỉ tính đến lỗi thứ tự (SSE) như PCA, mà là lỗi thứ tự cao - nếu đó là sự thật ICA, tất cả các đơn đặt hàng cao hơn, mặc dù nhiều thuật toán tự giới hạn ở vị trí thứ 3 hoặc thứ 4. Các thành phần PCA có thứ tự thấp thường có xu hướng bị ảnh hưởng mạnh mẽ bởi các chiều ngang và dọc. Xử lý chuyển động của camera cho phim cũng có thể sử dụng PCA / ICA. Cả hai cho ảnh 2D và phim 2½D bạn cần một vài thủ thuật đại diện để đạt được điều này.

Một ứng dụng khác mà bạn có thể giải thích cho bà là không gian riêng - các hàm riêng có thứ tự cao hơn có thể xấp xỉ '7 cảm xúc cơ bản' (khuôn mặt trung bình cho mỗi trong số chúng và 'xoay theo tỷ lệ' hoặc kết hợp tuyến tính để thực hiện điều đó trung bình), nhưng chúng ta thường tìm thấy các thành phần là liên quan đến giới tính và chủng tộc, và một số có thể phân biệt các cá nhân hoặc đặc điểm cá nhân (kính, râu, v.v.). Đây là những gì xảy ra nếu bạn có một vài bức ảnh của bất kỳ một cá nhân nào và nhiều cảm xúc / biểu cảm, nhưng bạn có một sự thiên vị khác nếu bạn có nhiều khuôn mặt với biểu cảm trung tính. Sử dụng ICA thay vì PCA dường như không thực sự giúp ích nhiều cho những cảm xúc cơ bản, nhưng Bartlett và Sejnowsiki (1997) đã cho thấy nó tìm thấy các tính năng hữu ích để nhận dạng khuôn mặt.


1
Tôi đánh giá cao nỗ lực để giao tiếp với các ví dụ và bằng cách tương tự. Mặc dù vậy, việc sử dụng hình ảnh là không may vì khả năng cao bà sẽ không hiểu rằng cảm giác "xoay" của bạn không liên quan gì đến việc thực sự xoay trục của hình ảnh , cũng không có khả năng hiểu rằng bạn đang sử dụng "chiều" "Trong một ý nghĩa trừu tượng, trong đó các bức ảnh có hàng triệu chiều và không chỉ hai.
whuber

Có, bạn cần thể hiện nó như một đám mây điểm, như với các hình ảnh trong các câu trả lời khác. Tiền xử lý với một số hình thức phát hiện cạnh và / hoặc ngưỡng có thể là một phần của "thủ thuật" mà tôi đã đề cập. Nhưng để hoạt động trên một bức ảnh phức tạp đòi hỏi phải có những mánh khóe của tiến sĩ.
David MW Powers

@whuber Tôi thực sự đã sử dụng PCA (cũng là SVD) để tìm các góc quay này trong việc hiệu chỉnh hình ảnh âm thanh nổi! Nó chắc chắn là cùng một cảm giác xoay.
David MW Powers

2

Tôi nghĩ rằng tất cả mọi người bắt đầu giải thích PCA từ kết thúc sai: từ người bản địa. Câu trả lời của tôi bắt đầu ở đúng nơi: hệ tọa độ. Eigenvector, và eigenpropet nói chung, là công cụ toán học được sử dụng để giải quyết vấn đề thực sự trong tay là một hệ tọa độ sai. Tôi sẽ giải thích.

Hãy bắt đầu với một dòng. Một dòng là gì? Đó là một vật thể một chiều. Vì vậy, bạn chỉ cần một chiều để di chuyển từ điểm này sang điểm khác. Trên một mặt phẳng mặc dù bạn gắn hai tọa độ bất kỳ điểm nào của một đường thẳng. Đó là bởi vì đối với chính một dòng, hệ tọa độ được chọn tùy ý. Hệ thống tọa độ, tôi sẽ tranh luận, không phản ánh bản chất một chiều bên trong của dòng. Giá như tôi luôn đặt nguồn gốc của hệ tọa độ Cartesian của mình trên đường thẳng và xoay nó sao cho trục x của nó nằm trên đường thẳng, thì tôi sẽ không cần trục y nữa! Tất cả các điểm của tôi nằm trên một trục, bởi vì một dòng là một đối tượng một chiều.

Đó là nơi giải thích PCA nên bắt đầu. Vấn đề eigen là một công cụ thực hiện phép quay mà tôi đã mô tả và ý nghĩa của các biến đặt nguồn gốc lên dòng. PCA giúp tiết lộ kích thước thực của dữ liệu miễn là mối quan hệ giữa các biến là tuyến tính .


1

Hãy nhớ rằng một hàm riêng là một vectơ có biến đổi song song với cùng một vectơ đầu vào. Do đó, một hàm riêng có giá trị riêng cao có nghĩa là hàm riêng có mức độ "song song" cao với dữ liệu, nghĩa là bạn chỉ có thể biểu thị dữ liệu bằng vectơ này và có lỗi thấp trong biểu diễn mới. Nếu bạn chọn các trình xác định bổ sung có giá trị riêng thấp hơn, bạn sẽ có thể biểu thị nhiều chi tiết hơn của dữ liệu vì bạn sẽ đại diện cho các 'song song' khác - không nổi bật như lần đầu tiên vì giá trị riêng thấp hơn.


0

PCA về cơ bản là hình chiếu của một không gian chiều cao hơn vào không gian chiều thấp hơn trong khi vẫn bảo tồn càng nhiều thông tin càng tốt.

Tôi đã viết một bài đăng trên blog nơi tôi giải thích PCA thông qua hình chiếu của ấm trà 3D ...

nhập mô tả hình ảnh ở đây

... lên mặt phẳng 2D trong khi lưu giữ càng nhiều thông tin càng tốt:

nhập mô tả hình ảnh ở đây

Chi tiết và mã R đầy đủ có thể được tìm thấy trong bài viết:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
Những hình ảnh mặc dù, hiện tại đây là một nhận xét nhiều hơn là một câu trả lời. Bạn có thể mở rộng nó, có lẽ bằng cách đưa ra một bản tóm tắt các thông tin tại liên kết? Các bài đăng trong mạng SE được cho là có thể tự đứng vững.
gung

@gung: đủ công bằng - ý chính là PCA về cơ bản là hình chiếu của không gian chiều cao hơn (trong trường hợp này là ấm trà 3D) lên không gian chiều thấp hơn (trong trường hợp này là mặt phẳng 2D) trong khi lưu giữ nhiều thông tin như khả thi. Sẽ thay đổi nó trong câu trả lời.
vonjd

Điều đó chắc chắn đúng (& được giải thích trong nhiều câu trả lời hiện có khác về chủ đề này), nhưng nhìn chung sẽ có nhiều câu trả lời được đăng trong hệ thống SE, và họ có thể tự đứng vững nếu, ví dụ, liên kết bị chết.
gung

1
Ví dụ ấm trà là thú vị. Bạn nói rằng PCA là một hình chiếu cho không gian chiều thấp hơn trong khi vẫn giữ được nhiều 'thông tin'. Nhưng .... thông tin là gì? Trong trường hợp PCA, điều này có nghĩa là giữ cho tổng phương sai càng cao càng tốt. Ví dụ về bình trà giống như nói rằng thông tin được "bảo tồn nhiều nhất" bằng cách sử dụng phép chiếu trong một mặt phẳng cụ thể, nhưng điều này giải thích rất ít về cách PCA thực hiện điều này và liệu đó cũng là 'lựa chọn' thông tin tốt nhất. Chẳng hạn, LDA cũng là một phép chiếu có ý định lưu giữ thông tin, nhưng không giống với PCA.
Martijn Weterings

Nếu ấm trà của bạn sẽ có hình tròn / tròn (thấp hơn) so với PCA thì sẽ 'chọn' một giao lộ khác để lưu giữ hầu hết "thông tin".
Martijn Weterings

-4

Có lẽ muộn trong các phân tích này là giả định ngầm định rằng dữ liệu từ nhóm I khác với nhóm II và người ta đang cố gắng tìm ra thành phần nào có khả năng là yếu tố đóng góp chính cho sự khác biệt.

Thực hiện phân tích PCA dẫn đến các ellipsoids giống hệt nhau cho 2 bộ khác nhau sau đó cho bạn biết rằng hai bộ không khác nhau bởi bất kỳ tham số nào bạn đã đo.


2
Tôi tự hỏi nếu bạn đang nghĩ về MANOVA. Nếu bạn đã chạy hai PCA sepa4ate, bạn sẽ chỉ cho thấy cấu trúc al tương quan là tương tự nhau.
gung

2
-1. Đây là một câu trả lời hoàn toàn sai lệch, vì lý do được nêu ra bởi @gung. Ngoài ra, nó thậm chí không cố gắng giải thích PCA là gì.
amip
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.