2010-03-25 13 views

Trả lời

7

Những gì bạn cần là meta-classifier nhạy cảm (một meta-classifier làm việc với bất kỳ phân loại tùy ý, có thể là ANN, SVM, hoặc bất kỳ khác).

Điều này có thể được thực hiện theo hai cách:

  • trường đào tạo lại trọng theo một ma trận chi phí. Điều này được thực hiện bằng cách lấy lại dữ liệu sao cho một lớp cụ thể được biểu diễn quá mức, do đó mô hình được xây dựng nhạy cảm hơn với lớp cụ thể đó trái ngược với các lớp khác.
  • dự đoán lớp học với chi phí phân loại sai mong đợi tối thiểu (thay vì lớp có khả năng nhất). Ý tưởng ở đây là để giảm thiểu tổng chi phí dự kiến ​​bằng cách làm cho những sai lầm rẻ tiền thường xuyên hơn và những sai lầm đắt tiền ít thường xuyên hơn.

Một thuật toán triển khai phương pháp học đầu tiên là SECOC, sử dụng mã sửa lỗi; trong khi ví dụ về phương pháp thứ hai là MetaCost sử dụng đóng bao để cải thiện ước tính xác suất của trình phân loại.

2

Bạn có thể sử dụng chức năng chi phí tùy chỉnh. Đây là những gì tôi đã làm gần đây:

cost(true negative) = 0 
cost(true positive) = 0 
cost(false positive) = infinity 
cost(true negative) = L 

Điều này có thể được thực hiện, ví dụ: theo công thức này:

cost(y, t) = (1 - t) log (1 - y) - L * t * (1 - y) 

Điều này ngụ ý một số phát sinh và thực hiện tất nhiên và không nằm ngoài hộp công cụ Matlab.