1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu sơ bộ về Mô hình phân lớp dữ liệu cơ bản Naive Bayes

10 264 3

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 248,55 KB

Nội dung

Tìm hiểu sơ bộ về Mô hình phân lớp Naive Bayes với Bài toán xu hướng mua xe. Cấu trúc rời rạc cho Khoa học Máy tính 2018 Đại học Bách Khoa Đại học Quốc Gia thành phố Hồ Chí Minh..........................

Trang 1

KHOA KHOA HỌC - KỸ THUẬT MÁY TÍNH

CẤU TRÚC RỜI RẠC CHO KHOA HỌC MÁY TÍNH

Bài tập lớn

Mô hình Bayes cho bài toán phân lớp

SV: Nguyễn Văn Biên - 1811562

Lê Ngọc Hiếu - 1812164 Nguyễn Khắc Đạo - 1811842 Nguyễn Văn Khang - 1812554 Nguyễn Duy Kiên - 1812704

TP HỒ CHÍ MINH, THÁNG 12/2018

Trang 2

Mục lục

2.1 Định lý Bayes (Bayes’s Theorem) 4 2.2 Phân loại Na¨ıve Bayes 4

3.1 Phương pháp tính 6 3.2 Thực hiện tính toán và kết quả 6 3.3 Thực hiện lời giải bằng công cụ lập trình 7

Trang 3

Báo cáo này là tài liệu trình bày những gì mà nhóm chúng em tìm hiểu được về đề tài “Mô hình Bayes cho bài toán phân lớp” Báo cáo thể hiện các công việc mà nhóm đã làm được bao gồm tìm hiểu về nội dung phân lớp dữ liệu, mô hình Bayes cho bài toán phân lớp dữ liệu

và ứng dụng của nó để giải bài toán thực tế; tìm hiểu về công cụ lập trình, công cụ tính toán để hỗ trợ cho việc thực thi và giải quyết bài toán, mô tả kết quả đầu ra Nhóm chúng em đã cố gắng tìm hiểu và đúc kết lại những thông tin chính xác nhất về nội dung mô hình phân lớp dữ liệu, giải chi tiết và chính xác bài toán thực tế trong đề tài Báo cáo sẽ trình bày những cơ sở lí thuyết về phân lớp dữ liệu, mô hình Bayes cho bài toán phân lớp, giới thiệu về một bài toán thực tế liên quan đến phân lớp dữ liệu và nêu ra phương pháp giải và kết quả bài toán Trong báo cáo còn trình bày các công cụ hỗ trợ giải bài toán, công cụ lập trình mà nhóm đã tìm hiểu để mô tả cho bài toán phân lớp dữ liệu Những thông tin trình bày xuyên suốt trong báo cáo đã được nhóm tìm hiểu rõ ràng, chính xác để đưa ra kết quả bài toán Tuy nhiên trong quá trình làm việc không thể tránh khỏi những sai sót, rất mong nhận được đánh giá và góp ý của thầy

Trang 4

1 Giới thiệu bài toán

Hiện nay, có rất nhiều ví dụ thực tế dễ thấy về phân lớp dữ liệu như xác định một email có phải “spam” hay không, xác định một tài liệu thuộc loại văn bản nào, hay dự đoán tội phạm, quản lí khách hàng trên mạng, Trong số đó một bài toán về lựa chọn của khách hàng trong các sản phẩm được quan tâm nhiều nhất trong lĩnh vực kinh doanh cũng như nhu cầu hằng ngày Vậy thì để hiểu rõ hơn về phân lớp dữ liệu, chúng ta sẽ phân tích và giải quyết bài toán về xu hướng mua xe như sau:

Một người (nam hoặc nữ) khi chọn mua một chiếc xe ô tô thường dựa vào một số đặc điểm của chiếc xe như màu sắc, dòng xe và xuất

xứ Bảng 1 dưới đây thống kê một số thông tin về việc mua xe như vậy ở trong thực tế:

Có rất nhiều bài toán được đặt ra trong việc mua xe, tuy nhiên chúng ta sẽ phân tích một bài toán đặc trưng sau: Cho một chiếc xe với các đặc điểm (Đỏ, Du lịch, Trong nước), chiếc xe này sẽ có xu hướng được chọn bởi một người nam hay nữ?

2 Cơ sở lý thuyết

Bộ phân lớp Bayes là một bộ phân lớp dựa vào thống kê Nó dùng

để dự đoán xác suất để một bộ dữ liệu rơi vào một lớp dữ liệu cụ thể nào đó

Mô hình phân lớp Bayes dựa vào định lí của Bayes Những nghiên cứu khi so sánh các thuật toán phân loại đã tìm ra một bộ phân lớp

Trang 5

Bayes đơn giản được biết đến với cái tên “na¨ıve Bayes” Với bộ phân lớp này, ta giả định rằng ảnh hưởng của một thuộc tính lên một lớp độc lập với các thuộc tính khác Giả định này làm đơn giản hóa các bước tính toán và trở nên hiệu quả hơn với một tập dữ liệu lớn

2.1 Định lý Bayes (Bayes’s Theorem)

Định lý Bayes được đặt tên theo Thomas Bayes, một nhà thống kê, nhà triết học người Anh Trong định lí Bayes:

- Cho X là một bộ dữ liệu, X được xác định bởi các chỉ số được tạo trên tập gồm n thuộc tính

- Cho H là giả thiết mà tệp dữ liệu X thuộc về một lớp C nào đó Khi phân loại, ta cần xác định P(H|X ) hay còn gọi là xác suất xảy ra

H khi biết X Nói theo cách khác, ta cần tìm xác suất để tệp dữ liệu

X rơi vào lớp C khi biết các thuộc tính của X

- P(H|X ) là xác suất hậu nghiệm (posterior probability) của

H dựa trên X Nó cho phép tính xác suất của sự kiện H khi biết được

X Ví dụ, giả sử ta có một tập gồm các bộ dữ liệu là các khách hàng được xác định bằng các thuộc tính là tuổi và thu nhập, và X là một khách hàng 40 tuổi với thu nhập là 30 triệu đồng Giả sử H là giả thiết rằng một khách hàng sẽ mua một chiếc ô tô, vậy P(H|X ) là xác suất

để khách hàng X mua ô tô biết rằng X 40 tuổi và có thu nhập 30 triệu đồng

- P(H) là xác suất tiên nghiệm (prior probabiliry) của H Xác suất này xảy ra không cần bất kì thông tin nào về X Với ví dụ như trên thì P(H) là xác suất để một khách hàng mua ô tô (không cần biết tuổi hay thu nhập)

- Tương tự, ta có P(X |H) là xác suất hậu nghiệm của X dựa trên H

- P(X ) là xác suất tiên nghiệm của X, không cần thông tin về H

Ta có định lý Bayes:

P (H|X) = P (X|H) × P (H)

P (X) 2.2 Phân loại Na¨ıve Bayes

Bộ phân lớp Na¨ıve Bayes, hoạt động như sau:

Trang 6

1 Cho D là tập dữ liệu huấn luyện gồm các bộ dữ liệu và các nhãn của chúng Mỗi bộ dữ liệu được miêu tả bởi một vector thuộc tính n-chiều X = (x1, x2, , xn) diễn tả các phép đo (measurement) trên tập gồm n thuộc tính lần lượt là A1, A2, A3, An

2 Giả sử có m lớp C1, C2, C3, Cm Cho một bộ dữ liệu X, bộ phân lớp sẽ dự đoán rằng X sẽ thuộc vào lớp có xác suất posterior cao nhất dựa trên các thuộc tính cho trước của X Theo đó, bộ phân lớp Na¨ıve Bayes sẽ dự đoán rằng X thuộc một lớp Ci nào đó nếu:

P (Ci|X) > P (Cj|X) với 1 ≤ j ≤ m, j 6= i

Do đó, với bộ dữ liệu gồm m lớpC1, C2, C3, Cm, ta sẽ đi tìmCisao cho P(Ci|X) lớn nhất Ci được gọi là maximum posterior hypothesis Bằng định lý Bayes:

P (Ci|X) = P (X|Ci) × P (Ci)

P (X)

3 Bởi vì P(X ) không thay đổi với mọi lớp, ta chỉ cần tối đa hóa

P (X|Ci) × P (Ci) Nếu xác suất cho trước của lớp (P (Ci)) chưa được biết, ta thường giả định rằng các lớp này là như nhau, nghĩa làP (C1) =

P (C2) = = P (Cm) và ta sẽ tối đa hóa P (X|Ci) Nếu không,

ta tối đa hóa cả P (X|Ci) × P (Ci) P (Ci) được tính bằng công thức

P (Ci) = |Ci,D|/|D| với |Ci,D| là số bộ dữ liệu huấn luyện của lớp Ci

trong D

4 Cho một tập dữ liệu với rất nhiều thuộc tính, sẽ khó khăn về mặt tính toán khi ta tính P (X|Ci) Để tránh điều này, một giả định “ngây thơ” được đặt ra, đó là giá trị của một thuộc tính độc lập có điều kiện với các thuộc tính khác, dựa trên nhãn của một lớp của bộ dữ liệu (nghĩa là không có quan hệ phụ thuộc nào giữa các thuộc tính) Từ

đó, ta có:

P (X|Ci) =Qn

k=1P (xk|Ci) = P (x1|Ci) × P (x2|Ci) × × P (xn|Ci)

Ta có thể tính toán dễ dàng các xác suất P (x1|Ci), P (x2|Ci), ,

P (xn|Ci) từ các bộ dữ liệu huấn luyện Với xk là giá trị của thuộc tính

Ak với bộ dữ liệu X

5 Để dự đoán nhãn của lớp mà X thuộc về, ta cần phải tính

P (X|Ci) × P (Ci) với mỗi lớp Ci khác nhau Sau đó chọn lớp có xác suất lớn nhất

Trang 7

3 Phương pháp và kết quả tính toán

3.1 Phương pháp tính

Sử dụng định lý Bayes và bộ phân lớp Na¨ıve Bayes Bộ phân lớp Na¨ıve Bayes giúp xác định một đối tượng dữ liệu với các thuộc tính độc lập (a1, a2, a3, , an) có nhãn v∗ ∈ V bằng quy tắc:

v∗ = arg max P (vj)Qn

Tức là tìm giá trị lớn nhất của :

P (vj) × P (D|vj) = P (vj)Qn

i=1P (ai|vj)

= P (vj) × P (a1|vj) × P (a2|vj) × × P (an|vj)

với D là bộ dữ liệu được miêu tả bởi (a1, a2, a3, , an)

Trong đó, V là tập nhãn của các lớp trong tập dữ liệu cho trước Trong (1), xác suất có điều kiện P (ai|vj) được định nghĩa bởi:

P (ai|vj) = nc + mp

Trong đó:

• n: số điểm dữ liệu huấn luyện có nhãn vj

• nc: số điểm dữ liệu huấn luyện có nhãn vj và thuộc tính ai

• p: ước lượng tiền định (priori estimate) cho P (ai|vj)

• m: kích thước mẫu (equilvalent sample size)

3.2 Thực hiện tính toán và kết quả

• Gọi D(màu = đỏ, dòng = du lịch, xuất xứ = trong nước) là bộ

dữ liệu cần phân loại

• Từ bảng 1 (tập dữ liệu huấn luyện), ta có bảng số liệu sau:

Trang 8

Màu sắc Dòng xe Xuất xứ Người mua

Nam Nữ Nam Nữ Nam Nữ Nam Nữ

• Áp dụng công thức (2), với m = 3 và p = 0.5, ta có:

Nam Nữ Nam Nữ Nam Nữ Nam Nữ

• Áp dụng công thức (1), ta có:

P(Nam|D) = P(Màu sắc=Đỏ|Nam)×P(Dòng xe=Du lịch|Nam)×P(Xuất xứ=Trong nước|Nam)×P(Nam)

16 × 5

16 × 7

16 × 1

2 ≈ 0.038

P(Nữ|D) = P(Màu sắc=Đỏ|Nữ)×P(Dòng xe=Du lịch|Nữ)×P(Xuất xứ=Trong nước|Nữ)×P(Nữ)

16 × 9

16 × 9

16 × 1

2 ≈ 0.069

Vì 0.069 > 0.038 nên xác suất để người mua chiếc xe có bộ dữ liệu

D(màu = đỏ, dòng = du lịch, xuất xứ = trong nước) sẽ là người nữ

xu hướng được chọn bởi nữ

3.3 Thực hiện lời giải bằng công cụ lập trình

1 Phần mềm dùng để lập trình

Code::Blocks (phiên bản 17.12)

File code: "code-BAYES.cpp" - ngôn ngữ lập trình C++

2 Giới thiệu về Code::Blocks

Code::Blocks là IDE - Integrated Development Environment, một môi trường phát triển tích hợp, bao gồm một trình soạn thảo, một trình dịch (compiler), một trình soát lỗi (debugger) giúp đỡ các lập trình viên trong việc phát triển phần mềm (hoặc vì mục đích học tập) Code::Blocks phiên bản 17.12 hoạt động được trên hệ điều hành Windows

Trang 9

3 Dữ liệu đầu vào và dữ liệu đầu ra

a Dữ liệu đầu vào:

• Chương trình có thể chạy với số lượng bộ dữ liệu nhỏ hơn 2000 Chương trình chạy được một tập dữ liệu huấn luyện chỉ gồm 4 thuộc tính: Màu sắc (chỉ gồm “đỏ” và “vàng”), Dòng xe (chỉ gồm “thể thao”

và “du lịch“), Xuất xứ (chỉ gồm “trong nước” và “nhập”), người mua (chỉ gồm “nam” và “nữ”)

• Nếu dữ liệu nhập vào không thỏa mãn (ví dụ màu xe nhập “xanh“) thì chương trình sẽ yêu cầu nhập lại Để thuận tiện cho việc nhập, chúng

ta nên viết sẵn dữ liệu cần nhập ra một file riêng (có thể dùng txt , docx Ở đây là file "training data.txt") rồi copy vào chương trình

b Dữ liệu đầu ra:

• Tập dữ liệu huấn luyện (trình bày dưới dạng bảng)

• Giá trị các đại lượng xác suất cần thiết để tìm kết quả

• Phép tính để tìm ra kết quả

• Kết quả: xác định người mua có xu hướng là nam hay nữ

Như đã nói từ đầu, bài toán phân loại là một bài toán quan trọng trong thực tiễn, nó đem lại hiệu quả lớn lao trong việc tiên đoán, từ

đó có thể xây dựng nên một hệ thống tự động hóa hoạt động chính xác Cụ thể trong báo cáo này là Mô hình phân lớp Bayes

Với phương pháp thống kê dựa trên định lí Bayes và bộ phân lớp Na¨ıve Bayes ta có thể phân loại dữ liệu theo cách đơn giản mà hiệu quả bằng việc tối đa hóa xác xuất hậu nghiệm của giả thiết

Trong bài toán trên, dựa vào lí thuyết, ta đã dự đoán được nhãn của lớp(Nam hay Nữ) của bộ dữ liệu (ở đây là chiếc xe) sau khi biết được các thuộc tính (màu sắc, dòng xe, xuất xứ) Sau khi nghiên cứu

mô hình phân lớp Bayes, các kết quả đạt được là:

- Bước đầu hiểu về Machine Learning, các phương pháp phân loại,

và đặc biệt là bộ phân lớp Na¨ıve Bayes

- Hiểu được các thuật ngữ chuyên ngành xác suất thống kê

- Giải được bài toán phân lớp cơ bản

Trang 10

Tài liệu

[1] J.Han, M Kamber, and J Pei, Data Mining: Concepts and Tech-niques, 3rd ed., Morgan Kafmann Publishers, 2011

[2] Internet

J HẾT ! I

Ngày đăng: 21/12/2018, 21:23

TỪ KHÓA LIÊN QUAN

w