Phân loại Naive-Bayes cho các nhóm không đồng đều


8

Tôi đang sử dụng trình phân loại vịnh ngây thơ để phân loại giữa hai nhóm dữ liệu. Một nhóm dữ liệu lớn hơn nhiều so với nhóm kia (trên 4 lần). Tôi đang sử dụng xác suất trước của từng nhóm trong phân loại.

Vấn đề là kết quả tôi nhận được có 0% tỷ lệ dương đúng và 0% tỷ lệ dương tính giả. Tôi đã nhận được kết quả tương tự khi tôi đặt trước 0,5 và 0,5.

Làm cách nào tôi có thể đặt ngưỡng của mình thành thứ gì đó tốt hơn để tôi có thể có kết quả cân bằng hơn?

Tôi đã có một vấn đề tương tự khi sử dụng phân loại hồi quy logistic. Tôi đã giải quyết nó bằng cách trừ các thuật ngữ trước khỏi sai lệch.

Khi tôi sử dụng Phân biệt tuyến tính của Fisher trên dữ liệu này, tôi sẽ nhận được kết quả tốt với ngưỡng được đặt ở giữa.

Tôi cho rằng có một số giải pháp chung cho vấn đề này, tôi không thể tìm thấy nó.

CẬP NHẬT: Tôi vừa nhận thấy rằng tôi phân loại quá mức. Hiệu suất trên tập huấn luyện là hoàn hảo (chính xác 100%).

Nếu tôi sử dụng các nhóm bằng nhau, thì bộ phân loại cũng bắt đầu phân loại thành nhóm "nhỏ", nhưng hiệu suất khá tệ (tệ hơn FLD hoặc LR).

CẬP NHẬT2: Tôi nghĩ vấn đề là tôi đã sử dụng ma trận hiệp phương sai đầy đủ. Chạy với ma trận hiệp phương sai chéo cho tôi kết quả "cân bằng" hơn.


0% dương tính thật và 0% dương tính giả? Nó phải được đặt mọi thứ vào nhóm khác, sau đó ... hãy thử đặt trước 80% cho nhóm "tích cực". Nhưng trước tiên, hãy kiểm tra xem bạn không mắc lỗi ở đâu đó trong mã ...
jbowman

Có lẽ trước là quá lớn / nhỏ? (một số vấn đề với Số học dấu phẩy động?)
Dov

Câu trả lời:


7

Việc gán tất cả các mẫu cho lớp phủ định chắc chắn không phải là "kết quả wierd". Có thể là trình phân loại tối ưu Bayes luôn phân loại tất cả các mẫu thuộc về lớp đa số, trong trường hợp đó, trình phân loại của bạn đang làm chính xác những gì nó nên làm. Nếu mật độ của các mẫu thuộc về lớp dương không bao giờ vượt quá mật độ của các mẫu thuộc về lớp âm, thì lớp âm có nhiều khả năng bất kể các giá trị thuộc tính.

Điều cần làm trong các trường hợp như vậy là xem xét tầm quan trọng tương đối của các lỗi dương tính giả và âm tính giả, rất hiếm trong thực tế là chi phí của hai loại lỗi khác nhau là như nhau. Vì vậy, hãy xác định tổn thất cho các lỗi âm tính giả và âm tính giả và tính đến các lỗi này trong việc đặt xác suất ngưỡng (khác nhau về chi phí phân loại sai tương đương với việc thay đổi xác suất trước đó, vì vậy điều này dễ thực hiện đối với Bayes ngây thơ). Tôi sẽ khuyên bạn nên điều chỉnh các linh mục để giảm thiểu ước tính xác thực chéo về tổn thất (kết hợp chi phí phân loại sai không đồng đều của bạn).

Nếu chi phí phân loại sai của bạn bằng nhau và tập huấn của bạn đại diện cho các điều kiện hoạt động, thì giả sử rằng việc triển khai của bạn là chính xác, có thể bạn đã có trình phân loại NB tốt nhất.


vui lòng kiểm tra cập nhật của tôi. Phân loại của tôi là quá mức. Dù sao đi nữa, nếu tôi sử dụng các nhóm bằng nhau thì trình phân loại bắt đầu hoạt động tốt hơn, nhưng hiệu suất vẫn thấp .. thay đổi ngưỡng (các mục sư) hoàn toàn không ảnh hưởng đến hiệu suất khi một nhóm lớn hơn nhiều. cảm ơn
Ran

1
@Ran Tôi không thể thoát khỏi cảm giác thiếu thứ gì đó ở đây.1. Bạn có thể vui lòng báo cáo AUC của từng phân loại không? 2. Bạn có bao nhiêu trường hợp tích cực / tiêu cực cho mỗi lớp? 3. Làm thế nào bạn xác nhận phân loại? mà-k-gấp-cv? lờ mờ 3. Lưu ý rằng bản chất của NB là tạo xác suất cực cao p (class | x) gần bằng 0 hoặc 1, do đó người ta phải tìm ngưỡng quyết định tốt nhất, tức là t sao cho p (class = 1 | x)> t => lớp 1, lớp khác 0. Tìm ngưỡng quyết định như vậy tương đương với việc điều chỉnh các linh mục.
steffen

@Ran thay đổi priors ảnh hưởng đến việc thực hiện;). Nếu những thay đổi nhỏ không có ích, hãy thử một số cực đoan.
steffen

2
@Ran, thật khó để xác định vấn đề là gì nếu không có thêm thông tin về quy mô của tập huấn luyện, bản chất của các thuộc tính, v.v. Tuy nhiên, có một điều đáng lưu ý là NB có vấn đề nếu xác suất có điều kiện là 0 , như thể điều đó xảy ra, đầu ra sẽ bằng 0 bất kể giá trị của bất kỳ thuộc tính nào khác. Là xác suất cho lớp thiểu số luôn luôn chính xác bằng không? Nếu đó là trường hợp, đó có thể là vấn đề, trong trường hợp đó sử dụng hiệu chỉnh Laplace để ước tính xác suất có điều kiện có thể giúp ích.
Dikran Marsupial

0

Phóng to nhóm dữ liệu nhỏ hơn để phù hợp với nhóm lớn bằng cách tính toán. Nó sẽ kéo dài dữ liệu của nhóm nhỏ hơn, nhưng nó sẽ cho phép tính toán bằng nhau hơn.

Nếu bạn vẫn nhận được kết quả kỳ lạ như hiện tại, hãy kiểm tra toàn bộ triển khai của bạn từ đầu để tìm ra lỗi (có thể đơn giản).


ý bạn là gì khi "Phóng to dữ liệu nhỏ hơn ... bằng phép tính"? bạn có thể giải thích thêm?
Dov

phân loại tất cả mọi thứ thuộc về lớp phủ định không phải là kết quả tồi tệ hơn, đôi khi đó là điều nên làm vì mật độ của các mẫu âm luôn vượt quá mật độ của các mẫu dương ở mọi nơi.
Dikran Marsupial
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.