Tôi muốn tìm hiểu một mô hình Naive Bayes cho một vấn đề mà lớp là boolean (có một trong hai giá trị). Một số tính năng là boolean, nhưng các tính năng khác là phân loại và có thể đưa vào một số lượng nhỏ các giá trị (~ 5).Tôi có thể sử dụng sklearn.naive_bayes bằng các tính năng phân loại (nhiều) như thế nào?
Nếu tất cả các tính năng của tôi là boolean thì tôi muốn sử dụng sklearn.naive_bayes.BernoulliNB
. Có vẻ như rõ ràng rằng sklearn.naive_bayes.MultinomialNB
là không phải những gì tôi muốn.
Một giải pháp là chia các tính năng phân loại của tôi thành các tính năng boolean. Ví dụ: nếu biến "X" có giá trị "đỏ", "xanh lục", "xanh dương", tôi có thể có ba biến: "X là màu đỏ", "X có màu xanh lục", "X là màu xanh lam". Điều đó vi phạm giả định về sự độc lập có điều kiện của các biến cho lớp, vì vậy nó có vẻ hoàn toàn không phù hợp.
Một khả năng khác là mã hóa biến này dưới dạng biến có giá trị thực, trong đó 0,0 có nghĩa là màu đỏ, 1,0 có nghĩa là màu xanh lục và 2.0 có nghĩa là màu xanh dương. Điều đó cũng có vẻ hoàn toàn không thích hợp để sử dụng GaussianNB (vì lý do rõ ràng).
Những gì tôi đang cố gắng làm không có vẻ lạ, nhưng tôi không hiểu làm thế nào để phù hợp với mô hình Naive Bayes mà sklearn mang lại cho tôi. Thật dễ dàng để mã hóa bản thân mình, nhưng tôi thích sử dụng sklearn nếu có thể vì lý do rõ ràng (nhất: để tránh lỗi).
[Chỉnh sửa để giải thích lý do tại sao tôi không nghĩ rằng đa thức NB là những gì tôi muốn]:
hiểu biết của tôi là trong đa thức NB các vector đặc trưng bao gồm tội danh bao nhiêu lần một mã thông báo đã được quan sát trong k
iid mẫu.
Sự hiểu biết của tôi là điều này phù hợp với tài liệu phân loại khi có một lớp tài liệu cơ bản, sau đó mỗi từ trong tài liệu được giả định được vẽ từ phân phối phân loại cụ thể cho lớp đó. Tài liệu sẽ có các mã thông báo k
, vectơ tính năng sẽ có chiều dài bằng với kích thước từ vựng và tổng số tính năng sẽ là k
.
Trong trường hợp của tôi, tôi có một số biến bernoulli, cộng với một số biến phân loại. Nhưng không có khái niệm về "đếm" ở đây.
Ví dụ: các lớp là những người thích hoặc không thích toán học. Dự đoán là đại học (phân loại) và cho dù họ đã đi học sau đại học (boolean).
Tôi không nghĩ rằng điều này phù hợp với đa thức vì không có số lượng ở đây.
Bạn có thể giải thích tại sao đa số Naive Bayes không tốt cho bạn? –