1. Trang chủ
  2. » Luận Văn - Báo Cáo

phân tích pca giảm chiều dữ liệu

15 26 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Tích PCA Giảm Chiều Dữ Liệu
Tác giả Đoàn Ngọc Hải, Trần Nguyễn Xuân Hương, Lê Anh Khue, Đoàn Lê Ngọc Lam, Võ Thành Long, Lê Quang Tùng, Đoàn Thị Mộng Như Ý
Trường học Trường Đại Học Bách Khoa Đại Học Quốc Gia Tp.Hcm
Thể loại bài tập lớn
Thành phố Tp.Hcm
Định dạng
Số trang 15
Dung lượng 10,05 MB

Nội dung

PHÂN TÍCH PCA GIẢM CHIỀU DỮ LIỆU TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP.HCM NHÓM 04 - L14... Giới thiệu về PCAPrincipal component analysis PCA • Phép phân tích thành phần chính Pr

Trang 1

PHÂN TÍCH PCA GIẢM CHIỀU

DỮ LIỆU

TRƯỜNG ĐẠI HỌC BÁCH KHOA

ĐẠI HỌC QUỐC GIA TP.HCM

NHÓM 04 - L14

Trang 2

Thành viên tham gia

Trang 3

Tóm tắt nội dung

• Giới thiệu về PCA

• Các bước phân tích PCA

• Matlab

• Kết luận

Trang 4

I Giới thiệu về PCA

Principal component analysis (PCA)

• Phép phân tích thành phần chính (Principal component analysis-PCA) là một thuật toán thống kê sử dụng biến đổi trực giao để biến đổi một tập hợp dữ liệu từ một không gian nhiều chiều sang một không gian mới ít chiều hơn (2 hoặc 3 chiều) nhằm tối ưu hóa việc thể hiện sự biến thiên của dữ liệu.

Trang 5

Một số khái niệm toán học sử dụng trong PCA:

01: Kì vọng

02: Độ lệch chuẩn

03: Phương sai

04: Hiệp phương sai

05: Ma trận hiệp phương sai 06: Phương sai lớn nhất

07: Trị riêng 08: Vector riêng

Trang 6

x y z

1 0.6999 0.5309 0.9686

2 0.3685 0.6544 0.5313

3 0.0336 0.4076 0.3251

4 0.0688 0.8200 0.1056

5 0.3196 0.7184 0.6110

II Các bước phân tích PCA

Cho bảng số liệu có dữ liệu 3 chiều như sau:

Trang 7

Bước 1: Tính giá trị trung bình (tìm kỳ vọng mean)

 

´

𝑦= 1

𝑖=1

𝑁

𝑦𝑖= 0.5309+0.6544 +0.4076 +0.8200 +0.7184

 

´

𝑧= 1

𝑖=1

𝑁

𝑧𝑖= 0.9686+0.5313+0.3251+0.1056+0.6110

 

Trang 8

Bước 2: Tính vecto

 

Tính ma trận hiệp phương sai (covariance)

A 0.4018 -0.0954 0.4603

C -0.2645 -0.2187 -0.1832

D -0.2293 0.1937 -0.4027

A 0.4018 -0.0954 0.4603

C -0.2645 -0.2187 -0.1832

D -0.2293 0.1937 -0.4027

Ma trận hiệp phương sai:

𝑆= 1

𝑁 −1 ^ 𝑋

𝑇 ^ 𝑋 = ( − 0.0052 0.0724 − 0.0052 0.0259 − 0.0179 0.0824

0.0824 − 0.0179 0.1047 )

 

Trang 9

Bước 3+4: Tìm trị riêng của S và sắp xếp theo giá trị giảm và chọn k trị riêng ban đầu và k vecto riêng đơn vị ứng với các trị riêng này

Tac ó c á c tr ịri ê ng 𝜆1=0.1745 ; 𝜆2= 0.0264 ; 𝜆3= 0.0021

 

Þ Vector riêng của U1=

Þ Đưa về vectơ đơn vị

 

=>Làm tương tự với λ2 ta có

 

, Làm tương tự với λ3 ta có

 

Chọn 2 trị riêng ban đầu và 2 vecto 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 vector riêng đơn vị ứng với các trị riêng này Ma trận A là phép biến đổi cần tìm

𝐴=(− 0.11510.6273 0.31530.9419

0.7702 − 0.1160)

 

Trang 10

Bước 5: Tính ảnh của vecto Dữ liệu X 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 trong cơ sở từ các cột của ma trận P.

 

𝐴 𝑇 ^𝑋 𝑇 =( −0.11510.6273 0.31530.9419

0.7702 − 0.1160)𝑇 ( ¿ 0.4018 − 0.0954 0.4603

0.0704 0.0281 0.0230

¿

− 0.2645 −0.2187 − 0.1832

− 0.2293 0.1937 − 0.4027

0.0215 0.0921 0.1027 )

𝑇

 

¿(−0.01650.6176 0.05860.0460 − 0.2819 − 0.4763 − 0.2681 0.1569 0.08200.0817)

 

Vậy ta được bảng dữ liệu sau khi giảm chiều là PC1 PC2

A 0.6176 -0.0165

B 0.0586 0.0460

C -0.2819 -0.2681

D -0.4763 0.1569

E 0.0820 0.0817

Trang 11

Đánh giá sai số:

Tính tổng các trị riêng của S ta được:

Khi ta giảm chiều dữ liệu từ 3 chiều về 2 chiều thì phương sai đã giảm còn và chiếm tỉ lệ: so với phương sai ban đầu

 

Trang 12

Code Matlab

NUM_DIMENSIONS = INPUT(’NHẬP SỐ CHIỀU CỦA MA

TRẬN: ’);

X = RAND(5, NUM_DIMENSIONS);

DISP(’MA TRẬN ĐẦU VÀO NGẪU NHIÊN:’);

DISP(X);

XM = MEAN(X);

C = COV(X);

[V, ] = EIG(C); ∼] = EIG(C);

K = INPUT (’ NHẬP SỐ CHIỀU CẦN GIẢM: ’);

IF K > NUM_DIMENSIONS

K= INPUT(’ NHẬP LẠI SỐ CHIỀU CẦN GIẢM: ’);

END

IF NUM_DIMENSIONS > 3

SELECTED_VECTORS = V(:, END:-1:END-K+1);

REDUCED_DATA = (X - XM) * SELECTED_VECTORS;

FIGURE;

SUBPLOT(1, 2, 2);

SCATTER(REDUCED_DATA(:, 1), REDUCED_DATA(:, 2), ’R’,

’FILLED’);

TITLE(’MA TRẬN SAU KHI ĐƯỢC GIẢM CHIỀU’);

DISP(’MA TRẬN ĐẦU RA SAU KHI GIẢM CHIỀU:’);

DISP(REDUCED_DATA);

ELSE SELECTED_VECTORS = V(:, END:-1:END-K+1);

REDUCED_DATA = (X - XM) * SELECTED_VECTORS;

FIGURE;

SUBPLOT(1, 3, 1);

SCATTER3(X(:, 1), X(:, 2), X(:, 3), ’B’, ’FILLED’);

TITLE(’MA TRẬN TRƯỚC KHI GIẢM CHIỀU ’);

SUBPLOT(1, 3, 2);

SCATTER(REDUCED_DATA(:, 1), REDUCED_DATA(:, 2), ’R’,

’FILLED’);

TITLE(’MA TRẬN SAU KHI ĐƯỢC GIẢM CHIỀU’);

SUBPLOT(1, 3, 3);

DISP(’MA TRẬN ĐẦU RA SAU KHI GIẢM CHIỀU:’);

DISP(REDUCED_DATA);

END

Trang 13

Sơ đồ khối code

Trang 14

• Qua đề tài về ứng dụng phân tích thành phần chính pca để giảm chiều dữ liệu, nhóm chúng

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ế ở bộ môn đại số tuyến tính nói riêng.

• PCA trở thành một trong những phương pháp quan trọng nhất trong hành trình khám phá vũ trụ số liệu không ngừng mở rộng.

• Nhóm em đã hiểu được cách phân tích thành phần chính PCA giảm số chiều dữ liệu ma trận bất kì và tạo code Matlab có khả năng giảm chiều của 1 file dữ liệu tuỳ ý.

KẾT QUẢ

Trang 15

Cảm ơn thầy và các

bạn đã lắng nghe

Ngày đăng: 08/05/2024, 15:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w