2011-02-01 17 views
8

Tôi tự hỏi nếu một trình phân loại Bayes có ý nghĩa đối với một ứng dụng có cùng cụm từ "phục vụ lạnh" (ví dụ) là "tốt" khi liên kết một số thứ (bia, soda) nhưng "xấu" khi liên quan đến những thứ khác (bít tết, pizza, burger)? Những gì tôi đang tự hỏi là nếu đào tạo một phân loại Bayes ("bia lạnh" và "soda lạnh" là "tốt") hủy bỏ đào tạo nó rằng "bít tết phục vụ lạnh" và "burger phục vụ lạnh" là "xấu ").tự hỏi liệu trình phân loại Bayes có đúng cách tiếp cận không?

Hoặc, có thể Bayes (đúng) được đào tạo rằng "phục vụ lạnh" có thể là "tốt" hoặc "xấu" tùy thuộc vào những gì nó được liên kết với?

Tôi tìm thấy rất nhiều thông tin tốt về Bayes, ở đây và các nơi khác, nhưng không thể xác định xem nó có phù hợp với loại ứng dụng này hay không.

+0

trong ứng dụng của chúng tôi, btw, chúng tôi có một số lượng tương đối nhỏ các danh từ (dưới 100) và một số lượng tương đối nhỏ của tính từ (50) vì vậy chúng tôi có thể vui vẻ xác định trước một cấu trúc khá tốt về kết hợp tốt/xấu ... nhưng không chắc chắn loại công cụ ghi điểm thay thế nào sẽ cho phép các thông điệp ngắn được ghi. – jpwynn

Trả lời

6

A Naive Bayes classifier giả định tính độc lập giữa các thuộc tính. Ví dụ, giả sử bạn có các dữ liệu sau:

quả táo đỏ BAD
quả táo xanh BAD
chuối quả TỐT vàng
cà chua rau TỐT đỏ

Độc lập có nghĩa là các thuộc tính (tên, trái cây, màu sắc) độc lập; ví dụ, "quả táo" đó có thể là "trái cây" hoặc "rau". Trong trường hợp này, các thuộc tính "name" và "fruit" phụ thuộc nên một phân loại Naive Bayes quá ngây thơ (nó có khả năng phân loại "quả táo vàng" thành BAD vì nó là quả táo và nó là quả - nhưng không phải tất cả táo trái cây?).

Để trả lời câu hỏi ban đầu của bạn, một phân loại Naive Bayes giả định rằng lớp (GOOD hoặc BAD) phụ thuộc vào từng thuộc tính độc lập, không phải như vậy - Tôi thích pizza nóng và soda lạnh.

EDIT: Nếu bạn đang tìm kiếm một trình phân loại có một số tiện ích nhưng trong lý thuyết có thể có nhiều lỗi loại I và loại II, Naive Bayes là một trình phân loại như vậy. Naive Bayes là tốt hơn so với không có gì, nhưng có giá trị đo lường trong việc sử dụng một phân loại ít ngây thơ.

+0

giải thích và trả lời tuyệt vời! Cảm ơn bạn!!! – jpwynn

+1

xin lỗi nhưng đã bỏ phiếu. trong khi đó là sự thật rằng vịnh ngây thơ giả định độc lập giữa các thuộc tính (do đó nó được gọi là ngây thơ), trong thực tế đây không phải là một vấn đề thực sự. ví dụ lớn là bộ lọc spam hoạt động tốt mặc dù các từ trong email phụ thuộc rất nhiều vào nhau –

+0

Cảm ơn phản hồi. Tôi loại bỏ Naive Bayes vì ​​nó sẽ gây ra nhiều lỗi loại I và loại II hơn các cách tiếp cận mà tôi thấy phù hợp. – Daniel

2

Tôi sẽ không loại bỏ Bayes nhanh như Daniel đề xuất. Chất lượng (hiệu suất trong toán học) của Bayes phụ thuộc vào số lượng và chất lượng dữ liệu đào tạo trên tất cả, và trên các giả định bạn thực hiện khi bạn phát triển thuật toán của mình.

Để cung cấp cho bạn một ví dụ ngắn, nếu bạn chỉ nhập vào nó '{cold cold' =>: good, 'pizza cold' =>: bad} từ 'cold' sẽ không ảnh hưởng đến phân loại. Nó sẽ chỉ quyết định rằng tất cả các loại bia là tốt và tất cả các loại pizza là xấu (xem thông minh như thế nào? :))

Dù sao, câu trả lời là quá ngắn để giải thích chi tiết này, tôi khuyên bạn nên đọc bài luận của Paul Graham về cách ông đã phát triển bộ lọc thư rác của mình - lưu ý rằng ông đã thực hiện thuật toán của riêng mình dựa trên Bayes và không chỉ là bộ phân loại ngoài giá. Trong kinh nghiệm của tôi (cho đến nay ngắn) có vẻ như bạn tốt hơn theo anh ta trong việc phát triển phiên bản cụ thể của thuật toán cho vấn đề cụ thể trong tầm tay, do đó bạn có quyền kiểm soát các giả định cụ thể của miền.

Bạn có thể làm theo những nỗ lực của tôi (trong ruby) ở đây nếu bạn quan tâm: http://arubyguy.com/2011/03/03/bayes-classification-update/