Thuật toán phân lớp Bayes

Một phần của tài liệu Phân lớp thư điện tử sử dụng máy Vector hỗ trợ (Trang 27)

Thuật toán phân lớp Bayes [17] là một trong những thuật toán phân lớp điển hình nhất trong khai thác dữ liệu và tri thức, nó bắt nguồn từ học thuyết của Bayes trong lý thuyết xác suất. Thuật toán này là một phương pháp tối ưu trong lĩnh vực học có giám sát nếu giá trị các thuộc tính là độc lập đối với các lớp. Ý tưởng chính của thuật toán là tính xác suất có sau của sự kiện c thuộc lớp x theo sự phân loại dựa trên xác suất có trước của sự kiện c thuộc lớp x trong điều kiện T

Gọi V là tập tất cả các từ vựng. Giả sử có N lớp tài liệu: C1, C2,…,Cn

Mỗi lớp Ci có xác suất p(Ci) và ngưỡng CtgTshi. Gọi p(C| Doc) là xác suất để tài liệu Doc thuộc lớp C.

Cho một lớp C và một tài liệu Doc, nếu xác suất p(C|Doc) tính được lớn hơn hoặc bằng giá trị ngưỡng của C thì tài liệu Doc sẽ thuộc vào lớp C.

Tài liệu Doc được biểu diễn như một vector có kích thước là số từ khoá trong tài liệu. Mỗi thành phần chứa một từ trong tài liệu và tần xuất xuất hiện của từ đó trong tài liệu. Thuật toán được thực hiện trên tập từ vựng V, vector biểu diễn tài liệu Doc và các tài liệu có sẵn trong lớp, tính toán p(C|Doc) và quyết định tài liệu Doc sẽ thuộc lớp nào.

Xác suất p(C | DOC) được tính theo công thức sau: p(c | x, ) =  p(c | x,T) p(T |x)

Với:

Trong đó:

|V| : số lượng các từ trong tập V Fj : từ khoá thứ j trong từ vựng

TF(Fj | Doc) : Tần xuất của từ Fj trong tài liệu Doc (bao gồm cả từ đồng nghĩa)

TF(Fj | C): Tần xuất của từ Fj trong lớp C (số lần Fj xuất hiện trong tất cả các tài liệu thuôc lớp C)

P(Fj | C): Xác suất có điều kiện để từ Fj xuất hiện trong tài liệu của lớp C

Công thức F(Fi | C) được tính sử dụng ước lượng xác suất Laplace. Sở dĩ có số 1 trên tử số của công thức này để tránh trường hợp tần suất của từ Fi trong lớp C bằng 0, khi Fi không xuất hiện trong lớp C.

Để giảm sự phức tạp trong tính toán và giảm thời gian tính toán, ta để ý thấy rằng, không phải tài liệu Doc đã cho đều chứa tất cả các từ trong tập từ vựng V. Do đó, TF(Fi | DOC) =0 khi từ Fi thuộc V nhưng không thuộc tài liệu Doc, nên ta có, (P(Fj | C))TF(Fj, Doc) = 1. Như vậy công thức trên sẽ được viết lại như sau:

Với:

Như vậy trong quá trình phân lớp không dựa vào toàn bộ tập từ vựng mà chỉ dựa vào các từ khóa xuất hiện trong tài liệu Doc.

Người ta thường dùng thuật toán phân lớp Bayes đối với việc tìm nhiễu trong dữ liệu và thuật toán này thực hiện tốt khi kích cỡ của tập dữ liệu là nhỏ.

Nhược điểm của mô hình này là cần giả thiết các thuộc tính được sử dụng để phân lớp là độc lập với nhau. Trong thực tế khó có thể thỏa mãn được điều này vì các thuộc tính thường có yếu tố liên quan đến nhau.

Một phần của tài liệu Phân lớp thư điện tử sử dụng máy Vector hỗ trợ (Trang 27)

Tải bản đầy đủ (PDF)

(69 trang)