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

Bài báo cáo bài tập lớn Đại số tuyến tính Đề tài 11 phân tích pca

21 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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
Tác giả Tôn Thanh Viện, Huỳnh Quốc Anh, Ngô Xuân Bách, Vương Gia Bảo, Thái Chử Hiếu, Huỳnh Phước Huy, Lại Minh Khoa, Trần Đăng Khoa, Nguyễn Ngọc Lan, Tống Thị Khánh Linh, Nguyễn Hồng Phúc
Người hướng dẫn TS. Bùi Anh Tuấn
Trường học Trường Đại học Bách Khoa, Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Đại số tuyến tính
Thể loại Bài báo cáo bài tập lớn
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 1,8 MB

Nội dung

Luu y: 1/ Ma trận S là ma trận đối xứng thực và các trị riêng của S la cac số thực không âm.. Nếu ta chọn cơ sở trực chuẩn là họ véctơ cột của ma trận P, thì ta xây dựng được một hệ trục

Trang 1

Huỳnh Phước Huy

Lại Minh Khoa

Nhom: L08

KHOA QUAN LY CONG NGHIEP BAI BAO CAO BAI TAP LON DAI SO TUYEN TINH

e910 DE TAI 11: PHAN TICH PCA Olle

Giáo viên hướng dẫn: Bùi Anh Tuấn

Trang 2

L CƠ SỞLY THUYẾT

PCA chính là phương pháp đi tìm một hệ cơ sở mới sao cho thông tin của đữ liệu chủ yếu

tập trung ở một vài toạ độ, phần còn lại chỉ mang một lượng nhỏ thông tin Và để cho đơn giản trong tính toán, PCA sẽ tìm một hệ trực chuân đê làm cơ sở mới

Hinh 1: Phan tich thành phần chính (PCA) của khoảng cách di truyền theo cặp

Giả sử hệ cơ sở trực chuẩn mới là U và chung ta muốn giữ lại K toạ độ trong hệ cơ sở mới này Không mất tính tông quát, giả sử đó là K thành phân đâu tiên Quan sát Hình 2:

Hình 2: Ý tưởng chính của PCA: Tìm một hệ trực chuẩn mới sao cho trong hé nay, cac thanh phan quan

trong nhat nam trong K thanh phan dau tién

Trang 3

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

Bước L: Tính giá trị trung bình của của X

Bước 2: Tính véctơ

Tính ma trận hiệp phương sai: S=

Bước 3: Tìm trị riêng của S và sắp xếp theo giá trị giảm dần và tìm các véctơ riêng đơn

VỊ Ứng với các trị riêng

Bước 4: Chọn k trị riêng ban đầu và k véctơ riêng đơn vị ứng với các trị Tiêng này Lập

ma tran A co 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 X ban đầu được xấp xỉ bởi Xe A +

Mỗi cột của 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 tran P

Luu y:

1/ Ma trận S là ma trận đối xứng thực và các trị riêng của S la cac số thực không âm 2/ Ma trận S luôn chéo hóa trực giao được

3/ Trên đường chéo của 5Š là phương sai của các véctơ

Phân tử là hiệp phương sai của

Tổng 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 D là các giá trị riêng của S Tổng các giá trị riêng của S bằng tông các phan tử của S ( bằng vét của S )

4/ Ma trận P 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 P 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 P, thì ta xây dựng được một hệ trục tọa độ mới dựa trên các véctơ này và có một phép quay từ hệ trục tọa độ ban đầu sang hệ trục tọa độ mới

5/ Nếu dữ liệu mẫu (sample data), thì

Nếu dữ liệu dan s6 (population data), thi

Trang 4

Il UNG DUNG

2.1 Eigenface

Eigenface là một trong các phương pháp phố biến nhất trong bài toán nhận dạng khuôn mặt Ý tưởng của Eigenface là đi tìm một không gian có số chiều nhỏ hơn để mô tả mỗi khuôn mặt, từ đó sử dụng vector trong không gian thấp này như là feature vector cho việc

thực hiện classification Điều đáng nói là một bức ảnh khuôn mặt có kích thước khoảng

200 x 200 sẽ có số chiều là 40k - là một số cực lớn, trong khi đó, feature vector thường

chỉ có số chiều bằng vài trăm

Eigenfice thực ra chính là PCA Cac Eigenfaces chinh la cac eigenvectors ứng với các trị riêng lớn nhât của ma trận hiệp phuong sai

Trong phần này, chúng ta cùng làm một thí nghiệm nhỏ trên cơ sở dữ liệu Yale face database Các bức ảnh trong thí nghiệm này đã được căn chỉnh cho cùng với kích thước

và khuôn mặt nằm trọn vẹn trong một hình chữ nhật có kích thuée 116 x 98 pixel Co tất

cả 15 người khác nhau, mỗi người có II bức ảnh được chụp ở các điều kiện ánh sáng và cảm xúc khác nhau, bao gém: ‘centerlight’, ‘glasses’, ‘happy’, ‘leftlight’, ‘noglasses’,

‘normal’, ‘rightlight’,’sad’, ‘sleepy’, ‘surprised’, va ‘wink’

Hình 3 dưới đây là ví dụ về các bức ảnh của người có id la 10

222992 eose®

Hình 3: Ví dụ về ảnh của một người trong Yale Face Database

Trang 5

Ta co thê thấy rằng số chiều dữ liệu là 116x98=11368 là một số khá lớn Tuy nhiên, vì chí

có tông cộng 15xII=165 bức ảnh nên ta có thể nén các bức ảnh này về dữ liệu mới có chiều nhỏ hơn 165 Trong ví dụ này, tôi chọn K=100

Dưới đây là đoạn code thực hiện PCA cho toàn bộ dữ liệu Chú ý răng tôi sử dụng thư

states = ['centerlight', 'glasses', 'happy', ‘leftlight',

‘noglasses', 'normal', 'rightlight','sad',

‘sleepy’, ‘surprised’, 'wink' ]

Trang 6

Trong dong pea = PCA(n components=K), néun components la mét số thực trong

khoảng (0,1) PCA sẽ thực hiện việc tìm K dựa trên biêu thức (6)

Hình 4 dưới đây biểu diễn 18 vector riêng đầu tiên tìm được bằng PCA Các vector tìm

được ở dạng vector cột, ta cân phải reshape chúng đề có thê mình hoạ như các bức ảnh

Trang 7

Có một điều dé nhận ra là các ảnh mình hoạ các vector thu được ít nhiều mang thông tin của mặt người Thực tế, một khuôn mặt gốc sẽ được xấp xỉ như tổng có trọng số của các khuôn mặt này Vì các vector riêng này đóng vai trò như cơ sở của không gian mới với ít chiều hơn, chúng còn được gọi là khuôn mặt riêng, tức eigenƒfaces

Dé xem mức độ hiệu quả của Eigenfaces như thế nào, chúng ta thử minh hoạ các bức ảnh goc va cac bức ảnh được xâp xi bang PCA, ket quả được cho như Hình 5 dưới đây:

99999

32989

Trang 8

nhiều nhưng vân mang những đặc điểm riêng mà mặt người có thê phân biệt được

Như vậy, vector với số chiều K=100 trong không gian moi mang khd day du théng tin cua vector có sô chiều D=11368 trong khong gian ban dau

2.2 Unsupervised Abnormal Detection

Ngoài các ứng dụng về nén và classiñcation, PCA còn được sử dụng trong nhiều lĩnh vực khac nhau Abnormal Detection (dò tìm các hiện tượng không bình thường) là một trong

sô đó Thêm nữa, giả sử chúng ta không biết nhãn của các sự kiện này, tức ta đang làm viéc voi mét bai toan Unsupervised

Ý tưởng cơ bản là các sự kiện “normal' thường nam gan một không gian con nào đó,

trong khi các sự kiện ‘abnormal’ thường khác biệt với các sy kién ‘normal’, tic nam xa không gian con do Hon nira, vi la ‘abnormal’ nén số lượng các sự kiện thuộc loại này là

rất nhé so véi ‘normal’

Như vậy, chúng ta có thể làm PCA trên toàn bộ dữ liệu đề tìm ra các thành phần chính

của đữ liệu, từ đó suy ra không gian con mà các điểm ‘normal’ nam gan Viéc xac dinh

mét diém 1a ‘normal’ hay ‘abnoral’ được xác định bằng cách đo khoảng cách từ điểm đó

tới không gian con tìm được

Hình 6 dưới đây minh hoạ cho việc xác định các sự kiện không bình thường

Trang 9

đó, nếu làm PCA trên toàn bộ

dữ liệu, không gian con thu được gần với không gian con

của tập các sự kién ‘normal’

Lúc này, các điểm quá xa không gian con nay, trong trường hợp này là các điểm màu cam, có thể được coi là các sự kiện 'abnormal'

Trang 10

Il CODE MATLAB

Input:

% tập đữ liệu vé hoa Iris

% xem vi du tai: wikipedia.org/wiki/Iris_flower_data_set

%

% bang dit ligu nay có kích thước 150 hàng x 5cột

% số đo của 150 béng hoa iris

% cột 1: chiều dài đài hoa

% cột2: chiều rộng đài hoa

% cột 3: chiều dài cánh hoa

Trang 12

1.8 1.3

Trang 13

43

44 4.8 5.0 4.5 3.5 3.8 3.7 3.9

51 4.5 4.5 4.7

44

41 4.0

44 4.6 4.0

41

1.5 1.2 1.3 1.4 1.4 1.7 1.5 1.0

1.0 1.2 1.6 1.5 1.6 1.5 1.3 1.3 1.3 1.2 1.4 1.2 1.0 1.3 1.2 1.3 1.3

1.3

Trang 14

21 2.0 2.4 2.3 1.8 2.2 2.3 1.5 2.3 2.0 2.0 1.8

21 1.8 1.8 1.8 Ny

Trang 16

% Loai versicolor => type_Hoa=1 (cot thu 5 trong file) => do thi la cham mau

XANH LA;

% Loai virginica => type_Hoa=2 (cot thu 5 trong file) => do thi la cham mau VANG; ,

%

% MO FILE & DOC DU LIEU;

load input.txt; % load file input.txt (file nay co kich thuoc 150hang x 5 cot);

X = input(:, 1:4)’; % khi nhap vao, X 1@ ma tran co co [4,150];

%(tuc la co 150 cot, moi cot co 4 hang, moi cot dai dien cho mot bong hoa);

type Hoa =input(,5); % type_Hoa[1,150]={0;1;2} la ma tran the hien giong hoa;

soCot_X = size(X,2); % size(X) la co cua ma tran X, size(X,1) la so hang, size(X,2) la so cot;

%

for 1=1:4 % cho bien 1 chay tu 1 den 4;

subplot(3,3,(-1)+3*(-1)) % chia khung, vi tri cua do thi;

scatter(X(i,:),X(j,:),4,type_Hoa,'filled’) % scatter(x,y,sz,c): la ham bieu dien su phan tan bang cac vong tron,

%xy: la cac toa do cua vong tron,

% sz: la kích thuoc cua vong tron,

%c: la mau sac cua vong tron,

%'filled’: la dang vong tron, xem them: https://øoo.su/3ojh;

Trang 17

xlabel(sprintf('x%g',1)); % dat ten cho truc hoanh;

ylabel(sprintf('x%g',j)); % dat ten cho truc tung;

end

end

%

% THUC HIEN PHAN TICH THANH PHAN CHINH (PCA);

trungbinhcong X = mean(X,2); % mean(X,2): la vector cot chua gia tri trung binh cua moi hang cua X, xem them: https://goo.su/3oj1;

A=X -trungbinhcong_X*ones(1,soCot_X); % A= x(1) - x(tb);

% ones(1,soCot_X): tao ma tran co Lhang x (soCot_X)cot,

ones(i,J=1;

phuongsai = norm(A,'fro')*2; % norm(A,'fro')=sqrt(sum(diag(A'*A))): la do lon cua vector

A, 'fro': la chuan Frobenius;

[U,S,V] = svd(A,'econ’); % phan tich tri ki di, xem them: file "FUNCTION SVD.pnge";

duongcheochinh_S =diag(S); % tao ra vector cot tu duong cheo chính cua ma tran S, xem them: file "FUNCTION DIAG png";

phuongsai = norm(duongcheochinh_S)*2;

%

% BIEU DIEN DU LIEU TREN HE TRUC TOA DO OXY;

C=S8(1:3,1:3)* VC, 1:3); %3 he so dau tien cho moi diem, giong nhu U (:, 1: 3)'* A;

Trang 18

q2 = norm(duongcheochinh_S(1:2))*2/phuongsai; % donvi: phan tram

% BIEU DIEN DU LIEU TREN HE TRUC TOA DO OXYZ

Trang 19

-

ee Xû 2 * s *

Trang 21

TAI LIEU THAM KHAO

Tiép, V.H (2017) Bai 27: Principal Component Analysis (phan 1/2) Truy cập ngày 4 thang | nam 2020, ti https://machinelearningcoban.com/2017/06/15/pca/#3- principal-component-analysis

Ngày đăng: 13/11/2024, 14:01

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

TÀI LIỆU LIÊN QUAN

w