Lựa chọn tính năng trong Machine Learning: Động lực

Nov 24 2022
Bài viết ngắn này là bài đầu tiên trong loạt bài giải thích các kỹ thuật lựa chọn tính năng. Tôi đã bắt đầu bằng phần giới thiệu thân thiện và trình bày những lý do mạnh mẽ đằng sau quy trình lựa chọn tính năng.

Bài viết ngắn này là bài đầu tiên trong loạt bài giải thích các kỹ thuật lựa chọn tính năng. Tôi đã bắt đầu bằng phần giới thiệu thân thiện và trình bày những lý do mạnh mẽ đằng sau quy trình lựa chọn tính năng. Trong các bài viết tới, tôi sẽ đề cập chi tiết đến từng phương pháp lựa chọn tính năng.

Lựa chọn tính năng là quá trình chọn một tập hợp con các tính năng có liên quan (biến, dự đoán) từ tổng số tính năng của một mức trong tập dữ liệu để xây dựng thuật toán học máy. Với một tập dữ liệu ban đầu thường chứa một số lượng lớn các biến, chúng ta có thể làm gì để chọn nhóm các tính năng quan trọng tại thời điểm đưa ra dự đoán? Có nhiều quy trình hoặc kỹ thuật mà chúng ta có thể áp dụng như một phần của quá trình lựa chọn tính năng.

Trước khi đi sâu vào các kỹ thuật lựa chọn tính năng, tại sao chúng ta lại chọn các tính năng để bắt đầu? Dưới đây là một số lý do.

  • Các mô hình đơn giản hơn dễ giải thích hơn. Người sử dụng mô hình sẽ dễ hiểu đầu ra của một mô hình sử dụng 10 biến hơn là đầu ra của một mô hình sử dụng 100 biến.
  • Thời gian đào tạo ngắn hơn. Việc giảm số lượng biến được sử dụng để xây dựng mô hình học máy giúp giảm chi phí tính toán và do đó tăng tốc độ xây dựng mô hình. Nhưng quan trọng hơn, các mô hình đơn giản hơn, cũng ghi điểm nhanh hơn so với các ứng dụng, điều này đặc biệt quan trọng nếu mô hình ở trong môi trường trực tiếp, nơi các quyết định cần được đưa ra trong giây thứ hai.
  • Tăng cường khái quát hóa bằng cách giảm quá mức. Rất thường xuyên, nhiều biến bị nhiễu với rất ít giá trị dự đoán nếu có. Tuy nhiên, các mô hình học máy học từ tiếng ồn này gây ra tình trạng thừa và giảm khả năng khái quát hóa. Bằng cách loại bỏ các tính năng nhiễu không liên quan, chúng tôi có thể cải thiện đáng kể khả năng khái quát hóa của mô hình máy học.
  • Dễ dàng thực hiện hơn bởi các nhà phát triển phần mềm. Khi mô hình học máy được triển khai, thường thì các nhà phát triển phần mềm cần viết mã để gọi các biến cần đưa vào mô hình để tạo ra kết quả đầu ra. Viết mã cho 10 đến 50 biến sẽ nhanh hơn nhiều so với 400 biến. Ngoài ra, ít mã hơn sẽ ít bị lỗi hơn và do đó cung cấp một môi trường an toàn hơn.
  • Giảm nguy cơ lỗi dữ liệu trong quá trình sử dụng mô hình. Thông thường, các công ty dựa vào các cuộc gọi đến dữ liệu của bên thứ ba, từ đó họ sẽ chọn các biến để chuyển mô hình học máy. Việc giảm sử dụng số lượng biến được sử dụng trong mô hình học máy giúp doanh nghiệp giảm khả năng gặp lỗi trong quá trình thu thập và lưu trữ dữ liệu của bên thứ ba cũng như các lỗi tiềm ẩn trong quá trình thu thập dữ liệu có thể phát sinh trong cùng một doanh nghiệp.
  • Dự phòng biến. Các tính năng khá thường xuyên trong một tập dữ liệu có mối tương quan cao. Các tính năng tương quan cao cung cấp bản chất của cùng một thông tin. Vì vậy, chúng là loại dư thừa. Chúng tôi có thể giữ một và xóa tất cả phần còn lại mà không làm mất thông tin.
  • Hành vi học kém trong không gian nhiều chiều. Hiệu suất mô hình Machine Learning trong các thuật toán dựa trên cây cụ thể được ưu tiên nhờ giảm không gian tính năng. Nói cách khác, điều này có nghĩa là kích thước lớn gây ra hiệu suất kém trong các phương pháp dựa trên cây và do đó, việc giảm không gian đặc trưng sẽ giúp xây dựng các mô hình dự đoán và mạnh mẽ hơn.

Thuật toán lựa chọn tính năng có thể được coi là sự kết hợp của kỹ thuật tìm kiếm để đề xuất các tập hợp con tính năng mới, cùng với thước đo tiến hóa cho điểm các tập hợp con tính năng khác nhau. Lý tưởng nhất là một phương pháp lựa chọn tính năng sẽ tìm kiếm trong tất cả các tập hợp con có thể có của các kết hợp tính năng có thể thu được từ một tập dữ liệu nhất định và tìm ra kết hợp tính năng tạo ra hiệu suất mô hình máy học tốt nhất. Trong thực tế, đây thường không phải là một tùy chọn do chi phí tính toán. Ngoài ra, các tập hợp con khác nhau của các tính năng có thể tạo ra hiệu suất tối ưu cho các thuật toán học máy khác nhau. Điều này có nghĩa là không chỉ có một tập hợp con các tính năng mà có thể có nhiều tập hợp con các tính năng tối ưu tùy thuộc vào thuật toán máy học mà chúng tôi dự định sử dụng. Vì vậy trong suốt những năm qua, rất nhiều phương pháp khác nhau để chọn các tính năng đã được phát triển để thử và điều chỉnh càng nhiều cảnh báo và hạn chế càng tốt. Xuyên suốt loạt bài viết này, tôi sẽ mô tả rất nhiều phương pháp khác nhau để lựa chọn tính năng, ưu điểm và nhược điểm là gì và cách triển khai chúng trong thực tế bằng cách sử dụng các ví dụ về bộ dữ liệu kinh doanh.