Có bất kỳ giá trị nào trong việc giảm kích thước của một tập dữ liệu trong đó tất cả các biến xấp xỉ trực giao không?


11

Giả sử tôi có một bộ dữ liệu chiều nơi kích thước là khoảng trực giao (có sự tương quan không).NNN

Có tiện ích nào về:

  1. Hình dung
  2. Đại diện (cho hiệu quả phân loại)
  3. Hoặc các tiêu chí khác

để thực hiện giảm kích thước trên dữ liệu?


3
Một phần câu trả lời có liên quan thống kê.stackexchange.com/a/92804/3277
ttnphns 24/12/14

Câu trả lời:


8

Tôi muốn làm rõ một bình luận mà tôi đã để lại dưới câu trả lời của @ Peter-Flom nhưng có lẽ đáng để viết trong một câu trả lời. Ở mức độ nào bạn có thể giảm kích thước bằng cách chạy PCA trên dữ liệu gần như trực giao? Câu trả lời là "nó phụ thuộc" vào việc bạn thực hiện PCA trên ma trận tương quan hay hiệp phương sai .

Nếu bạn đang sử dụng PCA trên ma trận tương quan, thì điều này sẽ chỉ khác một chút so với ma trận danh tính, có một đối xứng hình cầu làm cho tất cả các hướng "có nhiều thông tin như nhau". Thay đổi kích thước phương sai của các biến của bạn thành một trước PCA là một cách tiếp cận tương đương về mặt toán học sẽ tạo ra kết quả tương tự. Mặc dù đầu ra PCA sẽ xác định một số thành phần có phương sai thấp hơn một chút so với các thành phần khác, nhưng điều này có thể được quy cho (nếu chúng ta giả sử không có mối tương quan trong dân số) với không có gì khác hơn là biến đổi cơ hội trong mẫu, vì vậy sẽ không phải là lý do chính đáng để loại bỏ những điều này các thành phần. Trong thực tế, sự chênh lệch như vậy giữa độ lệch chuẩn của các thành phần sẽ giảm độ lớn khi chúng ta tăng kích thước mẫu. Chúng tôi có thể xác nhận điều này trong một mô phỏng.

set.seed(123)
princompn <- function(n, sd1=1, sd2=1, sd3=1, sd4=1, cor=TRUE) {
    x1 <- rnorm(n, mean=0, sd=sd1)
    x2 <- rnorm(n, mean=0, sd=sd2)
    x3 <- rnorm(n, mean=0, sd=sd3)
    x4 <- rnorm(n, mean=0, sd=sd4)
    prcomp(cbind(x1,x2,x3,x4), scale.=cor)
}

Đầu ra:

> pc100 <- princompn(100)
> summary(pc100)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     1.0736 1.0243 0.9762 0.9193
Proportion of Variance 0.2882 0.2623 0.2382 0.2113
Cumulative Proportion  0.2882 0.5505 0.7887 1.0000
> 
> pc1m <- princompn(1e6)
> summary(pc1m)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     1.0008 1.0004 0.9998 0.9990
Proportion of Variance 0.2504 0.2502 0.2499 0.2495
Cumulative Proportion  0.2504 0.5006 0.7505 1.0000

Tuy nhiên, nếu bạn thực hiện PCA bằng ma trận hiệp phương sai thay vì ma trận tương quan (tương đương: nếu chúng ta không chia tỷ lệ độ lệch chuẩn thành 1 trước khi áp dụng PCA), thì câu trả lời phụ thuộc vào mức độ lan truyền của các biến. Nếu các biến của bạn có cùng phương sai thì chúng ta vẫn có đối xứng hình cầu, do đó không có "hướng đặc quyền" và không thể giảm được chiều.

> pcEqual <- princompn(n=1e6, sd1=4, sd2=4, sd3=4, sd4=4, cor=FALSE)
> summary(pcEqual)
Importance of components:
                          PC1    PC2    PC3    PC4
Standard deviation     4.0056 4.0010 3.9986 3.9936
Proportion of Variance 0.2507 0.2502 0.2499 0.2492
Cumulative Proportion  0.2507 0.5009 0.7508 1.0000

Tuy nhiên, với một hỗn hợp của các biến phương sai cao và thấp, đối xứng giống như một hình elip với một số trục rộng và các trục khác mỏng. Trong tình huống này, sẽ có các thành phần có phương sai cao tải trên các biến có phương sai cao (trong đó ellipsoid rộng) và các thành phần có phương sai thấp tải trên các biến có phương sai thấp (theo hướng của ellipsoid là hẹp).

> pcHiLo <- princompn(n=1e6, sd1=4, sd2=4, sd3=1, sd4=1, cor=FALSE)
> summary(pcHiLo)
Importance of components:
                          PC1    PC2    PC3     PC4
Standard deviation     4.0018 3.9985 1.0016 1.00005
Proportion of Variance 0.4709 0.4702 0.0295 0.02941
Cumulative Proportion  0.4709 0.9411 0.9706 1.00000
> round(pcHiLo$rotation, 3)
      PC1   PC2    PC3    PC4
x1  0.460 0.888  0.000  0.000
x2 -0.888 0.460  0.000  0.000
x3  0.000 0.000 -0.747 -0.664
x4  0.000 0.000  0.664 -0.747

Nếu các biến có phương sai rất khác nhau (về mặt hình học một lần nữa nhưng với tất cả các trục khác nhau), thì tính trực giao cho phép PC đầu tiên tải rất nhiều vào biến có phương sai cao nhất, v.v.

> pc1234 <-  princompn(n=1e6, sd1=1, sd2=2, sd3=3, sd4=4, cor=FALSE)
> summary(pc1234)
Importance of components:
                          PC1    PC2    PC3     PC4
Standard deviation     3.9981 3.0031 1.9993 1.00033
Proportion of Variance 0.5328 0.3006 0.1332 0.03335
Cumulative Proportion  0.5328 0.8334 0.9667 1.00000
> round(pc1234$rotation, 3)
     PC1    PC2    PC3   PC4
x1 0.000  0.000 -0.001 1.000
x2 0.001 -0.001  1.000 0.001
x3 0.003 -1.000 -0.001 0.000
x4 1.000  0.003 -0.001 0.000

Trong hai trường hợp gần đây, có các thành phần phương sai thấp, bạn có thể cân nhắc việc vứt bỏ để đạt được giảm kích thước, nhưng làm như vậy chính xác tương đương với việc loại bỏ các biến phương sai thấp nhất ở vị trí đầu tiên . Về cơ bản, tính trực giao cho phép bạn xác định các thành phần có phương sai thấp với các biến có phương sai thấp, vì vậy nếu bạn có ý định giảm tính chiều theo cách này, thì rõ ràng bạn sẽ không có lợi khi sử dụng PCA để làm như vậy.

Ghi chú: khoảng thời gian thảo luận về trường hợp các biến không được định cỡ lại thành phương sai đơn vị - tức là sử dụng hiệp phương sai thay vì ma trận tương quan - không nên được coi là một dấu hiệu cho thấy cách tiếp cận này quan trọng hơn và chắc chắn không phải là nó tốt hơn". Tính đối xứng của tình huống đơn giản là tinh tế hơn nên cần phải thảo luận lâu hơn.


Câu trả lời của tôi có lẽ trả lời tốt nhất cho vấn đề được đặt ra bởi người đăng ban đầu (đó là về những gì PCA có thể hoặc không thể đạt được), mà tôi đoán là giải thích về dấu tick màu xanh lá cây! Nhưng tôi mong độc giả hãy xem câu trả lời của @ RyanBressler, nơi cung cấp các giải pháp thay thế .
Cá bạc

11

Bạn có thể thử một phương pháp học đa chiều giảm tuyến tính tổng quát hơn như nhúng tuyến tính cục bộ, bản đồ điện tử laplacian hoặc t-SNE.

Hoàn toàn có thể có một không gian con chiều thấp hơn (đa tạp) trong dữ liệu của bạn theo cách để lại 0 tương quan giữa các kích thước cơ sở N. Ví dụ: một vòng tròn các điểm về nguồn gốc hoặc dạng sóng như được thấy ở đây . PCA sẽ không chọn điều này nhưng các phương pháp khác sẽ.

Nhìn vào các phương pháp như vậy đặc biệt thú vị và phổ biến để trực quan hóa và phân tích dữ liệu khám phá. Để sử dụng trong một trình phân loại hoặc mô hình khác, bạn sẽ cần giới hạn bản thân trong các phương pháp có thể phù hợp với đào tạo và áp dụng trong bài kiểm tra loại trừ rất nhiều các phương pháp này. Nếu đây là mối quan tâm chính của bạn, bạn cũng nên xem xét các phương pháp cho kỹ thuật tiền xử lý không giám sát và (được giám sát).


6

Nếu tất cả các biến N gần như trực giao thì việc giảm kích thước sẽ giảm tương đối ít. Ví dụ như trongR

set.seed(123)
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- rnorm(100)
x4 <- rnorm(100)
x5 <- rnorm(100)
x6 <- rnorm(100)
x7 <- rnorm(100)
x8 <- rnorm(100)
x9 <- rnorm(100)
x10 <- rnorm(100)

df1 <- cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)

pcsol <- princomp(df1)
loadings(pcsol)

Về bản chất, "trực giao" ngụ ý "đã ở kích thước nhỏ nhất".


2
bạn có một lỗi đánh máy nhỏ trong "orthongonal"
Silverfish

6
@Silverfish, orthon là "một người hình người có chiều cao trung bình với mái tóc vàng dài và làn da rám nắng mang đôi giày màu nâu đỏ". Mặc dù bạn có thể đúng trong đó Peter có nghĩa khác nhau.
ttnphns

4
Có đáng để chỉ ra câu trả lời này phụ thuộc vào cách các biến được thu nhỏ không? Nếu có các biến phương sai cao và thấp và chúng tôi thực hiện PCA trên ma trận hiệp phương sai không tương quan, thì sẽ có các thành phần phương sai thấp có thể được loại bỏ (tính trực giao chỉ có nghĩa là tải của chúng xác định chúng với một biến phương sai thấp). Thực hiện các thay đổi nhỏ sau đây: x1<-rnorm(100, sd=0.1)pcsol <- princomp(df1, cor=FALSE)có một sự khác biệt, đặc biệt nếu chúng ta nhìn vào summary(pcsol). (Tôi không đề xuất cov là cách tiếp cận tốt hơn cor, chỉ là nó có thể.)
Silverfish

Tôi đã sửa lỗi đánh máy, cảm ơn. Ngoài ra, điểm tốt về quy mô.
Peter Flom - Tái lập Monica

2
Điều này không chỉ áp dụng cho việc giảm kích thước dựa trên hiệp phương sai sao? Tại sao, không, nói, quy mô đa chiều làm giảm bất kỳ ở đây?
Shadowtalker
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.