Làm thế nào để xử lý các tính năng không phải lúc nào cũng có sẵn?


8

Tôi có một tính năng trong vectơ đặc trưng của mình đôi khi không phải lúc nào cũng có sẵn (đối với một số mẫu), thật vô nghĩa khi sử dụng nó. Tôi cung cấp một MLPClassifier sklearn với vector tính năng này. Mạng nơ-ron có tự học không khi tính năng này có ý nghĩa để sử dụng cho quyết định của nó hay tôi phải thêm một lá cờ trong vectơ đặc trưng, ​​ví dụ như 1 .

Câu trả lời:


1

Nếu tính năng này không có ý nghĩa trong một tập hợp con của các mẫu, thì điều này không có nghĩa đây là (hoặc nên là) một tập dữ liệu riêng biệt, có cần mô hình thứ hai không? Đó là một cách tiếp cận tôi nghĩ về.

Thứ hai sẽ là làm việc với chính dữ liệu (tính năng). Có lẽ tốt nhất là sử dụng giá trị trung tính.

  • Trong trường hợp giá trị số:
    • thử sử dụng giá trị trung bình hoặc trung bình, được tính trên tất cả các mục
    • hãy thử sử dụng một giá trị cực trị, ví dụ -1 nếu tính năng của bạn chỉ có các giá trị dương. Điều này sẽ chỉ ra rằng tính năng này bị thiếu và mạng sẽ có thể xử lý nó.
  • Trong trường hợp giá trị văn bản, ví dụ: nhúng từ, thay thế giá trị bằng một trình giữ chỗ như thế N/Akhông có nhúng

0

Nếu các tính năng bạn đào tạo không giống với các tính năng bạn muốn dự đoán với bạn, có một vài tùy chọn:

  1. Giữ lại mô hình sao cho tính năng được đề cập không được sử dụng, vì nó sẽ không nằm trong tập dữ liệu dự đoán của bạn.
  2. Áp đặt một số giá trị cho tính năng đó nếu nó bị thiếu trong tập dữ liệu của bạn. Trong ví dụ của bạn, bạn có thể đưa ra một giả định rằng nó là "0" nếu nó bị thiếu, nhưng bạn sẽ phải quyết định điều này dựa trên tập dữ liệu và trực giác của bạn.

Nếu độ dài vectơ đặc trưng của tập huấn luyện và tập dự đoán của bạn khác nhau, thì bạn sẽ gặp phải lỗi trên tập dự đoán.


0

Tùy thuộc vào vấn đề, bạn có thể giải quyết vấn đề bằng cách xóa các giá trị này và đưa ra ước tính cho chúng nếu có thể. Một chiến lược khác là chia tỷ lệ các tính năng theo tỷ lệ -1,1 và áp đặt các giá trị này với ví dụ -3. Sau đó sử dụng một số phương pháp mạnh mẽ mà hoàn toàn bỏ qua các "ngoại lệ". Hi vọng điêu nay co ich.


0

Bạn có thể sử dụng mã hóa biến giả nếu các trường hợp. Bạn có thể nâng cao ý tưởng này cho vấn đề của bạn là tốt. Tôi sẽ minh họa thủ tục cho một hồi quy tuyến tính đơn giản.

Hãy tưởng tượng chúng ta muốn dự đoán thu nhập của một người bằng cách sử dụng nhiều năm giáo dục , các bài giảng đã dạy , các bài báo được xuất bản và vị trí học tập hiện tại . Các mẫu có chứa những người học tập cũng như những người không học tập.yix1ix2ix3ix4i

1. Thay thế : Gán các giá trị void tự nhiên. Ví dụ: Nếu chúng tôi đang tìm kiếm một đứa trẻ, sẽ không có ý nghĩa bao gồm thu nhập. Nhưng Thu nhập có giá trị rỗng tự nhiên là . Bạn có thể kiểm tra xem các biến của bạn cũng cho phép giá trị void như vậy.0

2. Thay thế : Bạn có thể chia dữ liệu thành hai nhóm (học thuật và không học thuật). Và chạy hai mô hình riêng biệt.

3. Thay thế : Giới thiệu một biến giả mới biến này là nếu người không học tập và giá trị là nếu người học tập. Sau đó, mô hình hồi quy của bạn sẽ trông như thế nàois_academic x5i0i1i

yi=w0+w~0x5i+w1x1i+w~1x5ix1i+w~2x5ix2i+w~3x5ix3i++w~4x5ix4i+εi

Vì vậy, tập dữ liệu của chúng tôi không phải là mà là . Bây giờ bộ dữ liệu đã hoàn tất nhưng mô hình không sử dụng hàm cơ sở tuyến tính nữa.x1i,x2i,x3i,x4i,yix1i,x5i,x5ix1i,x5ix2i,x5ix3i,x5ix4i,yi

Tương tự, bạn có thể suy nghĩ về tập dữ liệu của mình và giới thiệu các biến giả khi bạn thấy rằng một số tính năng chỉ hiện diện / hữu ích cho một mẫu trong tập dữ liệu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.