Naive Bayes là một phân loại tuyến tính như thế nào?


31

Tôi đã thấy các chủ đề khác ở đây nhưng tôi không nghĩ câu trả lời thỏa mãn câu hỏi thực tế. Những gì tôi đã liên tục đọc là Naive Bayes là một bộ phân loại tuyến tính (ví dụ: ở đây ) (sao cho nó vẽ một ranh giới quyết định tuyến tính) bằng cách sử dụng trình diễn tỷ lệ cược log.

Tuy nhiên, tôi đã mô phỏng hai đám mây Gaussian và đưa ra một ranh giới quyết định và nhận được kết quả như vậy (thư viện e1071 trong r, sử dụng naiveBayes ()) 1- Xanh, 0 - Đỏ

Như chúng ta có thể thấy, ranh giới quyết định là phi tuyến tính. Có phải nó đang cố gắng nói rằng các tham số (xác suất có điều kiện) là một tổ hợp tuyến tính trong không gian nhật ký thay vì nói chính bộ phân loại tách dữ liệu tuyến tính?


Làm thế nào bạn tạo ra ranh giới quyết định? Tôi nghi ngờ nó sẽ làm với thói quen phù hợp của bạn hơn là ranh giới quyết định thực sự của phân loại. thông thường người ta sẽ tạo ra một ranh giới quyết định bằng cách tính toán quyết định tại mọi điểm trong góc phần tư của bạn.
seanv507

Đó là những gì tôi đã làm, tôi lấy hai phạm vi X = [Min (x), Max (x)] và Y = [Min (Y), Max (Y)] với khoảng cách 0,1. Sau đó, tôi đã trang bị tất cả các điểm dữ liệu đó với trình phân loại được đào tạo và tìm thấy các điểm sao cho tỷ lệ cược log nằm trong khoảng -0,05 đến 0,05
Kevin Pei

Câu trả lời:


30

Nói chung, trình phân loại Bayes ngây thơ không phải là tuyến tính, nhưng nếu các yếu tố khả năng là từ các gia đình hàm mũ , thì phân loại Bayes ngây thơ tương ứng với một phân loại tuyến tính trong một không gian đặc trưng cụ thể. Đây là cách để thấy điều này.p(xic)

Bạn có thể viết bất kỳ trình phân loại Bayes ngây thơ nào dưới dạng *

p(c=1x)=σ(ilogp(xic=1)p(xic=0)+logp(c=1)p(c=0)),

trong đó là hàm logistic . Nếu là từ một gia đình hàm mũ, chúng ta có thể viết nó dưới dạngσp(xic)

p(xic)=hi(xi)exp(uicϕi(xi)Ai(uic)),

và do đó

p(c=1x)=σ(iwiϕi(xi)+b),

Ở đâu

wi=ui1ui0,b=logp(c=1)p(c=0)i(Ai(ui1)Ai(ui0)).

Lưu ý rằng điều này tương tự như hồi quy logistic - một bộ phân loại tuyến tính - trong không gian tính năng được xác định bởi . Đối với nhiều hơn hai lớp, chúng tôi tương tự nhận được hồi quy logistic đa thức (hoặc softmax) .ϕi

Nếu là Gaussian, thì và chúng ta nên có p(xic)ϕi(xi)=(xi,xi2)

wi1=σ12μ1σ02μ0,wi2=2σ022σ12,bi=logσ0logσ1,

giả sử .p(c=1)=p(c=0)=12


* Đây là cách lấy kết quả này:

p(c=1x)=p(xc=1)p(c=1)p(xc=1)p(c=1)+p(xc=0)p(c=0)=11+p(xc=0)p(c=0)p(xc=1)p(c=1)=11+exp(logp(xc=1)p(c=1)p(xc=0)p(c=0))=σ(ilogp(xic=1)p(xic=0)+logp(c=1)p(c=0))

Cảm ơn bạn về đạo hàm, mà bây giờ tôi hiểu, bạn có thể giải thích các ký hiệu trong phương trình 2 trở xuống không? (u, h (x_i), phi (x_i), v.v.) Có phải P (x_i | c) theo một gia đình hàm mũ chỉ đơn giản là lấy giá trị từ pdf?
Kevin Pei

Có nhiều cách khác nhau để bạn có thể thể hiện một và cùng một phân phối. Phương trình thứ hai là một phân bố gia đình theo cấp số nhân ở dạng chính tắc. Nhiều phân phối là các họ theo cấp số nhân (Gaussian, Laplace, Dirichlet, Bernoulli, nhị thức, chỉ để đặt tên cho một số ít), nhưng hàm mật độ / khối lượng của chúng thường không được đưa ra ở dạng chính tắc. Vì vậy, trước tiên bạn phải reparetrize phân phối. Bảng này cho bạn biết cách tính (tham số tự nhiên) và (số liệu thống kê đầy đủ) cho các bản phân phối khác nhau: en.wikipedia.org/wiki/Exponential_family#Table_of_distributionuϕ
Lucas

1
Lưu ý điểm quan trọng mà . Điều này có nghĩa là các phân loại tuyến tính là sự kết hợp tuyến tính của các trọng số và các hàm phi tuyến tính của các tính năng! Vì vậy, theo quan điểm của người gửi ban đầu, một biểu đồ của các biểu dữ liệu có thể không hiển thị rằng chúng có thể phân tách bằng một dòng. ϕ(x)=(x,x2)w
RMurphy

Tôi thấy câu trả lời này gây hiểu nhầm: như đã chỉ ra trong nhận xét, và câu trả lời ngay bên dưới, Bayes ngây thơ Gaussian không tuyến tính trong không gian tính năng ban đầu, nhưng trong một biến đổi phi tuyến tính của những điều này. Do đó nó không phải là một phân loại tuyến tính thông thường.
Gael Varoquaux

tại sao là Gaussian, sau đó ? Tôi nghĩ rằng thống kê cho phân phối Gaussian phải là . p(xi|c)ϕi(xi)=(xi,xi2)T(x)x/σ
Naomi

8

Nó chỉ là tuyến tính nếu các ma trận phương sai điều kiện lớp giống nhau cho cả hai lớp. Để thấy điều này, hãy viết ra khẩu phần của các bản ghi nhật ký và bạn sẽ chỉ nhận được một hàm tuyến tính từ nó nếu các phương sai tương ứng là như nhau. Nếu không thì nó là bậc hai.


3

Tôi muốn thêm một điểm nữa: lý do cho một số sự nhầm lẫn dựa trên ý nghĩa của việc thực hiện "phân loại Naive Bayes".

Trong chủ đề rộng của "Phân tích phân biệt đối xử Gaussian (GDA)", có một số kỹ thuật: QDA, LDA, GNB và DLDA (DA bậc hai, DA tuyến tính, vịnh ngây thơ Gaussian, LDA đường chéo). [CẬP NHẬT] LDA và DLDA phải tuyến tính trong không gian của các yếu tố dự đoán đã cho. (Xem, ví dụ: Murphy , 4.2, trang 101 cho DA và trang 82 cho NB. Lưu ý: GNB không nhất thiết là tuyến tính. NB rời rạc (sử dụng phân phối đa cực dưới mui xe) là tuyến tính. Bạn cũng có thể kiểm tra Duda , Hart & Cò phần 2.6). QDA là bậc hai như các câu trả lời khác đã chỉ ra (và điều mà tôi nghĩ là những gì đang xảy ra trong đồ họa của bạn - xem bên dưới).

Các kỹ thuật này tạo thành một mạng tinh thể với một tập hợp các ràng buộc tốt đẹp về "ma trận hiệp phương sai theo giai cấp" :Σc

  • QDA: tùy ý: ftr tùy ý. cov. ma trận mỗi lớpΣc
  • LDA: : chia sẻ. ma trận (trên lớp)Σc=Σ
  • GNB: : cov đường chéo khôn ngoan của lớp. ma trận (giả định của ind. trong mô hình ma trận đường chéo đường chéo phải)Σc=diagc
  • DLDA: : cov chia sẻ & đường chéo. ma trậnΣc=diag

Trong khi các tài liệu cho e1071 tuyên bố rằng nó đang giả định sự độc lập có điều kiện của lớp (nghĩa là GNB), tôi nghi ngờ rằng nó thực sự đang làm QDA. Một số người kết luận "Bayes ngây thơ" (đưa ra các giả định độc lập) với "quy tắc phân loại Bayes đơn giản". Tất cả các phương pháp GDA có nguồn gốc từ sau này; nhưng chỉ có GNB và DLDA sử dụng trước đây.

Một cảnh báo lớn, tôi đã không đọc mã nguồn e1071 để xác nhận những gì nó đang làm.

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.