paint-brush
Kỹ thuật tính năng cho Machine Learningtừ tác giả@sumitmakashir
841 lượt đọc
841 lượt đọc

Kỹ thuật tính năng cho Machine Learning

từ tác giả Sumit Makashir15m2024/05/15
Read on Terminal Reader

dài quá đọc không nổi

Kỹ thuật tính năng là rất quan trọng để tối đa hóa hiệu suất của các mô hình học máy. Bằng cách tạo và xử lý các tính năng có ý nghĩa, ngay cả các thuật toán đơn giản cũng có thể đạt được kết quả vượt trội. Các kỹ thuật chính bao gồm tổng hợp, khác biệt và tỷ lệ, mã hóa độ tuổi, mã hóa chỉ báo, mã hóa một điểm nóng và mã hóa mục tiêu. Xử lý tính năng hiệu quả bao gồm xử lý ngoại lệ, xử lý các giá trị còn thiếu, chia tỷ lệ, giảm kích thước và chuyển đổi mục tiêu sang phân phối chuẩn.
featured image - Kỹ thuật tính năng cho Machine Learning
Sumit Makashir HackerNoon profile picture
0-item


Chắc hẳn bạn đã từng nghe câu nói "rác vào, rác ra". Câu nói này quả thực có thể áp dụng được khi đào tạo các mô hình machine learning. Nếu chúng ta huấn luyện các mô hình học máy bằng cách sử dụng dữ liệu không liên quan thì ngay cả những thuật toán học máy tốt nhất cũng không giúp được gì nhiều. Ngược lại, việc sử dụng các tính năng có ý nghĩa được thiết kế tốt có thể đạt được hiệu suất vượt trội ngay cả với thuật toán học máy đơn giản. Vậy thì làm cách nào chúng ta có thể tạo ra những tính năng có ý nghĩa này để tối đa hóa hiệu suất của mô hình? Câu trả lời là kỹ thuật tính năng. Làm việc về kỹ thuật tính năng đặc biệt quan trọng khi làm việc với các thuật toán học máy truyền thống, chẳng hạn như hồi quy, cây quyết định, máy vectơ hỗ trợ và các thuật toán khác yêu cầu đầu vào số. Tuy nhiên, việc tạo ra những đầu vào số này không chỉ liên quan đến kỹ năng dữ liệu. Đó là một quá trình đòi hỏi sự sáng tạo, kiến thức chuyên môn và tính nghệ thuật cũng như tính khoa học.

Nói rộng ra, chúng ta có thể chia kỹ thuật tính năng thành hai thành phần: 1) tạo các tính năng mới và 2) xử lý các tính năng này để làm cho chúng hoạt động tối ưu với thuật toán máy đang được xem xét. Trong bài viết này, chúng ta sẽ thảo luận về hai thành phần này của kỹ thuật tính năng cho các bộ dữ liệu cắt ngang, có cấu trúc, không phải NLP.


Tạo tính năng mới

Việc thu thập dữ liệu thô có thể rất mệt mỏi và khi kết thúc nhiệm vụ này, chúng ta có thể quá mệt mỏi để đầu tư thêm thời gian và sức lực vào việc tạo ra các tính năng bổ sung. Nhưng đây chính là lúc chúng ta phải chống lại sự cám dỗ của việc lao thẳng vào đào tạo người mẫu. Tôi hứa với bạn rằng nó sẽ rất có giá trị! Tại điểm giao nhau này, chúng ta nên dừng lại và tự hỏi: "Nếu tôi đưa ra dự đoán theo cách thủ công dựa trên kiến thức về lĩnh vực của mình, những tính năng nào sẽ giúp tôi làm tốt công việc?" Việc đặt câu hỏi này có thể mở ra khả năng tạo ra các tính năng mới có ý nghĩa mà mô hình của chúng tôi có thể đã bỏ lỡ. Khi đã xem xét những tính năng bổ sung nào mà chúng tôi có thể hưởng lợi, chúng tôi có thể tận dụng các kỹ thuật bên dưới để tạo các tính năng mới từ dữ liệu thô.


1. Tổng hợp

Đúng như tên gọi, kỹ thuật này giúp chúng ta kết hợp nhiều điểm dữ liệu để tạo ra cái nhìn toàn diện hơn. Chúng tôi thường áp dụng phép tổng hợp trên dữ liệu số liên tục bằng cách sử dụng các hàm tiêu chuẩn như đếm, tổng, trung bình, tối thiểu, tối đa, phân vị, độ lệch chuẩn và hệ số biến thiên. Mỗi chức năng có thể nắm bắt các yếu tố thông tin khác nhau và chức năng tốt nhất để sử dụng tùy thuộc vào trường hợp sử dụng cụ thể. Thông thường, chúng ta có thể áp dụng tính năng tổng hợp theo một khoảng thời gian hoặc sự kiện cụ thể có ý nghĩa trong bối cảnh của vấn đề đó.

Hãy lấy một ví dụ mà chúng tôi muốn dự đoán liệu một giao dịch thẻ tín dụng nhất định có gian lận hay không. Đối với trường hợp sử dụng này, chắc chắn chúng tôi có thể sử dụng các tính năng dành riêng cho giao dịch, nhưng bên cạnh các tính năng đó, chúng tôi cũng có thể hưởng lợi từ việc tạo các tính năng tổng hợp ở cấp độ khách hàng như:

  1. Số lần khách hàng là nạn nhân lừa đảo trong 5 năm qua: Một khách hàng đã từng là nạn nhân lừa đảo nhiều lần trước đây có nhiều khả năng trở thành nạn nhân lừa đảo lần nữa. Do đó, việc sử dụng chế độ xem cấp độ khách hàng tổng hợp này có thể cung cấp các tín hiệu dự đoán thích hợp.

  2. Số tiền trung bình của năm giao dịch gần nhất: Thông thường, khi thẻ tín dụng bị xâm phạm, những kẻ lừa đảo có thể thực hiện nhiều giao dịch có giá trị thấp để kiểm tra thẻ. Hiện nay, một giao dịch có giá trị thấp là rất phổ biến và có thể không phải là dấu hiệu gian lận, nhưng nếu chúng tôi thấy nhiều giao dịch như vậy diễn ra liên tiếp trong thời gian ngắn, điều đó có thể cho thấy thẻ tín dụng đã bị xâm phạm.


Biểu đồ trên cùng hiển thị số lượng giao dịch riêng lẻ và chúng ta có thể thấy rằng các giao dịch có giá trị thấp riêng biệt không phải là hiếm và không cho thấy gian lận, tuy nhiên, nhiều giao dịch có giá trị thấp liên tiếp là dấu hiệu của gian lận. Biểu đồ dưới cùng hiển thị giá trị trung bình luân phiên của năm số tiền giao dịch gần nhất và chỉ trả về giá trị thấp nếu có mô hình nhiều giao dịch giá trị thấp liên tiếp. Trong trường hợp này, chế độ xem tổng hợp dưới cùng giúp phân biệt giữa giao dịch hợp pháp có giá trị thấp và giao dịch gian lận có giá trị thấp bằng cách sử dụng số tiền giao dịch làm đặc điểm.



2. Sự khác biệt và tỷ lệ

Trong nhiều loại vấn đề, sự thay đổi trong một mẫu đã định sẵn là một tín hiệu có giá trị để dự đoán hoặc phát hiện sự bất thường. Sự khác biệt và tỷ lệ là những kỹ thuật hiệu quả để biểu diễn những thay đổi trong các đặc điểm số. Cũng giống như tổng hợp, chúng ta cũng có thể áp dụng các kỹ thuật này trong một khoảng thời gian có ý nghĩa trong bối cảnh của vấn đề đó.

Ví dụ:

  1. Sự khác biệt giữa phần trăm giao dịch của người bán mới trong 1 giờ qua và phần trăm giao dịch của người bán mới trong 30 ngày qua: Tỷ lệ phần trăm giao dịch người bán mới liên tiếp cao có thể tự nó cho thấy rủi ro gian lận, nhưng khi chúng tôi thấy hành vi này đã thay đổi so với hành vi lịch sử của khách hàng thì nó càng trở thành một tín hiệu rõ ràng hơn.

  2. Tỷ lệ số lượng giao dịch trong ngày hiện tại so với số lượng giao dịch trung bình hàng ngày trong 30 ngày qua: Khi thẻ tín dụng bị xâm phạm, thẻ đó có thể sẽ có nhiều giao dịch trong một khoảng thời gian ngắn, điều này có thể không phù hợp với việc sử dụng thẻ tín dụng trong quá khứ. Tỷ lệ cao đáng kể giữa số lượng giao dịch trong ngày hiện tại so với số lượng giao dịch trung bình hàng ngày trong 30 ngày qua có thể cho thấy các kiểu sử dụng gian lận.


Từ bảng trên, chúng ta có thể thấy rằng bản thân số lượng giao dịch cao vào một ngày nhất định có thể không phải là dấu hiệu của hành vi giao dịch bất thường. Ngược lại, tính năng dựa trên tỷ lệ có thể tạo điều kiện thuận lợi cho việc so sánh giữa hành vi giao dịch hiện tại của khách hàng và hành vi giao dịch trong quá khứ của họ và do đó có thể nắm bắt những điểm bất thường hiệu quả hơn.

3. Mã hóa tuổi

Chúng ta có thể sử dụng kỹ thuật tính tuổi để chuyển đổi các đặc điểm ngày hoặc dấu thời gian thành các đặc điểm số bằng cách lấy sự khác biệt giữa hai dấu thời gian hoặc ngày tháng. Chúng ta cũng có thể sử dụng kỹ thuật này để chuyển đổi một số đối tượng không phải số thành các đối tượng số có ý nghĩa nếu quyền sử dụng được liên kết với các giá trị đối tượng có thể là tín hiệu có giá trị để dự đoán.

Ví dụ:

  1. Số ngày kể từ khi thẻ tín dụng được sử dụng lần cuối: Một giao dịch đột ngột trên thẻ tín dụng không hoạt động trong một thời gian dài có thể tiềm ẩn nguy cơ gian lận cao. Chúng tôi có thể tính toán tính năng này bằng cách lấy chênh lệch thời gian giữa ngày kể từ ngày thẻ tín dụng được sử dụng lần cuối và ngày giao dịch hiện tại.
  2. Số ngày kể từ khi thiết bị của khách hàng được sử dụng lần đầu tiên: Nếu chúng tôi thấy giao dịch đến từ một thiết bị mới, giao dịch đó có thể sẽ rủi ro hơn giao dịch được thực hiện từ thiết bị mà khách hàng đã sử dụng lâu hơn. Chúng ta có thể tạo một đặc điểm cho biết tuổi của thiết bị là sự khác biệt giữa ngày kể từ ngày khách hàng sử dụng thiết bị này lần đầu tiên và ngày giao dịch hiện tại.

Các bảng trên cho thấy một ví dụ về mã hóa độ tuổi. Ở đây, chúng tôi đã tạo một tính năng số mới "Số ngày kể từ lần đầu tiên sử dụng thiết bị giao dịch" để chênh lệch số ngày giữa ngày sử dụng thiết bị của khách hàng lần đầu tiên và ngày giao dịch hiện tại.


4. Mã hóa chỉ báo

Các tính năng chỉ báo hoặc Boolean có giá trị nhị phân {1, 0} hoặc {True, False}. Các tính năng chỉ báo rất phổ biến và được sử dụng để thể hiện nhiều loại thông tin nhị phân khác nhau. Trong một số trường hợp, chúng ta có thể đã có sẵn các đặc điểm nhị phân như vậy ở dạng số, trong khi trong các trường hợp khác, chúng có thể có các giá trị không phải là số. Để sử dụng các đặc điểm nhị phân không phải số cho việc huấn luyện mô hình, tất cả những gì chúng ta phải làm là ánh xạ chúng tới các giá trị số.

Nhìn xa hơn những lần xuất hiện phổ biến này và việc sử dụng các tính năng chỉ báo, chúng ta có thể tận dụng mã hóa chỉ báo như một công cụ để thể hiện sự so sánh giữa các điểm dữ liệu không phải là số. Thuộc tính này làm cho nó trở nên đặc biệt mạnh mẽ vì nó tạo ra cách để chúng ta đo lường những thay đổi trong các đối tượng không phải là số.

Ví dụ:

  1. Xác minh không thành công trong sự kiện đăng nhập gần đây: Sự kiện đăng nhập không thành công gần đây có thể liên quan đến nguy cơ giao dịch gian lận cao hơn. Trong trường hợp này, dữ liệu thô có thể có giá trị Có hoặc Không cho tính năng này; tất cả những gì chúng ta phải làm ở đây là ánh xạ các giá trị này thành 1 hoặc 0.

  2. Thay đổi vị trí quốc gia so với giao dịch cuối cùng: Thay đổi vị trí quốc gia có thể cho thấy thẻ tín dụng bị xâm phạm. Ở đây, việc tạo đặc điểm chỉ báo thể hiện sự thay đổi trong đối tượng không phải số 'vị trí quốc gia' sẽ nắm bắt thông tin thay đổi của quốc gia này.


Các bảng trên cho thấy một ví dụ về mã hóa chỉ báo. Ở đây, chúng tôi đã tạo một tính năng số mới "Thay đổi quốc gia so với giao dịch trước đó" bằng cách so sánh vị trí quốc gia giao dịch hiện tại của khách hàng với vị trí quốc gia giao dịch trước đó của họ.


5. Mã hóa một lần nóng

Kỹ thuật này có thể được áp dụng nếu dữ liệu đối tượng của chúng tôi ở dạng phân loại, số hoặc không phải số. Dạng phân loại số đề cập đến dữ liệu số chứa dữ liệu không liên tục hoặc không đo lường, chẳng hạn như mã vùng địa lý, ID cửa hàng và các loại dữ liệu khác. Một kỹ thuật mã hóa nóng có thể chuyển đổi các tính năng đó thành một tập hợp các tính năng chỉ báo mà chúng ta có thể sử dụng trong việc đào tạo các mô hình học máy. Việc áp dụng một mã hóa nóng cho một đối tượng địa lý phân loại sẽ tạo ra một đối tượng địa lý nhị phân mới cho mỗi danh mục trong biến phân loại đó. Vì số lượng đối tượng địa lý mới tăng khi số lượng danh mục tăng lên nên kỹ thuật này phù hợp với các đối tượng có số lượng danh mục thấp, đặc biệt nếu chúng ta có tập dữ liệu nhỏ hơn. Một trong những quy tắc chung gợi ý áp dụng kỹ thuật này nếu chúng ta có ít nhất mười bản ghi cho mỗi danh mục.

Ví dụ:

  1. Danh mục giao dịch mua hàng: Một số loại danh mục mua hàng nhất định có thể có nguy cơ gian lận cao hơn. Vì tên danh mục mua hàng là dữ liệu văn bản nên chúng ta có thể áp dụng kỹ thuật mã hóa one-hot để chuyển đổi tính năng này thành một tập hợp các tính năng chỉ báo số. Nếu có mười tên danh mục mua hàng khác nhau, mã hóa một lần sẽ tạo ra mười đặc điểm chỉ báo mới, một đặc điểm cho mỗi tên danh mục mua hàng.
  2. Loại thiết bị: Giao dịch trực tuyến có thể được thực hiện thông qua một số loại thiết bị khác nhau, chẳng hạn như iPhone, điện thoại Android, PC Windows và Mac. Một số thiết bị này dễ bị nhiễm phần mềm độc hại hơn hoặc dễ bị kẻ lừa đảo truy cập hơn và do đó, có thể có nguy cơ lừa đảo cao hơn. Để bao gồm thông tin loại thiết bị ở dạng số, chúng tôi có thể áp dụng mã hóa một lần cho loại thiết bị, điều này sẽ tạo ra tính năng chỉ báo mới cho từng loại thiết bị.

Các bảng trên cho thấy một ví dụ về mã hóa một lần. Ở đây, chúng tôi đã tạo một tập hợp các tính năng chỉ báo số mới bằng cách áp dụng kỹ thuật mã hóa one-hot cho tính năng phân loại không phải số "Loại thiết bị".


6. Mã hóa mục tiêu

Kỹ thuật này được áp dụng cho cùng loại tính năng mà chúng tôi sẽ áp dụng mã hóa một nóng nhưng có một số ưu điểm và nhược điểm so với mã hóa một nóng. Khi số lượng danh mục cao (số lượng phần tử cao), việc sử dụng mã hóa một lần sẽ làm tăng số lượng tính năng một cách không mong muốn, điều này có thể dẫn đến tình trạng trang bị quá mức mô hình. Mã hóa mục tiêu có thể là một kỹ thuật hiệu quả trong những trường hợp như vậy, miễn là chúng ta đang giải quyết vấn đề học có giám sát. Đó là một kỹ thuật ánh xạ từng giá trị danh mục tới giá trị mong đợi của mục tiêu cho danh mục đó. Nếu làm việc với một bài toán hồi quy với một mục tiêu liên tục, phép tính này sẽ ánh xạ danh mục đó tới giá trị mục tiêu trung bình cho danh mục đó. Trong trường hợp có vấn đề phân loại với mục tiêu nhị phân, mã hóa mục tiêu sẽ ánh xạ danh mục đó với xác suất sự kiện tích cực của danh mục đó. Không giống như mã hóa one-hot, kỹ thuật này có ưu điểm là không làm tăng số lượng tính năng. Nhược điểm của kỹ thuật này là nó chỉ có thể được áp dụng cho các bài toán học có giám sát. Việc áp dụng kỹ thuật này cũng có thể làm cho mô hình dễ bị khớp quá mức, đặc biệt nếu số lượng quan sát ở một số loại thấp.

Ví dụ:

  1. Tên người bán: Các giao dịch được thực hiện với một số người bán nhất định có thể cho thấy hoạt động gian lận. Có thể có hàng nghìn người bán như vậy, mỗi người có nguy cơ giao dịch gian lận khác nhau. Việc áp dụng mã hóa một lần cho một tính năng có chứa tên người bán có thể tạo ra hàng nghìn tính năng mới, điều này là điều không mong muốn. Trong những trường hợp như vậy, mã hóa mục tiêu có thể giúp nắm bắt thông tin rủi ro gian lận của người bán mà không làm tăng số lượng tính năng.
  2. Mã zip giao dịch: Giống như người bán, các giao dịch được thực hiện bằng các mã zip khác nhau có thể thể hiện mức độ rủi ro gian lận khác nhau. Mặc dù mã zip có các giá trị số nhưng chúng không phải là các biến đo lường liên tục và không nên được sử dụng trong mô hình. Thay vào đó, chúng tôi có thể kết hợp thông tin rủi ro gian lận liên quan đến từng mã vùng bằng cách áp dụng kỹ thuật như mã hóa mục tiêu.

Các bảng trên cho thấy một ví dụ về mã hóa mục tiêu. Ở đây, chúng tôi đã tạo một tính năng số mới duy nhất "Mã hóa mục tiêu Tên người bán" bằng cách áp dụng kỹ thuật mã hóa mục tiêu cho tính năng phân loại không phải số "Tên người bán". Như tên cho thấy, kỹ thuật này dựa vào các giá trị đích để tính toán các giá trị đặc trưng mới.



Khi chúng tôi đã tạo các tính năng mới từ dữ liệu thô, bước tiếp theo là xử lý chúng để có hiệu suất mô hình tối ưu. Chúng tôi thực hiện điều này thông qua việc xử lý tính năng như được thảo luận trong phần tiếp theo.

Xử lý tính năng

Xử lý tính năng đề cập đến một loạt các bước xử lý dữ liệu nhằm đảm bảo rằng các mô hình học máy phù hợp với dữ liệu như dự định. Mặc dù một số bước xử lý này là bắt buộc khi sử dụng một số thuật toán học máy nhất định, nhưng những bước khác đảm bảo rằng chúng tôi đạt được sự phối hợp hoạt động tốt giữa các tính năng và thuật toán học máy đang được xem xét. Trong phần này, hãy thảo luận về một số bước xử lý tính năng phổ biến và lý do chúng ta cần chúng.

1. Xử lý ngoại lệ

Một số thuật toán học máy, đặc biệt là các thuật toán tham số như mô hình hồi quy, bị ảnh hưởng nghiêm trọng bởi các giá trị ngoại lệ. Các thuật toán học máy này cố gắng điều chỉnh các giá trị ngoại lệ, ảnh hưởng nghiêm trọng đến các tham số mô hình và ảnh hưởng đến hiệu suất tổng thể. Để xử lý các ngoại lệ, trước tiên chúng ta phải xác định chúng. Chúng ta có thể phát hiện các ngoại lệ cho một tính năng cụ thể bằng cách áp dụng một số quy tắc kinh nghiệm nhất định, chẳng hạn như có giá trị tuyệt đối lớn hơn giá trị trung bình cộng với ba độ lệch chuẩn hoặc giá trị nằm ngoài giá trị râu gần nhất (giá trị tứ phân vị gần nhất cộng với 1,5 lần giá trị phạm vi liên vùng). Khi đã xác định được các ngoại lệ trong một tính năng cụ thể, chúng ta có thể sử dụng một số kỹ thuật bên dưới để xử lý các ngoại lệ:

  1. Xóa: chúng ta có thể xóa các quan sát có ít nhất một giá trị ngoại lệ. Tuy nhiên, nếu dữ liệu của chúng tôi có quá nhiều giá trị ngoại lệ trên các đối tượng địa lý khác nhau, chúng tôi có thể mất nhiều quan sát.
  2. Thay thế: Chúng ta có thể thay thế các giá trị ngoại lệ bằng giá trị trung bình, chẳng hạn như giá trị trung bình, trung vị và mode của một tính năng nhất định.
  3. Chuyển đổi hoặc tiêu chuẩn hóa tính năng: chúng ta có thể sử dụng chuyển đổi nhật ký hoặc tiêu chuẩn hóa tính năng (như được mô tả trong phần chia tỷ lệ) để giảm độ lớn của các ngoại lệ.
  4. Giới hạn và làm sàn: chúng ta có thể thay thế các ngoại lệ vượt quá một giá trị nhất định bằng giá trị đó, ví dụ: thay thế tất cả các giá trị trên phân vị thứ 99 bằng giá trị phân vị thứ 99 và thay thế tất cả các giá trị bên dưới phân vị thứ 1 bằng giá trị phân vị thứ 1.


Hình ảnh trên cho thấy hai kỹ thuật thường được sử dụng để phát hiện các ngoại lệ đơn biến. Chúng ta có thể thấy rằng hai kỹ thuật này có thể mang lại các tập hợp ngoại lệ khác nhau. Nên sử dụng kỹ thuật SD trung bình+3 nếu dữ liệu tuân theo phân phối chuẩn. Kỹ thuật dựa trên râu boxplot mang tính tổng quát hơn và có thể áp dụng cho dữ liệu với bất kỳ phân phối nào.


Các bảng trên cho thấy việc áp dụng các kỹ thuật thường được sử dụng để xử lý ngoại lệ.


Lưu ý rằng có các kỹ thuật để phát hiện các quan sát là các ngoại lệ đa biến (các ngoại lệ liên quan đến nhiều tính năng), nhưng chúng phức tạp hơn và thường không mang lại nhiều giá trị khi đào tạo mô hình học máy. Cũng lưu ý rằng các ngoại lệ không phải là vấn đề đáng lo ngại khi làm việc với hầu hết các mô hình máy học phi tham số như máy vectơ hỗ trợ và các thuật toán dựa trên cây như cây quyết định, rừng ngẫu nhiên và XGBoost.


2. Xử lý các giá trị bị thiếu

Thiếu dữ liệu là hiện tượng rất phổ biến trong các bộ dữ liệu trong thế giới thực. Hầu hết các thuật toán học máy truyền thống, ngoại trừ một số thuật toán như XGBoost, không cho phép thiếu các giá trị trong tập dữ liệu huấn luyện. Do đó, sửa các giá trị bị thiếu là một trong những nhiệm vụ thường xuyên trong mô hình học máy. Có một số kỹ thuật để xử lý các giá trị bị thiếu; tuy nhiên, trước khi thực hiện bất kỳ kỹ thuật nào, điều quan trọng là phải hiểu nguyên nhân của dữ liệu bị thiếu hoặc ít nhất là biết liệu dữ liệu có bị thiếu ngẫu nhiên hay không. Nếu dữ liệu không bị thiếu một cách ngẫu nhiên, nghĩa là các nhóm con nhất định có nhiều khả năng bị thiếu dữ liệu hơn, thì việc xác định giá trị cho những dữ liệu đó có thể khó khăn, đặc biệt nếu có ít hoặc không có dữ liệu. Nếu dữ liệu bị thiếu ngẫu nhiên, chúng ta có thể sử dụng một số kỹ thuật xử lý phổ biến được mô tả bên dưới. Tất cả đều có ưu và nhược điểm và chúng ta phải quyết định phương pháp nào phù hợp nhất với trường hợp sử dụng của mình.

  1. Xóa: Chúng tôi có thể xóa các quan sát có ít nhất một giá trị tính năng bị thiếu. Tuy nhiên, nếu dữ liệu của chúng tôi thiếu quá nhiều giá trị trên các tính năng khác nhau, chúng tôi có thể mất nhiều quan sát.
  2. Loại bỏ: Nếu một đối tượng có số lượng lớn giá trị bị thiếu, chúng ta có thể chọn loại bỏ nó.
  3. Thay thế bằng giá trị trung bình: Chúng ta có thể sử dụng giá trị trung bình như giá trị trung bình, trung vị và mốt của một đặc điểm nhất định để thay thế cho các giá trị còn thiếu. Phương pháp này thực hiện đơn giản nhưng có thể không cung cấp ước tính tốt cho tất cả các loại quan sát. Ví dụ: một giao dịch có rủi ro gian lận cao có thể có số tiền giao dịch trung bình khác với số tiền giao dịch có rủi ro gian lận thấp và việc sử dụng mức trung bình tổng thể cho số tiền giao dịch có rủi ro gian lận cao bị thiếu có thể không phải là sự thay thế phù hợp.
  4. Khả năng tối đa, nhiều biến số, K lân cận gần nhất: Đây là những phương pháp phức tạp hơn xem xét mối quan hệ với các tính năng khác trong tập dữ liệu và có thể cung cấp ước tính chính xác hơn so với mức trung bình tổng thể. Tuy nhiên, việc triển khai các phương pháp này sẽ yêu cầu triển khai mô hình hoặc thuật toán bổ sung.

Các bảng trên cho thấy việc áp dụng các kỹ thuật thường được sử dụng để xử lý các giá trị còn thiếu.

3. Chia tỷ lệ

Thông thường, các tính năng mà chúng tôi sử dụng trong mô hình học máy có phạm vi khác nhau. Nếu chúng ta sử dụng chúng mà không chia tỷ lệ, các đặc điểm có giá trị tuyệt đối lớn sẽ chiếm ưu thế trong kết quả dự đoán. Thay vào đó, để mang lại cho mỗi tính năng một cơ hội công bằng để đóng góp vào kết quả dự đoán, chúng ta phải đưa tất cả các tính năng lên cùng một quy mô. Hai kỹ thuật chia tỷ lệ phổ biến nhất là:

  1. Chuẩn hóa: Kỹ thuật chia tỷ lệ này giới hạn các giá trị đối tượng trong khoảng từ 0 đến 1. Để áp dụng chuẩn hóa, chúng tôi trừ giá trị đối tượng tối thiểu và chia cho phạm vi (chênh lệch giữa tối thiểu và tối đa) của đối tượng địa lý đó. Chuẩn hóa có thể không phải là một kỹ thuật tốt nếu một số đặc điểm của chúng ta có độ lệch rõ rệt hoặc có một vài điểm ngoại lệ quá mức.
  2. Tiêu chuẩn hóa: Kỹ thuật này chuyển đổi phân phối dữ liệu đối tượng thành phân phối chuẩn chuẩn. Chúng ta có thể thực hiện kỹ thuật này bằng cách trừ giá trị trung bình và chia cho độ lệch chuẩn. Kỹ thuật này thường được ưa chuộng hơn nếu đối tượng địa lý có độ lệch lớn hoặc có một vài điểm ngoại lệ cực đoan.

Lưu ý rằng các thuật toán dựa trên cây như cây quyết định, rừng ngẫu nhiên, XGBoost và các thuật toán khác có thể hoạt động với dữ liệu chưa được chia tỷ lệ và không cần chia tỷ lệ khi sử dụng các thuật toán này.

Các bảng trên cho thấy ứng dụng của hai kỹ thuật chia tỷ lệ đặc trưng thường được sử dụng.


Hình ảnh trên cho thấy sự khác biệt về tỷ lệ giữa các giá trị tính năng ban đầu, chuẩn hóa và tiêu chuẩn hóa. Như chúng ta có thể thấy, việc chia tỷ lệ không ảnh hưởng đến hình dạng phân phối dữ liệu.

4. Giảm kích thước

Ngày nay, chúng ta có lượng dữ liệu khổng lồ và có thể xây dựng một bộ sưu tập lớn các tính năng để huấn luyện các mô hình của mình. Đối với hầu hết các thuật toán, việc có nhiều tính năng hơn là điều tốt vì nó cung cấp nhiều tùy chọn hơn để cải thiện hiệu suất của mô hình. Tuy nhiên, điều này không đúng với mọi thuật toán. Các thuật toán dựa trên số liệu khoảng cách gặp phải vấn đề về chiều - khi số lượng đối tượng tăng lên đáng kể, giá trị khoảng cách giữa hai quan sát trở nên vô nghĩa. Do đó, để sử dụng các thuật toán dựa trên số liệu khoảng cách, chúng ta phải đảm bảo rằng chúng ta không sử dụng nhiều tính năng. Nếu tập dữ liệu của chúng tôi có nhiều tính năng và nếu chúng tôi không biết nên giữ lại tính năng nào và loại bỏ tính năng nào, thì chúng tôi có thể sử dụng các kỹ thuật như Phân tích thành phần chính (PCA). PCA chuyển đổi tập hợp các tính năng cũ thành một tập hợp các tính năng mới. Nó tạo ra các đặc điểm mới sao cho đặc điểm có giá trị riêng cao nhất sẽ nắm bắt được hầu hết thông tin từ các đặc điểm cũ. Sau đó, chúng tôi chỉ có thể giữ lại một số tính năng mới hàng đầu và loại bỏ những tính năng còn lại.

Các kỹ thuật thống kê khác, chẳng hạn như phân tích liên kết và thuật toán lựa chọn tính năng, có thể được sử dụng trong các bài toán học có giám sát để giảm số lượng tính năng. Tuy nhiên, nhìn chung chúng không nắm bắt được mức độ thông tin giống như PCA với cùng số lượng tính năng.

Các bảng trên cho thấy ứng dụng của PCA để giảm tính năng. Như chúng ta có thể thấy ba tính năng đầu tiên nắm bắt hơn 87% thông tin có trong tập dữ liệu gốc. Trong trường hợp này, chúng ta có thể chọn loại bỏ hai đặc điểm (f4 và f5) do mất <13% thông tin. Số lượng tính năng cần giữ lại và số lượng tính năng cần loại bỏ sẽ khác nhau tùy theo từng vấn đề tùy thuộc vào nhiều yếu tố khác nhau.


5. Chuyển sang phân phối bình thường

Bước này là một ngoại lệ vì nó chỉ áp dụng cho mục tiêu chứ không áp dụng cho các tính năng. Ngoài ra, hầu hết các thuật toán học máy không có bất kỳ hạn chế nào đối với việc phân phối mục tiêu, nhưng một số thuật toán nhất định như hồi quy tuyến tính, yêu cầu mục tiêu phải được phân phối bình thường. Hồi quy tuyến tính giả định rằng các giá trị lỗi là đối xứng và tập trung quanh 0 đối với tất cả các điểm dữ liệu (giống như hình dạng của phân phối chuẩn) và biến mục tiêu được phân phối chuẩn đảm bảo rằng giả định này được đáp ứng. Chúng ta có thể hiểu sự phân bố của mục tiêu bằng cách vẽ biểu đồ. Các kiểm tra thống kê như kiểm tra Shapiro-Wilk cho chúng ta biết về tính quy phạm bằng cách kiểm tra giả thuyết này. Trong trường hợp mục tiêu của chúng tôi không được phân phối bình thường, chúng tôi có thể thử các phép biến đổi khác nhau như biến đổi log, biến đổi bình phương, biến đổi căn bậc hai và các biến đổi khác để kiểm tra xem biến đổi nào làm cho phân phối mục tiêu trở nên bình thường. Ngoài ra còn có một phép chuyển đổi Box-Cox thử nhiều giá trị tham số và chúng ta có thể chọn giá trị biến đổi tốt nhất phân phối mục tiêu của chúng ta thành bình thường.

Hình ảnh trên cho thấy ba phép biến đổi của dữ liệu đích ban đầu. Trong trường hợp cụ thể này, chúng ta có thể thấy rằng phép chuyển đổi nhật ký hoạt động tốt nhất để chuyển đổi phân phối dữ liệu gốc thành phân phối chuẩn.


Lưu ý: Mặc dù chúng tôi có thể triển khai các bước xử lý đối tượng trong các đối tượng theo bất kỳ thứ tự nào, nhưng chúng tôi phải xem xét kỹ lưỡng trình tự ứng dụng của chúng. Ví dụ, việc xử lý giá trị bị thiếu bằng cách sử dụng thay thế giá trị trung bình có thể được thực hiện trước hoặc sau khi phát hiện giá trị ngoại lệ. Tuy nhiên, giá trị trung bình được sử dụng để thay thế có thể khác nhau tùy thuộc vào việc chúng ta xử lý các giá trị còn thiếu trước hay sau khi xử lý ngoại lệ. Trình tự xử lý tính năng được nêu trong bài viết này xử lý các vấn đề theo thứ tự tác động mà chúng có thể gây ra đối với các bước xử lý tiếp theo. Vì vậy, làm theo trình tự này nhìn chung sẽ có hiệu quả trong việc giải quyết hầu hết các vấn đề.


Phần kết luận

Như đã đề cập trong phần giới thiệu, kỹ thuật tính năng là một khía cạnh của học máy cho phép chúng ta kiểm soát hiệu suất của mô hình ở một mức độ đặc biệt. Để khai thác tiềm năng của kỹ thuật tính năng, chúng tôi đã tìm hiểu nhiều kỹ thuật khác nhau trong bài viết này để tạo ra các tính năng mới và xử lý chúng để hoạt động tối ưu với các mô hình học máy. Cho dù bạn chọn sử dụng các nguyên tắc và kỹ thuật kỹ thuật tính năng nào trong bài viết này, thông điệp quan trọng ở đây là hãy hiểu rằng học máy không chỉ là yêu cầu thuật toán tìm ra các mẫu. Mục đích của chúng tôi là cho phép thuật toán thực hiện công việc của mình một cách hiệu quả bằng cách cung cấp loại dữ liệu mà nó cần.