Những thuật toán học máy nào là tốt để ước tính tính năng nào quan trọng hơn?


12

Tôi có dữ liệu với số lượng tính năng tối thiểu không thay đổi và một vài tính năng bổ sung có thể thay đổi và có tác động lớn đến kết quả. Tập dữ liệu của tôi trông như thế này:

Các tính năng là A, B, C (luôn có mặt) và D, E, F, G, H (đôi khi có mặt)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

Tôi muốn dự đoán giá trị kết quả và sự kết hợp của các tham số bổ sung là rất quan trọng để xác định kết quả. Trong ví dụ này, sự hiện diện của E và F dẫn đến một kết quả lớn, trong khi sự hiện diện của E và G thì không. Những thuật toán hoặc kỹ thuật máy học nào là tốt để nắm bắt hiện tượng này?


Bởi "đôi khi có mặt", bạn có nghĩa là bạn chỉ biết giá trị của họ đôi khi? Hoặc họ được biết là không đóng vai trò trong hầu hết các trường hợp? Hoặc có lẽ một cái gì đó khác?
David J. Harris

@ DavidJ.Harris Bởi "đôi khi có mặt", ý tôi là ví dụ đào tạo cụ thể không sở hữu tài sản. Nó giống như nếu nó bằng không. Trong vấn đề của tôi, tất cả các tính năng của tôi sẽ là các số dương trong một phạm vi nhất định (ví dụ: từ 5 đến 15 hoặc 100 đến 1000).
Benjamin Crouzier

1
có thể tốt khi xem liên kết này eren.0fees.net/2012/10/22/ từ
erogol

Câu trả lời:


14

Đây là một trong những lĩnh vực nghiên cứu chính trong Machine Learning và nó được gọi là Lựa chọn tính năng .

Nói chung, cách duy nhất để nói tập hợp con các tính năng tốt nhất là gì (để nhập vào một số mô hình dự đoán có thể kết hợp chúng), là thử tất cả các tập hợp con có thể. Điều này thường là không thể, vì vậy mọi người cố gắng lấy mẫu không gian của các tập hợp tính năng theo các phương pháp phỏng đoán khác nhau (xem bài viết để biết một số cách tiếp cận điển hình).


3

Từ sự hiểu biết của tôi, bạn đang tìm kiếm một thước đo về tầm quan trọng khác nhau. Chúng có nhiều hương vị dựa trên một số cách tiếp cận lý thuyết khác nhau, nhưng tất cả đều có liên kết mạnh mẽ với các phương pháp được sử dụng để tối ưu hóa thuật toán mà bạn đang nói. Thông thường, mỗi thuật toán học máy sẽ có một phương pháp tối ưu hóa chính tắc; tuyên truyền trở lại cho các mạng thần kinh, tối ưu hóa tuần tự cho các SVM, các tiêu chí thông tin khác nhau và các thử nghiệm có ý nghĩa thống kê cho các cây quyết định bao gồm cả ý nghĩa bình phương hoặc tạp chất gini. Tất nhiên, các phương pháp tối ưu hóa mới hơn khác thường được đề xuất cho mỗi thuật toán.

Các phương thức tối ưu hóa này cho mỗi thuật toán về cơ bản xác định tầm quan trọng của biến đối với mô hình. Về cơ bản, bạn đang tìm kiếm một đại diện gần đúng hoặc có thể hiểu được về kết quả của bước tối ưu hóa mà thuật toán đang thực hiện. Tuy nhiên, đây là vấn đề vì nhiều lý do.

  1. Khó khăn trong việc xác định ảnh hưởng của một biến nhất định đối với lựa chọn mẫu mô hình, do lựa chọn đó thường là một quá trình ngẫu nhiên. Các biến ảnh hưởng đến lựa chọn mô hình ở một mức độ nào đó, do đó ngay cả khi một biến không quan trọng đối với dự đoán cuối cùng trong mô hình , nó có thể đã định hình chủ yếu hình thức mô hình chính nó. Cho rằng việc tạo ra mô hình thường là ngẫu nhiên (được tối ưu hóa bằng cách sử dụng tối ưu hóa dòng hạt hoặc phương pháp đóng gói, v.v.), thật khó để hiểu chính xác làm thế nào một biến đã cho có thể định hình dạng của nó.

  2. Khó khăn trong việc trích xuất tầm quan trọng của một biến duy nhất cho rằng nó có thể chỉ quan trọng khi kết hợp hoặc tương tác với một biến khác.

  3. Một số biến chỉ có thể quan trọng đối với một số quan sát. Thiếu tầm quan trọng đối với các quan sát khác có thể gây nhiễu đo lường tầm quan trọng tổng thể bằng cách lấy trung bình một sự khác biệt thực sự.

Thật khó để có được một số liệu có thể giải thích ngay lập tức cho tầm quan trọng chính xác như được xác định bởi mô hình, vì nó có thể không tạo ra một số duy nhất (đặc biệt là trong trường hợp đóng bao). Thay vào đó, trong những trường hợp này có sự phân phối tầm quan trọng cho từng biến.

Một cách để khắc phục những vấn đề này có thể là sử dụng nhiễu loạn. Đây là một cách để phân tích mô hình cuối cùng của bạn bằng cách thêm nhiễu ngẫu nhiên vào các biến của bạn và sau đó kiểm tra xem điều này ảnh hưởng đến kết quả như thế nào. Ưu điểm là nó cho phép bạn tìm ra biến nào là quan trọng nhất theo kinh nghiệm thông qua mô phỏng - trả lời câu hỏi biến nào sẽ phá hủy dự đoán nhất nếu bị loại bỏ. Nhược điểm là có một cơ hội tốt là ngay cả khi các biến bị loại bỏ / nhiễu loạn, mô hình (nếu được đào tạo lại) có thể sử dụng các biến khác để tái tạo hiệu ứng của chúng, nghĩa là "mức độ quan trọng của biến" mà bạn vẫn chỉ thực sự đạt được cho thấy tầm quan trọng trong mô hình được đào tạo của bạn, nhưng không phải là tầm quan trọng chung của tất cả các mô hình có thể.


3

Như @Bitwise đề cập, lựa chọn tính năng hoặc trích xuất tính năng là một lĩnh vực nghiên cứu khổng lồ và có vô số cách để thực hiện.

Các câu trả lời khác đều có giá trị theo quan điểm của tôi, nhưng cuối cùng, bạn có thể sẽ thích nhất, và chọn phương pháp trực quan nhất cho bạn và bạn hiểu rõ nhất. Tôi vẫn sẽ thêm hai tùy chọn có thể.

Hồi quy bội có lẽ là kỹ thuật lâu đời nhất. Ý tưởng là để phù hợp với một mô hình để mô tả phản hồi từ các yếu tố dự đoán và chỉ giữ lại các yếu tố dự đoán có tác động lớn đến phản ứng (hệ số tỷ lệ lớn). Ở đây bạn có lẽ sẽ phải mã hóa lại sự vắng mặt của D, E, F và G như D=0, E=0, F=0, G=0 hoặc một cái gì đó như thế.

Một kỹ thuật khác không bao giờ đạt được sự phổ biến mà nó xứng đáng là phân tích quán tính (một biến thể của phân tích chính tắc ). Theo như tôi biết thì không có triển khai nào, và bạn sẽ phải bắt đầu lại từ đầu ( chẳng hạn). Đây là một phương pháp tuyến tính tìm thấy sự kết hợp tuyến tính tốt nhất của các tính năng phù hợp với (các) kết quả của bạn. Bài đăng trên blog này cho thấy một ví dụ về cách nó có thể được sử dụng.


2

Tôi sử dụng Information Gain (còn được gọi là Thông tin lẫn nhau). Cố vấn của tôi và tôi thường xuyên sử dụng phương pháp được mô tả trong bài báo này Cohen, 2008 để phân tích các tính năng để phân loại theo SVM.


2

Rừng ngẫu nhiên có thể khá tiện dụng cho những gì bạn muốn làm. Gói RandomForest cho R có chức năng tính toán 2 mức độ quan trọng. Nó cũng có khả năng tạo ra một số lô phụ thuộc một phần để bạn có thể kiểm tra trực quan hiệu ứng cận biên mà người dự đoán có thể có đối với phản ứng.


1

Tôi đang khó chịu ở đây nhưng vì một lý do. Bạn đã nghĩ đến việc thay thế các quan sát không đồng nhất bằng một biến chỉ báo có mặt | not_present chưa? Từ mô tả của bạn, có vẻ như giá trị chỉ báo này là một tính năng hợp lệ vì sự hiện diện của các yếu tố D đến H là không có thông tin: đó là sự hiện diện của chúng chỉ cho thấy kết quả lớn hơ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.