Bài giảng khai phá dữ liệu (data mining) naïve bayes classification

36 6 0
Bài giảng khai phá dữ liệu (data mining) naïve bayes classification

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trịnh Tấn Đạt Khoa CNTT – Đại Học Sài Gòn Email: trinhtandat@sgu.edu.vn Website: https://sites.google.com/site/ttdat88/ Nội dung  Giới thiệu Naïve Bayes Classification (NBC)  Mơ hình tốn  Các dạng phân phối dùng NBC  Các Ví dụ  Bài Tập Giới Thiệu  Naïve Bayes Classification (NBC) thuật toán dựa định lý Bayes lý thuyết xác suất để đưa phán đoán phân loại liệu dựa liệu quan sát thống kê  Thuộc vào nhóm supervised learning Giới Thiệu ❖ Thuật tốn Nạve Bayes Classification áp dụng vào loại ứng dụng sau:  Real time Prediction: NBC chạy nhanh nên thích hợp áp dụng ứng dụng nhiều vào ứng dụng chạy thời gian thực, hệ thống cảnh báo, hệ thống trading …  Text classification/ Spam Filtering/ Sentiment Analysis: NBC thích hợp cho hệ thống phân loại văn hay ngơn ngữ tự nhiên tính xác lớn thuật tốn khác Ngoài hệ thống chống thư rác ưu chuộng thuật toán Và hệ thống phân tích tâm lý thị trường áp dụng NBC để tiến hành phân tích tâm lý người dùng ưu chuộng hay không ưu chuộng loại sản phẩm từ việc phân tích thói quen hành động khách hàng … Bayes's theorem  Gọi A, B hai kiện (event) Bayes's theorem  Công thức Bayes tổng quát Bayes's theorem Posterior ~ likelihood x prior Trong đó: P(A): gọi evidence (cố định, xem số) P(B): gọi prior probability (xác suất tiền nghiệm) phân phối xác suất A P(A|B) : gọi likelihood, thể độ phù hợp A giá trị B khác P(B|A): gọi posterior probability (xác suất hậu nghiệm) phản ánh ước lượng cho B biết A Nạve Bayes Classification ❖ Mơ hình:  Giả sử có tập huấn luyện chứa N mẫu x ={x1,x2, ,xd}  Rd  Giả sử có C classes: c  {1,2,…,C}  Hãy tính xác suất để điểm liệu rơi vào class c: Tính p(c|x) ??? , nghĩa tính xác suất để đầu class c biết đầu vào vector x (đây posterior probability)  Từ đó, giúp xác định class điểm liệu x cách chọn class có xác suất cao Nạve Bayes Classification  Dựa vào lý thuyết Bayes: mẫu số p(x) (evidence) khơng phụ thuộc vào c Trong : • p(c|x) : posterior probability • p(c): prior probability - ước lượng |Ni|/|N|, Ni tập phần tử liệu thuộc lớp ci • p(x|c): likelihood, tức phân phối điểm liệu class c, thường khó tính tốn x biến ngẫu nhiên nhiều chiều, cần rất nhiều liệu training để xây dựng phân phối Nạve Bayes Classification  Khi số lượng thuộc tính mơ tả liệu lớn chi phí tính tồn p(x|c) lớn  Dó giảm độ phức tạp thuật tốn Nạve Bayes giả thiết thuộc tính độc lập Khi đó, Xác suất =  Giá trị thuộc tính không xuất tất lớp (“Outlook= Overcast” lớp “no”)  Probability will be zero!  A posteriori probability will also be zero!  Sử dụng Laplace estimator  Xác suất khơng có giá trị ❖ Laplace estimator Ví dụ : thuộc tính outlook cho lớp yes Giá trị thuộc tính nhiễu/ thiếu thơng tin  Quá trình học: bỏ qua liệu nhiễu  Quá trình phân lớp : bỏ qua thuộc tính nhiễu  Ví dụ Ví dụ Gaussian Naive Bayes (Dữ liệu liên tục)  Khi liệu liên tục, cần có cách tính cho likelihood Ước Lượng Likelihood Dựa Vào Hàm Phân Phối Xác Suất ❖ Giả sử thuộc tính có phân phối Gaussian  Hàm mật độ xác suất tính sau  mean  standard deviation  hàm mật độ xác suất f(x) ~ likelihood Dữ liệu liên tục  Ví dụ Dữ liệu liên tục Ví dụ: Phân loại email  Bài tốn phân loại mail Spam (S) Not Spam (N)  Ta có training data gồm E1, E2, E3 Cần phân loại E4  Bảng từ vựng:[w1​,w2​,w3​,w4​,w5​,w6​,w7​]  Số lần xuất từ email tương ứng bảng Ví dụ: Phân loại email  Tính Prior probability  Sử dụng Laplace Smoothing với α=1 ta tính xác suất xuất từ văn sau: Ví dụ: Phân loại email  Vậy ta tính được: Ví dụ: python code cho ví dụ from sklearn.naive_bayes import MultinomialNB import numpy as np # train data e1 = [1, 2, 1, 0, 1, 0, 0] e2 = [0, 2, 0, 0, 1, 1, 1] e3 = [1, 0, 1, 1, 0, 2, 0] train_data = np.array([e1, e2, e3]) label = np.array(['N', 'N', 'S']) # test data e4 = np.array([[1, 0, 0, 0, 0, 0, 1]]) clf1 = MultinomialNB(alpha=1) # training clf1.fit(train_data, label) # test print('Probability of e4 in each class:', clf1.predict_proba(e4)) print('Predicting class of e4:', str(clf1.predict(e4)[0])) Kết luận  Naïve Bayes Classification cho kết tốt thực tế chịu giả thiết tính độc lập có điều kiện (khi cho nhãn/lớp) thc tính  dễ cài đặt, thời gian train test nhanh  sử dụng phân loại text, spam, etc  hoạt động với feature vector mà phần liên tục (sử dụng Gaussian Naive Bayes), phần lại dạng rời rạc (sử dụng Multinomial Bernoulli)  Hạn chế:  giả định độc lập (ưu điểm nhược điểm) hầu hết trường hợp thực tế có thuộc tính đối tượng thường phụ thuộc lẫn  liệu có nhiều thuộc tính dư thừa Nạve Bayes khơng cịn hiệu  liệu liên tục khơng tn theo phân phối chuẩn Tìm hiểu thêm  Probabilistic Graphical Model (Mơ hình xác suất dạng đồ thị)  Bayesian network (BN) (Mạng Bayesian) Bài Tập 1) Toy example: Phân lọai giới tính Male/Female dựa vào thơng tin chiều cao cân nặng Cài đặt chương trình demo thuật tốn Nạve Bayes Tham khảo: https://alphacoder.xyz/naive-bayes/ Bài Tập 2) Nhận dạng ký tự dùng thuật tốn Nạve Bayes  The Database: UCI Letter-Recognition Data in a text file  26 classes: A to Z  16-D feature vectors  20,000 samples https://archive.ics.uci.edu/ml/datasets/letter+recognition

Ngày đăng: 23/12/2023, 10:14

Tài liệu cùng người dùng

Tài liệu liên quan