Machine Learning Data Preparation

DP4ML - Dimensionality Reduction - Phần 1 - Giới thiệu Dimensionality Reduction

DP4ML - Dimensionality Reduction - Phần 1 - Giới thiệu Dimensionality Reduction

Bài thứ 22 trong chuỗi các bài viết về chủ đề Data Preparation cho các mô hình ML và là bài đầu tiên về về Dimensionality Reduction. Trong bài này, chúng ta sẽ tìm hiểu một số kiến thức cơ bản về nó. Từ bài sau chúng ta sẽ đi vào tìm hiểu và thực hành với từng thuật toán cụ thể.

1. Dimensionality Reduction là gì?

Trong một tập dữ liệu, số lượng các cột hay số lượng features được hiểu là số chiều của dữ liệu. VD, nếu một dataset có 100 features thì số chiều của nó là 100. Dimensionality Reduction là tập hợp các kỹ thuật, thuật toán làm giảm số chiều của dữ liệu. Trước đây, Dimensionality Reduction thường được dùng trong các bài toán Visulization. Tuy nhiên, gần đây thì nó cũng được áp dụng vào việc chuẩn bị dữ liệu để huấn luyện các mô hình học máy.

Tại sao cần phải giảm số chiều của dữ liệu?

Một tập dữ liệu được coi là High-dimensionality khi số chiều của là hàng trăm hay hàng nghìn. Nếu để nguyên như thế để đưa vào cho model học tập thì sẽ rất dễ dẫn đến hiện tượng Overfitting. Chưa kể là thời gian huấn luyện cũng sẽ rất lâu và cũng không chắc chắn được là nó có hội tụ hay không? Vì thế, thực hiện Dimensionality Reduction là một việc cần thiết, nên được tiến hành trong quá trình chuẩn bị dữ liệu.

2. Các kỹ thuật, phương pháp thực hiện Dimensionality Reduction

2.1 Feature Selection

Không có gì ngạc nhiên khi Feature Selection, về bản chất cũng chính là một phương pháp của Dimensionality Reduction. Mình đã từng đề cập và so sánh Feature Selection và Dimensionality Reduction trong bài viết về Feature Selection rồi. Bạn có thể xem lại tại đây.

2.2 Matrix Factorization

Đây là kỹ thuật xuất phát từ đại số tuyến tính. Ma trận dữ liệu được phân rã thành các thành phần riêng rẽ của nó. Sau đó, chúng được xếp hạng theo một tiêu chí nào đó để rồi chỉ một số thành phần thỏa mãn điều kiện mới được chọn làm đại diện cho tập dữ liệu ban đầu. Principal Components Analysis - PCA là thuật toán phổ biến nhất hoạt động theo phương pháp này.

2.3 Manifold Learning

Manifold Learning là kỹ thuật có nguồn gốc từ lĩnh vực thống kê. Nó hoạt động bằng cách ánh xạ dữ liệu lên một không gian mới có số chiều nhỏ hơn số chiều ban đầu của dữ liệu, nhưng vẫn đảm bảo tính đại diện, tính liên kết của dữ liệu đó. Một số thuật toán phổ biến là:

  • Kohonen Self-Organizing Map (SOM)
  • Sammons Mapping
  • Multidimensional Scaling (MDS)
  • t-distributed Stochastic Neighbor Embedding (t-SNE)

2.3 Autoencoder

Phương pháp này có thể bạn đã nghe qua. Nó là một kiến trúc của Deep Learning. Bạn có thể tìm hiểu thêm về nó tại đây.

Để áp dụng Autoencoder vào Dimensionality Reduction, ta chỉ cần sử dụng thành phần Encoder của nó, phần Decoder có thể bỏ qua.

3. Một số gợi ý khi thực hiện Dimensionality Reduction

  • Không có phương pháp nào là tốt nhất trong mọi trường hợp. Hãy thử-sai.
  • Matrix Factorization và Manifold Learning yêu cầu dữ liệu phải có cùng scale hoặc phân phối. Vì thế hãy áp dụng các kỹ thuật như normalization hoặc standardization trước khi thực hiện Dimensionality Reduction.

4. Kết luận

Bài đầu tiên về Dimensionality Reduction, chúng ta đã cùng tìm hiểu một số kiến thức rất cơ bản về nó. Bài tiếp theo chúng ta sẽ tìm hiểu chi tiết về kỹ thuật LDA của Dimensionality Reduction. Mời các bạn đón đọc.

5. Tham khảo

[1] Jason Brownlee, “Data Preparation for Machine Learning”, Book: https://machinelearningmastery.com/data-preparation-for-machine-learning/.