Phương pháp đơn giản nh¿t trong các thu¿t toán Dimensionality Reduction dựa trên một mô hình tuyến tính, có tên là Principal Component Analysis PCA, tāc Phân tích thành phần chính.. Phư
Trang 1Đ¾ I HàC QU C GIA THÀNH PHà Hâ CHÍ MINH à
TR¯âNG Đ¾I HàC BÁCH KHOA KHOA KHOA H C VÀ NG D à Ā ĀNG
MÔN Đ¾I Sà TUY¾N TÍNH
ĐÀ TÀI 11:
( PCA: PRINCIPAL COMPONENT ANALYSIS )
Láp L07 - Nhóm 6
GV hướ ng d n: Th y ẫ Á Đặng Văn Vinh
Trang 2Đ¾ I HàC QU C GIA THÀNH PHà Hâ CHÍ MINH à
TR¯âNG Đ¾I HàC BÁCH KHOA
KHOA KHOA H C VÀ NG D à Ā ĀNG
ĐÀ TÀI 11:
( PCA: PRINCIPAL COMPONENT ANALYSIS )
Láp L07 - Nhóm 6
GV hướ ng d n: Th y ẫ Á Đặng Văn Vinh
Trang 3Lßp L07_Nhóm 6
Danh sách thành viên
TP.HCM, 12/2021
Trang 4TÓM T T BÁO CÁO À
Āng dụng Phân tích thành ph n chínhầ ( PCA : Principal Component Analysis ) trong gi ảm chi u dÁ ữ liệ u ( Dimensionality Reduction ) là một đề tài hay và thú v ị mang giá tr nghiên cị āu và học t p cao Cùng v i s yêu thích b môn ¿ ß ự ộ Đạ ối s tuy n ế tính cũng như mong muốn tìm tòi h c họ ỏi là lý do nhóm em quyết định th c hiự ện đề tài này
Đề tài được yêu c u gi i quyết các thông s d liệu và bi u di n chúng 1 cách tr c Á ả ố ữ ể ễ ự quan Để có th th c hi n tể ự ệ ốt các tiêu chí đề ra nhóm em c n tìm hi u v nh ng kiÁ ể ề ữ ến thāc nền t ng v PCA trong Machine Learning và liên h v i nhả ề ệ ß ững āng dụng thực
tế Song song vßi đó cũng cÁn v n d ng nh¿ ụ ững kiến thāc đã được các thÁy cô gi ng ả dạy để có thể hoàn thành đề tài một cách t t nh t ố ¿
Sau khi th c hiự ện đề tài, nhóm em đã có cái nhìn sâu sÁc hơn về ự Á s g n k t gi a lý ế ữ thuyết và thực tế Cũng góp phÁn cũng cố ến thāc n n t ki ề ảng về chuyên đề Phân tích thành ph n chínhầ Bên cạnh đó cũng giúp chúng em phát huy khả năng làm việc nhóm, x lí thông tin và d li u, nâng cao hi u bi t v s dử ữ ệ ể ế ề ử ụng công ngh thông ệ tin trong h c tọ ¿p và công vi c sau này ệ
Trang 5LàI M â ĐÀ U
Đ¿ i s ố tuy n tính là môn hác có tÁm quan tr ¿ áng đố ới sinh viên ĐH i v Bách Khoa TPHCM nói riêng và sinh viên các ngành kh i khoa h c k ố á ỹ
thu ật công ngh – ß nói chung Do đó, vißc dành cho môn hác này một
kh ối lượng th i gian nh ờ ¿t đßnh và thực hành là điÁu t t y ¿ ¿u đà giúp cho
s inh viên có được cơ sở vāng ch c v các môn KHTN và làm ti ắ Á Án đÁ đÃ
h ác t ốt các môn khác trong chương trình đào t¿ o
Trong su t quá trình th c hi n bài t p l n nói trên, nhóm chúng em ố ự ß ậ ớ đã
nh ận đượ c r ¿t nhiÁu sự quan tâm và ÿng h ộ, giúp đỡ t ận tình cÿa thÁy
cô, anh ch và b ß ¿n bè Ngoài ra, nhóm cũng xin gÿ ờ i l i tri ân chân
thành đ¿ n Th Áy Đặng Văn Vinh , là gi Áng viên và cũng là người hướng
d ẫn nhóm em trong đÁ tài này Nh có th y h t lòng ch b o mà nhóm ờ Á ¿ ỉ Á
đã hoàn thành tià u lu ận đúng ti¿n độ và gi Ái quy¿t tốt nh āng vướ ng
m ắc g p ph i S ặ Á ự hướng dẫn c a th ÿ Áy đã là chìa khóa cho má i hành
độ ng c ÿa nhóm và phát huy t ối đa đượ c m ối quan h hỗ trợ giāa thÁy ß
và trò trong môi trường giáo dục
L ời cu i, xin m t l n n a g i l i bi ố ộ Á ā ÿ ờ ¿t ơn sâu sắc đ¿ n các cá nhân, các
th Áy c ô đã dành thờ i gian ch d ỉ ẫn cho nhóm Đây chính là niÁ m tin, ngu ồn độ ng l ực to l ớn đà nhóm có th à đ¿t đượ c k ¿t quÁ này.
Trang 6M ục l c ụ
Chương 1: Mã đÁu : 8
1 Sơ lược về đề tài
2 Yêu c u Á
3 Điều kiện
4 Nhiệm vụ
Chương 2: Cơ sã lý thuyết:
1 Khái ni ệm cơ bả n: 9
2 Áp d ụng vào đề tài: 9
3 Các bưß c tiến hành PCA : ……… 1 1 Chương 3: Āng dụng thực tế:
Trang 7Danh m c hình nh minh h ụ Á áa:
Hình 2.2.1: hình nh con l ả ạc đà 10
Hình 3.1.1: hình nh v ả ề vector component ……… 13 Hình 3.1.2: minh h a v bài toán chuy n h t ọ ề ể ệ ọa độ ………… 13
Trang 8Chương 1: Mở đÁu
1.1-S¡ l°ÿc vÁ Dimensionality Reduction ( giảm chiÁu dữ liệu ):
Dimensionality Reduction (giảm chiều dữ liệu), là một trong những kỹ thu¿t quan trọng trong Machine Learning Các feature vectors trong các bài toán thực tế có thể có số chiều r¿t lßn, tßi vài nghìn Ngoài ra, số lượng các điểm dữ liệu cũng thưáng r¿t lßn Nếu thực hiện lưu trữ và tính toán trực tiếp trên dữ liệu có số chiều cao này thì sẽ gặp khó khăn cả
về việc lưu trữ và tốc độ tính toán Vì v¿y, giảm số chiều dữ liệu là một bưßc quan trọng trong nhiều bài toán Đây cũng được coi là một phương pháp nén dữ liệu
Dimensionality Reduction, nói một cách đơn giản, là việc đi tìm một hàm số, hàm số này l¿y đÁu vào là một điểm dữ li u ban ệ đÁu �㕥 ∈ ý�㔷 v i D r t l n, và tß ¿ ß ạo ra 1 điểm d li u mữ ệ ßi
�㕧 ∈ ý�㔾 có số chiều K < D
Phương pháp đơn giản nh¿t trong các thu¿t toán Dimensionality Reduction dựa trên một
mô hình tuyến tính, có tên là Principal Component Analysis (PCA), tāc Phân tích thành
phần chính Phương pháp này dựa trên quan sát rằng dữ liệu thưáng không phân bố ngẫu nhiên trong không gian mà thưáng phân bố gÁn các đưáng/mặt đặc biệt nào đó
1.2-Yêu cầu đÁ tài:
1/ Nêu cơ sở lý thuy¿t cÿa phân tích thành phÁn chính (PCA: principle
component analysis)
2/ ng d ng cĀ ụ ÿa phân tích PCA đà Á gi m chi u d li u Á ā ß
1.3- ĐiÁu ki n: ệ
• Sinh viên c n có ki n th c v bÁ ế ā ề ộ môn Đạ ối s tuy n tính nói chung và hi u bi t ế ể ế
cơ bản về phép phân tích thành phÁn chính trong machine learning nói riêng
• Tìm hiểu các ng d ng phân tích thành ph n chính PCA thā ụ Á ực tiễn
1.4- Nhi m v : ệ ā
• Tìm hiểu v ề cơ sã lý thuy t n n t ng c a thu t toán PCA ế ề ả ÿ ¿
Trang 9• Không nh t thi t ph i dùng ¿ ế ả matlab để minh họa, nhưng phải có ít nh t 1 ví d ¿ ụ thực tế
Chương 2: Cơ sở lý thuy¿t
2.1-Khái niệm c¡ bản:
Phương pháp phân t椃Āch th nh ph n chc ầ 椃Ānh ( PCA ) l à phương pháp biến đi tư뀀 m t không ộ gian nhi u chi u th nh m t không gian m i ề ề à ộ ß ít chi u, c th l gi m chi u d li u tề ụ ể à ả ề ữ ệ ư뀀 D v K ề
< D là ch gi l i K là ỉ ữ ạ phần tử quan tr ng nhá ất Tuy nhiên, vi c làm này ch c chệ Á Án chưa phải t t nh t vì ố ¿ chúng ta chưa biết xác định thành ph n nào là quan trÁ ọng hơn Hoặc trong trưáng h p x¿u nhợ ¿t, lượng thông tin mà mỗi thành phÁn mang là như nhau, bỏ đi thành phÁn nào cũng dẫn đến việc m t một lượng thông tin lßn ¿
Tuy nhiên, n u chúng ta có th bi u di n các vector d liế ể ể ễ ữ ệu ban đÁu trong m t hộ ệ cơ sã mßi c i m cá à ó t Ám quan trá gi a các thành ph n là khác nhau rõ r t, thì chúng ta có th ng ữ Á ệ ể
bỏ qua nh ng thành ph n ít quan tr ng nh t ữ Á ọ ¿
Mục tiêu cÿa chúng ta l tà ìm ra K chi u m cề à ó thể đảm b o r ng cả ằ ác dữ ệu khi được biể li u diễn, không bị tr ng l p không b m t m t thông tin ( t ch bi t nhau ho n to n ) w Á ị ¿ á á ệ à à
2.2- Áp d ng lí thuyā ¿t để phân tích tài: đÁ
PCA là phương pháp biến đi giúp giảm số lượng lßn các biến có tương quan với nhau
thành t p ít các bi n sao cho các bi n m i t o ra là t h p tuy n tính c a nh ng bi¿ ế ế ß ạ ợ ế ÿ ữ ến cũ không có tương quan lẫn nhau
Ví d , chúng ta có 1000 biụ ến ban đÁu có tương quan tuyến tính vßi nhau, khi đó chúng ta
sử dụng phương pháp PCA xoay chiều không gian cũ thành chi u không gian m i mà ề ß ã đó chỉ còn 10 biến không có tương quan tuyến tính mà v n dẫ ữ được nhi u nhề ¿t lượng thông tin tư뀀 nhóm biến ban đÁu
Hay nói cách khác, PCA chính là phương pháp đi tìm 1 hệ cơ sã ß m i sao cho thông tin dữ liệu ch y u t p trung ÿ ế ¿ ã 1 vài tọa độ 1 cách tr c quan, ph n còn l i chự Á ạ ỉ mang một lượng nhỏ thông tin ( để đơn giản trong tính toán, PCA s tìm 1 ẽ hệ tr c chuự ẩn làm cơ sã mßi )
Trang 10( hình ảnh minh h a cho PCA : cùng là 1 chú lọ ạc đà, tuy nhiên vßi các cách nhìn khác nhau ( các tr c thông tin khác nhau ụ ) thì ta l i có nh ng cách thu nh n thông tin khác ạ ữ ¿
nhau tư뀀 đó cho ra những k t lu n khác nhau ) ế ¿ L¿y m t ví d v viộ ụ ề ệc có hai camera đặt dwng để ch p mụ ột con ngưái, một camera đặt phía trưßc ngưái và một camera đặt trên đÁu Rõ ràng là hình ảnh thu được tư뀀 camera đặt phía trưßc ngưái mang nhiều thông tin hơn so vßi hình ảnh nhìn tư뀀 phía trên đÁu Vì v¿y, bāc
ảnh chụp tư뀀 phía trên đÁu có thể được bỏ qua mà không có quá nhi u thông tin về hình ề dáng cÿa ngưái đó bị ¿t m
V¿y ta có th k ể ể đ¿ n m t s ß á đặ c tính cÿa PCA nh° sau:
• Giúp giảm số chiều dữ liệu - Giúp visualization khi dữ liệu có quá nhiều chiều thông tin
• Do dữ liệu ban đÁu có số chiều lßn (nhiều biến) thì PCA giúp chúng ta xoay trục tọa
độ, xây dựng một trục tọa độ mßi đảm bảo độ biến thiên cÿa dữ liệu và giữ lại được nhiều thông tin nh¿t mà không ảnh hưãng tßi ch¿t lượng cÿa các mô hình dự báo (Maximize the variability)
• Do PCA giúp tạo 1 hệ trục tọa độ mßi nên về mặt ý nghĩa toán học, PCA giúp chúng
ta xây dựng những biến factor mßi là t hợp tuyến tính cÿa những biến ban đÁu
• Trong không gian mßi, có thể giúp chúng ta khám phá thêm những thông tin quý giá mßi khi mà tại chiều thông tin cũ những thông tin quý giá này bị che m¿t (Điển hình cho ví dụ về chú lạc đà phía trên)
Và m t s h n ch c a PCA: ß á ¿ ¿ ÿ
• Chỉ làm việc vß ữ ệi d li u numeric
• Nhạy c m vả ßi các điểm outlier ( điểm d bi t có th làm méo mó tính chu n hóa c a ị ệ ể ẩ ÿ các d li u ) ữ ệ
Trang 11• Không phù h p v i các mô hình phi tuy n, do PCA hoàn toàn d a trên các biợ ß ế ự ến đi
tuyến tính
2.3- Các b°ác ti n hành PCA: ¿
Phương pháp PCA sẽ "chi u" (bi u di n) d liế ể ễ ữ ệu đa chiều lên một không gian có cơ sã trực giao th c, n u ta xem mā ế ỗi cơ sã trong không gian mßi là m t bi n thì hình ộ ế ảnh cÿa dữ li u ệ gốc trong không gian m i này sß ẽ được bi u di n thông qua các biể ễ ến độ ¿c l p tuy n tính ế V¿n đề là nếu chuyển dữ liệu ban đÁu sang không gian mßi thì những thông tin đáng quan tâm c a d liÿ ữ ệu ban đÁu liệu có b mị ¿t? Để ả gi i quy t vế ¿n đề này phương pháp PCA sẽ tìm không gian m i v i tiêu chí c g ng phß ß ố Á ản ánh được càng nhi u thông tin g c càng t t và ề ố ố thưßc đo cho khái niệm "thông tin" ã đây là ph°¡ng sai Một điểm hay nữa là các biến trong không gian mßi độ ¿c l p nên ta có thể tính toán đượ ỷ ệ ải thích phương sai cÿc t l gi a tư뀀ng bi n mế ßi đố ß ữ ệu điều này cho phép ta cân nh c vi c ch dùng s ít các bii v i d li Á ệ ỉ ố ến để giải thích d li u Nói 1 cách ng n gữ ệ Á ọn, m c tiêu cụ ÿa phương pháp PCA là tìm 1 không gian m i ( v i ß ß sá chi u nhÁ ß h¡n không gian cũ ) Các tr c tụ ọa độ trong không gian m i ß được xây dựng sao cho trên mỗi trục, độ ến thiên dữ liệu là l n nh¿t có thể ( maximize bi ß
the variability )
Bưßc 1 Tính giá trị trung bình �㕋 c a ÿ �㕋
Bưßc 2 Tính véctơ �㕋 =�㕋 2 �㕋
Tính ma tr n hi¿ ệp phương sai: þ = 1
�㕁−1�㕇�㕋 �㕋 Bưßc 3 Tìm tr riêng cÿa và sị þ Áp xếp theo giá tr giảm dÁn ị
�㔆1> �㔆 > ⋯ > �㔆2 �㕚và tìm các véctơ riêng đơn vị ā ng v i các tr riêng ß ị
Bưßc 4 Ch n ọ �㕘 tr ịriêng ban đÁu và �㕘 véctơ riêng đơn vị āng v i các tr riêng này L p ma ß ị ¿ tr¿n A có các cột là các véctơ riêng đã chọn Ma tr n A là phép bi¿ ến đ Ái c n tìm
Bưßc 5 T nh ảnh �㔴ỉ �㕇 �㕇 cÿa véctơ �㕋�㕋
Dữ li u ệ �㕋 ban đÁu đượ ¿ ỉ ã �㕋 ≈ �㔴�㕋c x p x b i + �㕋
Mỗi c t cộ ÿa �㔴�㕋�㕇 ch a tā ọa độ ÿ c a các hàng c a ma tr n y ÿ ¿ ¿ trong cơ sã ư뀀 t các c t c a ma ộ ÿ tr¿n �㕃
L°u ý:
1/ Ma tr n là ma tr¿ þ ¿n đố āi x ng thực và các trị riêng c a là các s thÿ þ ố ực không âm
2/ Ma tr n luôn chéo hóa tr¿ þ ực giao được
Trang 123/ Trên đưáng chéo cÿa þ là phương sai cÿa các véctơ �㕥1;�㕥2; … ;�㕥�㕁
PhÁn tử �㕠ÿĀ, là hiệp phương sai cÿ �㕥a ÿ và �㕥Ā
Tng các ph n t Á ử trên đưáng chéo cÿa S là phương sai cÿa bảng d li u ữ ệ
Giả s ử þ = �㕃�㔷�㕃�㕇 Trên đưáng chéo c a ÿ �㔷 là các giá trị riêng c a ÿ þ Tng các giá tr riêng c a b ng t ng các ph n t c a (b ng v t c a ) ị ÿ þ ằ Á ử ÿ þ ằ ế ÿ þ
4/ Ma tr n ¿ �㕃 là ma tr n tr c giao M i ma tr n tr¿ ự ỗ ¿ ực giao tương āng v i m t phép quay Các ß ộ cột c a ma trÿ ¿n �㕃 ạ t o nên hệ tr c chu n N u ta chự ẩ ế ọn cơ sã ự tr c chuẩn là họ véctơ cộ ÿt c a
ma tr n ¿ �㕃, thì ta xây dựng được h tr c tệ ụ ọa độ ß ựa trên các véctơ này và có mộ m i d t phép quay tư뀀 ệ ục ban đÁ h tr u sang h trệ ục tọa độ ß m i
5/ N u d li u m u (sample data), thì ế ữ ệ ẫ þ = 1
�㕁−1∙�㕇�㕋 �㕋 Nếu d li u dân s (population data), thì ữ ệ ố þ = 1
� 㕁∙�㕇�㕋�㕋
Trang 13Ý nghĩa ma tr¿n hiệp phương sai: Ma tr¿n hiệp phương sai cÿa t¿p hợp m biến ngẫu nhiên
là một ma tr¿n vuông hạng ( m x m ) trong đó các phÁn tử nằm trên đưáng chéo ( tư뀀 trái sang phải, tư뀀 trên xuống dưßi ) lÁn lượt là phương sai tương āng cÿa các biến này, trong khi các phÁn tử còn lại ( không nằm trên đưáng chéo ) là các hiệp phương sai cÿa đôi một hai biến ngẫu nhiên khác nhau trong t¿p hợp
phương sai cÿa các mẫu dữ liệu theo tư뀀ng chiều trong không gian m chiều
• Có thể tạm hiểu rằng, độ lßn về giá trị cÿa mỗi phÁn tử cxy trong ma tr¿n hiệp phương sai thể hiện māc độ tương quan (thể hiện bãi phép nhân vô hưßng, tiếng Anh: dot product) về độ lệch (thao tác trư뀀 cho giá trị trung bình => tạm gọi nó là
"độ lệch") cÿa các mẫu dữ liệu theo chiều xx (dòng thā x trong ma tr¿n hiệp phương sai) và chiều yy (cột thā y trong ma tr¿n hiệp phương sai)
3.1- Gi i thi u: á ệ
PCA ( Principal Component Analysis ), các components ( th nh ph n ) à Á ã đây ta nói thực ch¿t là các vectors độc l¿p tuyến tính được chọn sao cho khi chiếu các điểm dữ liệu lên vector đó thì các điểm dữ liệu có sự variance lßn nh¿t ( biến động nhiều nh¿t, phương sai
lßn nh¿t)
Để trực quan hơn chúng ta đi đến ví dụ như hình bên,
chúng ta ch n 2 vector component theo th t : 1st ọ ā ự
Comp s có mẽ āc độ variance l n nh t, ta chß ¿ ọn trưßc,
sau đó đến 2nd Comp… và cā thế Khi làm thực tế
chúng ta s cẽ Án xác định ho c th sai xem s ch n bao ặ ử ẽ ọ
nhiêu components là h p lý và mang l i k t qu t t nhợ ạ ế ả ố ¿t
Trang 14Xét một cách nhìn khác thì PCA cũng là một bài toán chuyển hệ tọa độ như hình dưßi:
Ví d ụ sau đây sẽ gi i th ch lý do t i sao ch ng ta c n ch n th nh phả í ạ ú Á ọ à Án để ữ ệ d li u c ó độ bi n ế thiên phương sai nhiều nh¿t :
Xét bài toán phân loại : Ung thư/ Không ung thư, Spam/Normal… Bây giá ế n u chúng ta chọn một th nh ph n mà chi u à Á ế lên đó các điểm d li u không cữ ệ ó phương sai lßn, nó sẽ đè lên nhau và co c m l i m t ch => không tr c quan và khó phân lo i Nói cách khác là làm ụ ạ ộ ỗ ự ạ sao tìm được đưáng hay mặt phẳng chia tách các dữ liệu đó thành hai phÁn khác nhau cho hai lo i khác nhaạ u Do đó, ta phải ch n th nh ph n sao cho khi chiọ à Á ếu data lên comp đó thì
nó c ó phương sai lßn nh¿t
3.2- Th c ti n: ự ễ
• Tci ch椃Ānh đßnh l°ÿng:
Trong tài chính định lượng, phân tích thành phÁn chính có thể được áp dụng trực tiếp vào việc quản lý rÿi ro cÿa các danh mục đÁu tư phá sinh lãi su¿t Giao dịch nhiều công cụ t hoán đi thưáng là một chāc năng cÿa 30–500 công cụ hoán đi có thể định giá trên thị trưáng được tìm cách giảm xuống thưáng là 3 hoặc 4 thành phÁn chính, thể hiện đưáng đi cÿa lãi su¿t trên cơ sã vĩ mô Việc chuyển đi rÿi ro được thể hiện dưßi dạng các rÿi ro thành hệ số tải (hoặc hệ số nhân) cung c¿p các đánh giá và hiểu biết vượt ra ngoài khả năng sẵn có để chỉ đơn giản là xem xét chung các rÿi ro đối vßi nhóm 30–500 riêng lẻ
• Khoa h c th n kinh: á ầ
Một bi n th c a phân tích các thành phế ể ÿ Án chính đượ ử ục s d ng trong khoa h c th n kinh ọ Á
đểxác định các thuộc tính cụ thể cÿa một kích thích làm tăng xác su¿ ạo ra điệt t n thế hoạt động cÿa tế bào thÁn kinh Kỹ thu¿t này được gọi là phân tích hiệp phương sai kích hoạt tăng đột biến Trong một āng dụng điển hình, ngưái thử nghiệm trình bày quá trình tiếng