Bài thứ 8 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ề Feature Selection. Trong bài này, chúng ta sẽ chuyển tiếp sang tìm hiểu một nhiệm vụ khác của Data Preparation, đó là Feature Selection.
Feature Selection là quá trình giảm số lượng features khi phát triển các ML model. Việc làm này xuất phát từ 2 nguyên nhân chính:
Feature Selection, đôi khi hay bị hiểu nhầm thành Dimensionality Reduction. Thực ra, chúng đều là các công việc phải thực hiện trong quá trình chuẩn bị dữ liệu cho các ML model. Chúng vừa có sự giống nhau, vừa có sự khác nhau:
Có 2 phương pháp chính để thực hiện Feature Selection là: Supervised và Unsupervised.
Đây là phương pháp Feature Selection mà có sử dụng đến Target Variable (nhãn). Nó lại được chia thành 3 loại nhỏ hơn:
Là các thuật toán thực hiện Feature Selection trong quá trình huấn luyện mô hình.
Loại này sẽ lựa chọn một tập nhỏ các features dựa trên mối quan hệ của các features đó với Target Variable. Để xác định mối quan hệ này, chúng ta có thể sử dụng một số phương pháp thống kê khác nhau (sẽ được đề cập chi tiết bên dưới). Nói chung, đây là cách thức được sử dụng rất rộng rãi để thực hiện Feature Selection.
Wraper tạo ra nhiều tập con của các features, mỗi tập con đó được sử dụng để huấn luyện một mô hình riêng. Kết quả cuối cùng là tổng hợp của các models đó.
Đây là phương pháp Feature Selection mà không sử dụng đến Target Variable.
Người ta thường sử dụng các phép đo thống kê kiểu tương quan giữa các biến đầu vào và đầu ra để làm cơ sở cho việc lựa chọn các features. Mỗi một kiểu dữ liệu sẽ có các phép đo tương ứng khác nhau. Có 2 kiểu dữ liệu thường gặp là numerical (integer, float, …) và categorical (boolean, ordinal, nominal, …).
Chúng ta định nghĩa 2 khái niệm sau để thuận tiện sử dụng trong các bài viết thuộc chuỗi chủ đề Data Preparation này:
Sơ đồ cây dưới đây khái quát các phương pháp thống kê tương ứng với các kiểu của Input/Output Variable.
Chúng ta sẽ lần lượt tìm hiểu những thuật toán này trong các bài viết tiếp theo.
Nãy giờ chúng ta mới chỉ đề cập đến phương pháp thống kê cho dữ liệu thuộc một trong hai kiểu Numerical hoặc Categorical. Nhưng trong thực tế, bộ dữ liệu của chúng ta có thể bao gồm cả 2 loại đó. Khi gặp tình huống như vậy, chúng ta phải sử dụng thuật toán ColumnTransformer. Chúng ta sẽ tìm hiểu thuật toán này trong các bài về sau trong cùng chủ đề Data Preparation này.
Trả lời:
Trả lời: Không thể biết trước. Bạn phải dựa vào kinh nghiệm, sự hiểu biết về bài toán, cũng như ưu/nhược điểm của các thuật toán. Nếu vẫn không thể chọn được thì sử dụng phương án thử-sai, tức chọn một số phương pháp khả dĩ, rồi so sánh kết quả của chúng với nhau.
OK, bài đầu tiên về Feature Selection chỉ ngắn như vậy thôi. Mình đã giới thiệu khái quát qua về Feature Selection để cho các bạn có cái nhìn tổng thể về nó. Trong các bài tiếp theo, mình sẽ đi chi tiết vào từng phương pháp. Mời các bạn đón đọc.
[1] Jason Brownlee, “Data Preparation for Machine Learning”, Book: https://machinelearningmastery.com/data-preparation-for-machine-learning/.