"Học máy cho tin tặc" của O'Reilly nói rằng mỗi thành phần chính đại diện cho một tỷ lệ phần trăm chênh lệch. Tôi đã trích dẫn phần có liên quan của trang bên dưới (chương 8, tr.207). Nói chuyện với một chuyên gia khác, họ đồng ý đó là tỷ lệ phần trăm.
Tuy nhiên, 24 thành phần tổng cộng tới 133,2095%. Làm thế nào mà có thể được?
Đã thuyết phục bản thân rằng chúng ta có thể sử dụng PCA, làm thế nào để chúng ta làm điều đó trong R? Một lần nữa, đây là nơi R tỏa sáng: toàn bộ PCA có thể được thực hiện trong một dòng mã. Chúng tôi sử dụng chức năng Princeomp để chạy PCA:
pca <- princomp(date.stock.matrix[,2:ncol(date.stock.matrix)])
Nếu chúng ta chỉ cần nhập pca vào R, chúng ta sẽ thấy một bản tóm tắt nhanh chóng về các thành phần chính:
Call: princomp(x = date.stock.matrix[, 2:ncol(date.stock.matrix)]) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 29.1001249 20.4403404 12.6726924 11.4636450 8.4963820 8.1969345 5.5438308 Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13 Comp.14 5.1300931 4.7786752 4.2575099 3.3050931 2.6197715 2.4986181 2.1746125 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19 Comp.20 Comp.21 1.9469475 1.8706240 1.6984043 1.6344116 1.2327471 1.1280913 0.9877634 Comp.22 Comp.23 Comp.24 0.8583681 0.7390626 0.4347983 24 variables and 2366 observations.
Trong bản tóm tắt này, độ lệch chuẩn cho chúng ta biết bao nhiêu phương sai trong tập dữ liệu được tính bởi các thành phần chính khác nhau. Thành phần đầu tiên, được gọi là Comp.1, chiếm 29% phương sai, trong khi thành phần tiếp theo chiếm 20%. Cuối cùng, thành phần cuối cùng, Comp.24, chiếm ít hơn 1% phương sai. Điều này cho thấy rằng chúng ta có thể tìm hiểu rất nhiều về dữ liệu của mình bằng cách chỉ nhìn vào thành phần chính đầu tiên.
[Mã và dữ liệu có thể được tìm thấy trên github .]
R
chính phần mềm. Phát hiện ra lỗi đó là một nhược điểm tốt (tôi hy vọng bạn thấy nó bổ ích khi tìm hiểu điều gì đang thực sự xảy ra với PCA)!
Standard deviations
là hơi tắt. Vì độ lệch chuẩn thực tế là độ lệch chuẩn, chúng ta phải bình phương chúng để xem mức độ sai lệch của mỗi thành phần. Thành phần đầu tiên sẽ đại diện cho phần trăm của tổng phương sai.