Tải bản đầy đủ (.docx) (32 trang)

Tìm các tập dữ liệu tương tự bigdata

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (865.64 KB, 32 trang )

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN HÀ NỘI
KHOA TOÁN – CƠ – TIN HỌC
___________🙞🙜___________

BÁO CÁO
NHẬP MÔN KHAI PHÁ CÁC TẬP DỮ LIỆU LỚN
ĐỀ TÀI
TÌM CÁC TẬP DỮ LIỆU TƯƠNG TỰ


MỤC LỤC
MỞ ĐẦU

3

CHƯƠNG 1 : TỔNG QUAN

4

I.

Giới thiệu

4

II.

Dimensionality Reduction

4


III. Trực quan hố dữ liệu

6

CHƯƠNG 2 : PRINCIPAL-COMPONENT ANALYSIS

13

I.

Giới thiệu

13

II.

Ví dụ minh hoạ

13

III. Sử dụng vectơ riêng để giảm kích thước

16

CHƯƠNG 3: SINGULAR-VALUE DECOMPOSITION

19

I.


Định nghĩa cho SVD

19

II.

Giải thích cho SVD

21

III. Giảm kích thước bằng SVD

23

IV.

Tính tốn SVD của ma trận

23

CHƯƠNG 4: CUR DECOMPOSITION

25

I.

Định nghĩa của CUR

25


II.

Chọn hàng và cột đúng cách

26

III. Xây dựng ma trận giữa

27

IV.

Q trình CUR Decomposition hồn chỉnh

28

V.

Loại bỏ các hàng và cột trùng lặp

28

TỔNG KẾT

30

TÀI LIỆU THAM KHẢO

31


2


MỞ ĐẦU
Trước đây, chúng ta mới chỉ biết đến dữ liệu có cấu trúc (structure data). Ngày nay, với
sự kết hợp của dữ liệu và internet, đã xuất hiện một dạng dữ liệu khác là Big data (Dữ
liệu lớn). Dữ liệu này có thể từ các nguồn như: hồ sơ hành chính, giao dịch điện tử, dịng
trạng thái, bình luận, tin nhắn... của chính chúng ta, nói cách khác chúng là dữ liệu được
sản sinh qua quá trình chia sẻ thông tin trực tuyến liên tục của người sử dụng. Dữ liệu
lớn đề cập đến dữ liệu và thông tin mà chúng ta không thể được xử lý hoặc xử lý thông
qua các hệ thống phần mềm truyền thống hiện tại. Dữ liệu lớn là bộ dữ liệu có cấu trúc và
phi cấu trúc lớn cần được xử lý bằng các kỹ thuật phân tích nâng cao và các kỹ thuật trừu
tượng để khám phá các mẫu ẩn và tìm các mối tương quan chưa biết giúp cải thiện tiến
trình đưa ra quyết định. Một trong những vấn đề cơ bản trong khai thác dữ liệu lớn là
khám phá dữ liệu để tìm các mục tương tự với nhau. Tiếp nối với giữa kì, bài báo cáo ở
cuối kì chúng em sẽ nghiên cứu về giảm số chiều và trực quan hóa dữ liệu để dễ quan sát.
Giảm số chiều là một kỹ thuật học máy hoặc thống kê để giảm số lượng biến ngẫu nhiên
trong một vấn đề bằng cách thu được một tập hợp các biến chính. Q trình này có thể
được thực hiện bằng một số phương pháp giúp đơn giản hóa việc mơ hình hóa các vấn đề
phức tạp, loại bỏ sự dư thừa và giảm khả năng mô hình bị khớp q mức  và do đó bao
gồm các kết quả khơng phù hợp.
Trực quan hóa dữ liệu là biểu diễn dữ liệu thông qua việc sử dụng đồ họa phổ biến, chẳng
hạn như biểu đồ, sơ đồ, đồ họa thơng tin và thậm chí cả hoạt ảnh. Những hiển thị thông
tin trực quan này truyền đạt các mối quan hệ dữ liệu phức tạp và thông tin chi tiết dựa
trên dữ liệu theo cách dễ hiểu.

3


CHƯƠNG 1 : TỔNG QUAN

I.

Giới thiệu
Như chúng ta đã biết, trong các bài tốn học máy thì dữ liệu có kích thước rất lớn.

Máy tính có thể hiểu và thực thi các thuật toán trên dữ liệu này, tuy nhiên đối với con
người để "nhìn" dữ liệu nhiều chiều thật sự là rất khó. Vì vậy bài tốn giảm chiều dữ liệu
ra đời giúp đưa ra cái nhìn mới cho con người về dữ liệu nhiều chiều. Ngoài để trực quan
dữ liệu, các phương pháp giảm chiều dữ liệu còn giúp đưa dữ liệu về một không gian mới
giúp khai phá các thuộc tính ẩn mà trong chiều dữ liệu ban đầu không thể hiện rõ, hoặc
đơn giản là giảm kích thước dữ liệu để tăng tốc độ thực thi cho máy tính.
Vì thế, chúng ta sẽ khám phá ý tưởng giảm kích thước trong chi tiết hơn. Chúng ta bắt
đầu thảo luận về các giá trị riêng và việc sử dụng chúng trong “phân tích thành phần
chính” (PCA). Chúng ta sẽ phân tách giá trị số ít, một phiên bản mạnh mẽ hơn của sự
phân hủy UV. Cuối cùng, vì chúng ta ln quan tâm đến kích thước dữ liệu lớn nhất mà
chúng ta có thể xử lý, chúng ta xem xét một hình thức khác phân tách, được gọi là phân
tách CUR, là một biến thể của phân tách giá trị đơn giúp giữ cho các ma trận của phân
tách thưa thớt nếu ma trận ban đầu là thưa thớt.

II.

Dimensionality Reduction
1. Giới thiệu
Dimensionality Reduction (giảm chiều dữ liệu hay dimension reduction) 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. Ngồ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 tố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 tố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.

4


Giảm chiều dữ liệu là sự biến đổi dữ liệu từ không gian chiều cao thành không gian
chiều thấp để biểu diễn ở dạng chiều thấp đồng thời giữ lại một số thuộc tính có ý nghĩa
của dữ liệu gốc, có ý tưởng là gần với chiều nội tại (intrinsic dimension). Giảm chiều dữ
liệu trong học máy (machine learning) đề cập đến các kỹ thuật làm giảm số lượng biến
đầu vào (input variable) hoặc đặc trưng (feature) trong tập dữ liệu (dataset). 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
x ∈ RD với D rất lớn, và tạo ra một điểm dữ liệu mới z ∈ RK có số chiều K < D.
2. Mục đích của giảm chiều dữ liệu
Những bộ dữ liệu lớn thường tiêu tốn nhiều bộ nhớ lưu trữ và thời gian huấn luyện.
Do đó khi đối mặt với những bộ dữ liệu kích thước lớn chúng ta thường tìm cách giảm
chiều dữ liệu từ không gian cao chiều (high dimensionality) xuống không gian thấp chiều
(low dimensionality) mà vẫn giữ được những đặc trưng chính của dữ liệu nhưng tiết kiệm
được chi phí huấn luyện và dự báo. Giảm chiều dữ liệu là phổ biến trong các lĩnh vực có
số lượng quan sát lớn và/hoặc số lượng biến lớn, chẳng hạn như xử lí tín hiệu, nhận dạng
tiếng nói, thơng tin học thần kinh (tin học thần kinh, neuroinformatics), và tin sinh học.
Ưu điểm của phương pháp này bao gồm:
-

Cải thiện độ chính xác của model do giảm thiểu điểm dữ liệu dư thừa, nhiễu.

-

Model huấn luyện nhanh hơn (do dimension đã giảm) và giảm tài ngun sử dụng
để tính tốn.


-

Kết quả của mơ hình có thể được phân tích dễ dàng hơn.

-

Giảm overfitting trong nhiều trường hợp. Với quá nhiều feature trong dữ liệu, mơ
hình trở nên phức tạp và có xu hướng overfit trên tập huấn luyện.

-

Giảm thiểu trường hợp multicollinearity (đa cộng tuyến tính). Trong các bài tốn
regression, multicollinearity xảy ra khi các biến độc lập trong mô hình phụ thuộc
tuyến tính lẫn nhau.

Q trình giảm chiều dữ liệu được chia thành hai thành phần, lựa chọn tính năng và
trích xuất tính năng. Trong lựa chọn tính năng, các tập hợp con nhỏ hơn của các tính năng
được chọn từ một tập dữ liệu nhiều chiều để thể hiện mơ hình bằng cách lọc, gói hoặc
nhúng. Trích xuất tính năng làm giảm số lượng thứ nguyên trong tập dữ liệu để mơ hình
5


hóa các biến và thực hiện phân tích thành phần. Có rất nhiều phương pháp để giảm chiều
dữ liệu. Ở bài báo cáo này, chúng em sẽ tập trung nghiên cứu về phương pháp đại số
tuyến tính.
3. Phương pháp Đại số tuyến tính
Đại số tuyến tính cũng là nhóm phương pháp nổi tiếng nhất, bao gồm các kỹ thuật:
-

Principal component analysis (PCA): Đây là thuật tốn học máy khơng giám sát,

làm giảm kích thước của tập dữ liệu trong khi vẫn giữ lại nhiều thơng tin nhất có
thể. Để làm điều này, thuật tốn tạo một tập hợp các tính năng mới từ tập hợp các
tính năng hiện có.

-

Linear Discriminatory Analysis (LDA): LDA là kỹ thuật học máy có giám sát, tìm
cách giữ lại khả năng phân biệt cho các biến phụ thuộc. Để làm điều này, đầu tiên,
thuật toán LDA tính tốn khả năng phân tách giữa các lớp. Thứ hai, nó tính tốn
khoảng cách giữa mẫu của mỗi lớp và giá trị trung bình. Cuối cùng, LDA tạo ra
tập dữ liệu trong khơng gian có kích thước thấp hơn.

-

Singular Value Composition (SVD): SVD trích xuất các tính năng quan trọng nhất
từ tập dữ liệu. Phương pháp này đặc biệt phổ biến vì nó dựa trên các mơ hình đại
số tuyến tính đơn giản, dễ hiểu.

Ở các chương sau sẽ nói chi tiết hơn về các kỹ thuật PCA, SVD và CUR.

III.

Trực quan hoá dữ liệu

Lĩnh vực trực quan hóa dữ liệu và thơng tin đã xuất hiện "từ nghiên cứu về khoa học
máy tính, đồ hoạ, thiết kế trực quan, … Nó ngày càng được ứng dụng như một thành
phần quan trọng trong nghiên cứu khoa học, thư viện số, khai thác dữ liệu, phân tích dữ
liệu tài chính, nghiên cứu thị trường và kiểm sốt sản xuất".
1. Giới thiệu
Trực quan hóa dữ liệu và thơng tin giả định rằng "các kỹ thuật tương tác và biểu diễn

trực quan tận dụng đường dẫn băng thông rộng của mắt người vào tâm trí để cho phép
người dùng xem, khám phá và hiểu một lượng lớn thông tin cùng một lúc. Trực quan hóa

6


thông tin tập trung vào việc tạo ra các phương pháp cho truyền đạt thông tin trừu tượng
theo những cách trực quan."
Phân tích dữ liệu là một phần khơng thể thiếu trong mọi nghiên cứu ứng dụng và giải
quyết vấn đề trong cơng nghiệp. Các phương pháp phân tích dữ liệu cơ bản nhất là trực
quan hóa ( biểu đồ, biểu đồ phân tán, biểu đồ bề mặt, bản đồ cây, biểu đồ tọa độ song
song, v.v. ), thống kê ( kiểm tra giả thiết, hồi quy, PCA, v.v) khai thác dữ liệu ( khai thác
liên kết ,v.v.), và các phương pháp học máy ( phân cụm, phân loại ,v.v).
Trong số các phương pháp này, trực quan hóa thơng tin hoặc phân tích dữ liệu trực
quan, phụ thuộc nhiều nhất vào kỹ năng nhận thức của các nhà phân tích con người và
cho phép khám phá những hiểu biết có thể hành động phi cấu trúc chỉ bị giới hạn bởi trí
tưởng tượng và sự sáng tạo của con người. Nhà phân tích khơng cần phải học bất kỳ
phương pháp phức tạp nào để có thể diễn giải các hình ảnh trực quan của dữ liệu. Trực
quan hóa thơng tin cũng là một sơ đồ tạo giả thuyết, có thể và thường được theo sau bởi
phân tích chính thức hoặc phân tích hơn, chẳng hạn như kiểm tra giả thuyết thống kê.
2. Ý nghĩa
Để truyền đạt thông tin rõ ràng và hiệu quả, trực quan hóa dữ liệu sử dụng đồ hoạ
thông kê, sơ đồ, đồ hoạ thông tin và các cơng cụ khác. Dữ liệu số có thể được mã hóa
bằng cách sử dụng các dấu chấm, đường hoặc thanh để truyền đạt một thông điệp định
lượng một cách trực quan. Trực quan hóa hiệu quả giúp người dùng phân tích và lập luận
về dữ liệu và bằng chứng. Nó làm cho dữ liệu phức tạp trở nên dễ tiếp cận, dễ hiểu và có
thể sử dụng hơn, nhưng cũng có thể được rút gọn. Các bảng thường được sử dụng khi
người dùng sẽ tra cứu một phép đo cụ thể, trong khi các loại biểu đồ khác nhau được sử
dụng để hiển thị các mẫu hoặc mối quan hệ trong dữ liệu cho một hoặc nhiều biến.
Trực quan hóa dữ liệu đề cập đến các kỹ thuật được sử dụng để truyền đạt dữ liệu

hoặc thông tin bằng cách mã hóa nó dưới dạng các đối tượng trực quan (điểm, đường
hoặc thanh) có trong đồ họa. Mục tiêu là truyền đạt thông tin rõ ràng và hiệu quả tới
người dùng. Trực quan hóa dữ liệu có liên quan chặt chẽ với đồ hoạ thơng tin, trực quan
hố thơng tin, trực quan hóa khoa học, phân tích dữ liệu khám phá và đồ hoạ thống kê.
Trong thiên niên kỷ mới, trực quan hóa dữ liệu đã trở thành một lĩnh vực nghiên cứu,
7


giảng dạy và phát triển tích cực. Nó đã thống nhất giữa trực quan hóa khoa học và thơng
tin.
3. Trực quan hóa dữ liệu với Python
Python cung cấp nhiều thư viện đi kèm với các tính năng khác nhau để trực quan hóa
dữ liệu. Tất cả các thư viện này đều có các tính năng khác nhau và có thể hỗ trợ nhiều
loại biểu đồ khác nhau. Trong bài báo cáo này, chúng ta sẽ tìm hiểu về hai thư viện sau:
Matplotlib và Plotly.
a) Matplotlib
Matplotlib là một thư viện trực quan hóa dữ liệu cấp thấp, dễ sử dụng được xây dựng trên
các mảng NumPy. Nó bao gồm nhiều biểu đồ khác nhau như biểu đồ phân tán, biểu đồ
đường,… Matplotlib cung cấp rất nhiều tính năng linh hoạt.
Để cài đặt thư viện này, ta gõ lệnh sau trên terminal:
pip install matplotlib

Để sử dụng, ta cần import thư viện:
import matplotlib.pyplot as plt

Các loại biểu đồ được sử dụng phổ biến trong thư viện này:
● Biểu đồ phân tán:

● Biểu đồ đường:
8



Biểu đồ đường được sử dụng để biểu thị mối quan hệ giữa hai dữ liệu X và Y trên một
trục khác. Nó được vẽ bằng hàm plot().

● Biểu đồ cột
Dùng để biểu thị loại dữ liệu bằng các thanh hình chữ nhật có chiều dài và chiều cao tỷ lệ
thuận với các giá trị mà chúng biểu thị. Nó có thể được tạo bằng phương thức bar().

9


● Histogram: được sử dụng để biểu diễn dữ liệu dưới dạng một số nhóm. Hàm hist()
được sử dụng để tính tốn và tạo biểu đồ.

b) Plotly
Plotly có các khả năng của công cụ di chuột cho phép chúng ta phát hiện bất kỳ điểm
ngoại lệ hoặc điểm bất thường nào trong nhiều điểm dữ liệu, Plotly cho phép tùy chỉnh
nhiều hơn, làm cho biểu đồ trực quan hấp dẫn hơn.
Để cài đặt, ta gõ lệnh sau trên terminal:
pip install plotly

Để sử dụng, chúng ta cần import thư viện:
import plotly.express as px

Các loại biểu đồ được sử dụng trong thư viện này:
Biểu đồ phân tán: được tạo bằng phương thức scatter().method của plotly.express:

10



Biểu đồ đường: giúp dễ truy cập để quản lý nhiều loại dữ liệu khác nhau và tập hợp các
thống kê tạo kiểu.

Biểu đồ cột: Biểu đồ cột trong Plotly có thể được tạo bằng phương thức bar() của lớp
plotly.express

11


Histogram: có thể được tạo bằng cách sử dụng hàm histogram() của lớp plotly.express

Như vậy, phần này đã giúp chúng ta hiểu hơn về vẽ biểu đồ tập dữ liệu với sự trợ giúp
của các mô-đun vẽ biểu đồ khác nhau trong Python và Matplotlib, Plotly. Mỗi mô-đun
thể hiện nội dung theo cách riêng của nó và mỗi mơ-đun có một bộ tính năng riêng như
Matlotlib cung cấp tính linh hoạt hơn nhưng cần viết nhiều mã hơn. Mỗi mô-đun có thể
được sử dụng tùy thuộc vào nhiệm vụ mà chúng ta muốn thực hiện.

12


CHƯƠNG 2 : PRINCIPAL-COMPONENT ANALYSIS
I.

Giới thiệu

Principal-component analysis ( phân tích thành phần chính – PCA ) là một kỹ thuật
lấy tập dữ liệu bao gồm một tập hợp các bộ đại diện cho các điểm trong không gian nhiều
chiều và tìm các hướng mà các bộ xếp hàng tốt nhất. Ý tưởng là để điều trị tập hợp các bộ
dữ liệu dưới dạng ma trận M và tìm các vectơ riêng cho MM T hoặc MTM. Ma trận của

các vectơ riêng này có thể được coi là một phép quay cứng nhắc trong không gian nhiều
chiều. Khi ta áp dụng chuyển đổi này cho dữ liệu gốc, trục tương ứng với véc tơ riêng
chính là trục dọc theo các điểm được “trải rộng” nhất, chính xác hơn, trục này là trục dọc
theo đó phương sai của dữ liệu là tối đa. Nói cách khác, điểm tốt nhất có thể là xem như
nằm dọc theo trục này, với độ lệch nhỏ so với trục này. Tương tự như vậy, trục tương ứng
với vectơ riêng thứ hai (vector riêng tương ứng với giá trị riêng lớn thứ hai) là trục dọc
theo đó phương sai của khoảng cách từ trục đầu tiên là lớn nhất, v.v…
Chúng ta có thể xem PCA như một kỹ thuật khai thác dữ liệu. Dữ liệu chiều cao có
thể được thay thế bằng hình chiếu của nó lên các trục quan trọng nhất. Các trục này là
những cái tương ứng với các giá trị riêng lớn nhất. Như vậy, dữ liệu ban đầu được ước
tính bằng dữ liệu có ít thứ ngun hơn và tóm tắt tốt dữ liệu ban đầu.

II.

Ví dụ minh hoạ

Chúng ta sẽ bắt đầu giải thích bằng một ví dụ minh họa đơn giản. Trong ví dụ này, dữ
liệu là hai chiều, một số chiều quá nhỏ để làm cho PCA thực sự hữu ích.

13


Hình: bốn điểm trong khơng gian 2 chiều
Dữ liệu thể hiện trong hình chỉ có bốn điểm và chúng được sắp xếp theo một mẫu đơn
giản dọc theo đường 45 độ giúp tính tốn dễ dàng để làm theo. Đó là, để dự đốn kết quả,
các điểm tốt nhất có thể được xem là nằm dọc theo trục ở góc 45 độ, với độ lệch nhỏ theo
hướng vng góc. Để bắt đầu, chúng ta hãy biểu diễn các điểm bằng một ma trận M có
bốn hàng – một cho mỗi điểm – và hai cột, tương ứng với trục x và trục y. Ta có ma trận
là:


Tính tốn MT M:

Chúng ta có thể tìm các giá trị riêng của ma trận trên bằng cách giải phương trình:
(30 − λ)(30 − λ) − 28 × 28 = 0
Giải phương trình ta được λ = 58 and λ = 2.
Chúng ta tiếp tục giải:

Khi chúng ta nhân ma trận và vectơ, chúng ta có hai phương trình:
30x + 28y = 58x
28x + 30y = 58y
Cả hai phương trình đều cho: x = y.
Do đó, vectơ riêng đơn vị tương ứng với giá trị riêng chính 58 là:

Đối với giá trị riêng thứ hai, 2, ta thực hiện quy trình tương tự. Nhân ra
14


để có được hai phương trình:
30x+28y = 2x
28x+30y = 2y
Cả hai phương trình đều cho chúng ta: x = −y. Do đó, vectơ riêng đơn vị tương ứng với
giá trị riêng chính 2 là:

Chúng ta chọn vector riêng với thành phần đầu tiên âm trong trường hợp này vì nó thực
hiện phép biến đổi tọa độ dễ theo dõi hơn.
Bây giờ, chúng ta hãy xây dựng E, ma trận của các vectơ riêng cho ma trận M T M. Đặt
vectơ riêng đầu tiên, ma trận của các vectơ riêng là:

Bất kỳ ma trận nào của các vectơ trực giao (các vectơ đơn vị trực giao với một vector
khác) đại diện cho một phép quay và/hoặc phản xạ các trục của khơng gian Euclide. Có

thể xem ma trận trên như một phép quay 45 độ ngược chiều kim đồng hồ. 
Ví dụ, chúng ta hãy nhân ma trận M đại diện cho từng điểm của Hình bốn điểm trong
khơng gian 2 chiều của E. Ta thu được:

Tiếp theo, ta có:

15


Hình: Bốn điểm trong khơng gian 2 chiều, các trục quay 45 độ ngược chiều kim đồng hồ
Ta thấy điểm đầu tiên, [1, 2], đã được chuyển thành điểm: [ 3/√❑,1/√❑]
Với đường đứt nét thể hiện trục x mới, chúng ta thấy rằng hình chiếu của điểm đầu tiên
lên trục đó đặt nó ở khoảng cách 3/√❑ từ gốc tọa độ. Để kiểm tra thực tế này, lưu ý rằng
điểm chiếu cho cả hai điểm thứ nhất và thứ hai là [1.5, 1.5] trong hệ tọa độ ban đầu, và
khoảng cách từ gốc tọa độ đến điểm này là
√❑

Hơn nữa, trục y mới tất nhiên là vng góc với đường đứt nét. Các điểm đầu tiên ở
khoảng cách 1/√❑ phía trên trục x mới theo hướng của trục y. Tức là khoảng cách giữa
các điểm [1, 2] và [1.5, 1.5] là:
√❑

Hiển thị bốn điểm trong hệ tọa độ xoay:

Điểm thứ hai, [2, 1] cũng chiếu lên cùng điểm của trục x mới. Nó là 1/√❑  bên dưới trục
đó dọc theo trục y mới, như ta thấy hàng thứ hai trong ma trận các điểm được biến đổi
là [3/√❑, -1/√❑]. Điểm thứ ba, [3, 4] được chuyển thành [7/√❑, 1/√❑] và điểm thứ tư,
[4, 3], được chuyển thành [7/√❑, −¿ 1/√❑]. Tức là cả hai chiếu lên cùng một điểm của
trục x mới và điểm đó ở khoảng cách 7/√❑ từ gốc tọa độ, trong khi chúng là 1/√ ❑ bên
trên và bên dưới trục x mới trong hướng của trục y mới.


16


III.

Sử dụng vectơ riêng để giảm kích thước

Từ ví dụ vừa làm, ta có thể thấy một nguyên tắc chung. Nếu M là một ma trận mà mỗi
hàng đại diện cho một điểm trong không gian Euclide với bất kỳ số lượng kích thước nào,
chúng ta có thể tính tốn MT M và tính tốn các cặp riêng của nó. Đặt E là ma trận có các
cột là các vectơ riêng, được sắp xếp theo thứ tự lớn nhất giá trị bản địa đầu tiên. Xác định
ma trận L để có các giá trị riêng của M T M dọc theo đường chéo, lớn nhất đầu tiên và 0
trong tất cả các mục khác. Sau đó, vì M T Me = λe = eλ cho mỗi vectơ riêng e và giá trị
riêng tương ứng của nó λ, nó tuân theo MTM E = EL.
Ta quan sát thấy ME là các điểm của M được chuyển vào một không gian tọa độ mới.
Trong không gian này, trục đầu tiên (trục tương ứng với giá trị lớn nhất giá trị riêng) là
quan trọng nhất; chính thức, phương sai của các điểm dọc theo đó trục là lớn nhất. Trục
thứ hai, tương ứng với cặp riêng thứ hai, có ý nghĩa nhất tiếp theo theo nghĩa tương tự và
mơ hình tiếp tục cho mỗi của các cặp riêng. Nếu chúng ta muốn biến đổi M thành một
khơng gian có ít số chiều hơn, thì sự lựa chọn bảo tồn ý nghĩa nhất là sự lựa chọn sử
dụng các vectơ riêng được liên kết với các giá trị riêng lớn nhất và bỏ qua các vector
riêng khác vector đặc trưng. Nghĩa là, gọi E k là k cột đầu tiên của E. Khi đó ME k là một k
chiều đại diện của M.
Ví dụ: Cho ma trận M từ ví dụ trên. Dữ liệu này chỉ có hai chiều, vì vậy cách giảm
kích thước duy nhất chúng ta có thể làm là sử dụng k = 1; tức là, chiếu dữ liệu lên một
không gian một chiều. Đó là, chúng tơi tính tốn ME1 qua

Hiệu quả của phép biến đổi này là thay thế các điểm của M bằng các hình chiếu của
chúng lên trục x. Trong khi hai điểm đầu tiên chiếu vào cùng một điểm, cũng như điểm

thứ ba và thứ tư, biểu diễn này làm cho sự phân biệt một chiều tốt nhất có thể giữa các
điểm.

17


IV.

Ma trận khoảng cách

Ta có ma trận:

Thay vì bắt đầu với MTM, chúng ta hãy kiểm tra các giá trị riêng của MMT. Vì ví dụ M
của chúng ta có nhiều hàng hơn cột, cái sau là ma trận lớn hơn cái trước, nhưng nếu M có
nhiều cột hơn hàng, chúng ta thực sự sẽ nhận được một ma trận nhỏ hơn. Trong ví dụ
đang chạy, chúng ta có:

Cũng như MTM, ta thấy MMT đối xứng. Mục trong hàng thứ i và cột thứ j có cách hiểu
đơn giản; nó là tích vơ hướng của các vectơ được biểu diễn bởi điểm thứ i và thứ j (hàng
của M). Có một mối quan hệ chặt chẽ giữa các giá trị riêng của MTM và MMT. Giả sử e là
véc tơ riêng của MTM:
Nhân cả hai vế của phương trình này với M ở bên trái ta được:
Do đó, chỉ cần Me khơng phải là vectơ khơng 0, nó sẽ là vectơ riêng của MM T và λ sẽ là
giá trị riêng của MMT cũng như của MTM. Điều ngược lại cũng đúng. Nghĩa là, nếu e là
véc tơ riêng của MMT với giá trị riêng tương ứng λ, sau đó bắt đầu với MM Te= λe và
nhân bên trái của MT để kết luận rằng MTM(MTe) = λ(MTe). Do đó, nếu MTe khơng bằng
0, thì λ cũng là một giá trị riêng của MTM.
18



Điều gì xảy ra khi MTe = 0. Trong trường hợp đó, MMTe cũng bằng 0, nhưng e khơng
bằng 0 vì 0 khơng thể là vectơ riêng. Tuy nhiên, kể từ 0 = λe, chúng ta kết luận rằng λ =
0.
Chúng tôi kết luận rằng các giá trị riêng của MMT là các giá trị riêng của MTM cộng thêm
số 0. Nếu kích thước của MMT nhỏ hơn kích thước của MTM, thì điều ngược lại sẽ đúng;
các giá trị riêng của MTM sẽ là của MMT cộng với số 0 bổ sung.

19


CHƯƠNG 3: SINGULAR-VALUE DECOMPOSITION
Singular-Value Decomposition (SVD - phân tách giá trị đơn), phân tích ma trận
thứ hai dẫn đến một chiều thấp biểu diễn ma trận nhiều chiều, cho phép biểu diễn chính
xác bất kỳ ma trận nào và cũng giúp dễ dàng loại bỏ các phần ít quan trọng hơn của biểu
diễn đó để tạo ra một biểu diễn gần đúng với bất kỳ số thứ nguyên mong muốn nào. Tất
nhiên, càng ít kích thước ta chọn, độ chính xác sẽ càng kém xấp xỉ. Ta sẽ bắt đầu với các
định nghĩa cần thiết. Sau đó khám phá ý tưởng rằng SVD định nghĩa một số lượng nhỏ
các “khái niệm” kết nối các hàng và cột của ma trận. Ta chỉ ra cách loại bỏ những khái
niệm ít quan trọng nhất mang lại cho chúng ta biểu diễn nhỏ hơn gần đúng với ma trận
ban đầu. Tiếp theo chúng ta xem các khái niệm này có thể được sử dụng như thế nào để
truy vấn ma trận ban đầu hiệu quả hơn, và cuối cùng đưa ra một thuật toán để tự thực
hiện SVD.

I.

Định nghĩa cho SVD

Cho M là một ma trận m × n, và xếp hạng của M là r. Nhắc lại rằng hạng của một ma trận
là số lượng lớn nhất các hàng (hoặc các cột tương đương) mà chúng ta có thể chọn mà
khơng có tổ hợp tuyến tính khác 0 nào của các hàng là véc tơ tồn khơng 0 (chúng ta giả

sử một tập hợp các hàng hoặc cột như vậy là độc lập). Sau đó, chúng ta có thể tìm thấy
ma trận U, Σ và V như trong Hình với các tính chất sau:
-

U là ma trận trực giao cột m × r; nghĩa là, mỗi cột của nó là một vectơ đơn vị và
tích vơ hướng của hai cột bất kỳ bằng 0.

-

V là một ma trận trực giao cột n × r. Lưu ý rằng ta luôn sử dụng V trong dạng
hốn vị của nó, vì vậy nó là các hàng của VT trực giao.

-

Σ là ma trận đường chéo; nghĩa là tất cả các phần tử không nằm trên đường chéo
chính đều 0. Các phần tử của Σ được gọi là các giá trị riêng của M.

20



×