1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU TRÊN CÂY QUYẾT ĐỊNH

52 760 6

Đ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

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đó, mỗi nút trong internal node biễu diễn một thuộc tính, nhánh branch biễu diễn giá trị có thể có của thuộc tính, mỗi lá leaf node biểu diễn các lớp quyết định và đỉnh trên cùng c

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

PHÒNG ĐÀO TẠO SAU ĐẠI HỌC

BÀI THU HOẠCH MÔN HỌC KHAI PHÁ DỮ LIỆU VÀ NHÀ KHO DỮ LIỆU

ĐỀ TÀI: NGHIÊN CỨU CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU TRÊN CÂY QUYẾT ĐỊNH

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 1

HỌC VIÊN LƯƠNG VĂN NGUYÊN

Trang 2

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

HÀ NỘI - 2012

LỜI CẢM ƠN



Em xin chân thành cảm ơn các Thầy Cô trong Trường Đại học Công nghệ thông tin, đã tận tình giúp

đỡ chúng em học tập, nghiên cứu.

Em vô cùng biết ơn phó giáo sư tiến sỹ Đỗ Phúc

đã cho phép em tìm hiểu, nghiên cứu đề tài “Các thuật toán phân lớp dữ liệu trên cây quyết định” và Thầy đã dành nhiều thời gian, tận tình hướng dẫn em trên diễn đàn môn học Khai phá dữ liệu và Nhà kho dữ liệu.

Học viên: Lương Văn Nguyên

MỤC LỤC

LỜI NÓI ĐẦU 3

CHƯƠNG 1: TỔNG QUAN VỀ PHÂN LỚP DỮ LIỆU TRONG DATA MINING 3

Phân lớp dữ liệu là gì? 3

Qúa trình phân lớp dữ liệu gồm 2 bước : 3

Một số ứng dụng phân lớp tiêu biểu: 5

Tiến trình phân lớp dữ liệu: 5

Tiền xử lý dữ liệu để tiến hành phân lớp: 5

Các phương pháp phân lớp: 5

Tiêu chuẩn để đánh giá các phương pháp phân lớp: 6

Độ chính xác trong phân lớp: 6

CHƯƠNG 2: CÂY QUYẾT ĐỊNH ỨNG DỤNG TRONG PHÂN LỚP DỮ LIỆU 6

TỔNG QUAN VỀ CÂY QUYẾT ĐỊNH: 6

Giới thiệu chung: 6

2 Các kiểu cây quyết định: 7

Ví dụ: 7

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 2

Trang 3

Ưu điểm cây quyết định: 10

CẤU TRÚC CỦA CÂY QUYẾT ĐỊNH: 10

PHƯƠNG PHÁP XÂY DỰNG CÂY QUYẾT ĐỊNH: 13

XÂY DỰNG CÂY QUYẾT ĐỊNH: 13

Chọn thuộc tính phân tách: 13

Phép kiểm tra để chọn phép phân tách tốt nhất: 15

I BIẾN ĐỔI CÂY QUYẾT ĐỊNH THÀNH LUẬT: 17

CHƯƠNG 3: CÁC THUẬT TOÁN XÂY DỰNG CÂY QUYẾT ĐỊNH 18

THUẬT TOÁN PHÂN LỚP CÂY QUYẾT ĐỊNH ID3: 18

Giới thiệu: 18

Giải thuật ID3 xây dựng cây quyết định từ trên xuống 20

Thuộc tính nào là thuộc tính dùng để phân loại tốt nhất? 21

a Entropy đo tính thuần nhất của tập ví dụ 21

b Lượng thông tin thu được đo mức độ giảm entropy mong đợi 22

Tìm kiếm không gian giả thuyết trong ID3 27

Đánh giá hiệu suất của cây quyết định: 28

Khi nào nên sử dụng ID3 28

THUẬT TOÁN PHÂN LỚP CÂY DỮ LIỆU C4.5 29

Giới thiệu: 29

Thuật toán xây dựng cây quyết định: 30

Độ đo sử dụng để xác định điểm chia tốt nhất: 31

4 Một số vấn đề với thuộc tính: 32

5 Ví dụ: 36

ỨNG DỤNG CÂY QUYẾT ĐỊNH TRONG CƠ SỞ DỮ LIỆU THỰC TÊ 45

KẾT LUẬN 51

TÀI LIỆU THAM KHẢO 51

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 3

Trang 4

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

LỜI NÓI ĐẦU

Ngày nay phân lớp dữ liệu (classification) là một trong những hướng nghiên

cứu chính của khai phá dữ liệu Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệuvới nhiều thông tin ẩn con người có thể trích rút ra các quyết định nghiệp vụ thôngminh Phân lớp và dự đoán là hai dạng của phân tích dữ liệu nhằm trích rút ra một

mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu tương lai.Phân lớp dự đoán giá trị của những nhãn xác định hay những giá trị rời rạc, cónghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ giá trị là biết trước.Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị liên tục Ví dụ môhình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là mưa, hay nắng dựavào những thông số về độ ẩm, sức gió, nhiệt độ,… của ngày hôm nay và các ngàytrước đó Hay nhờ các luật về xu hướng mua hàng của khách hàng trong siêu thị,các nhân viên kinh doanh có thể ra những quyết sách đúng đắn về lượng mặt hàngcũng như chủng loại bày bán… Một mô hình dự đoán có thể dự đoán được lượngtiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin về thu nhập

và nghề nghiệp của khách hàng Nhữ ng năm qua, phân lớp dữ liệu đã thu hút sựquan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy

(machine learning), hệ chuyên gia (expert system), thống kê (statistics) Công nghệ

này cũng ứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, nhà băng,maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục Phần lớn các thuật toán

ra đời trước đều sử dụng cơ chế dữ liệu cư trú trong bộ nhớ (memory resident),

thường thao tác với lượng dữ liệu nhỏ Một số thuật toán ra đời sau này đã sử dụng kỹthuật cư trú trên đĩa cải thiện đáng kể khả năng mở rộng của thuật toán với nhữngtập dữ liệu lớn lên tới hàng tỉ bản ghi

CHƯƠNG 1: TỔNG QUAN VỀ PHÂN LỚP DỮ LIỆU TRONG DATA MINING

tính đó Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data tuple), có thể là các mẫu (sample), ví dụ (example), đối tượng (object), bản ghi (record) hay trường

hợp (case) Khoá luận sử dụng các thuật ngữ này với nghĩa tương đương Trong tập

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 4

Trang 5

dữ liệu này, mỗi phần tử dữ liệu được giả sử thuộc về một lớp định trước, lớp ở đây

là giá trị của một thuộc tính được chọn làm thuộc tính gán nhãn lớp hay thuộc tính

phân lớp (class label attribute) Đầu ra của bước này thường là các quy tắc phân lớp

dưới dạng luật dạng if-then, cây quyết định, công thức logic, hay mạng nơron Quátrình này được mô tả như trong Hình 1: a)

Hình 1 - Quá trình phân lớp dữ liệu - (a) Bước xây dựng mô hình phân lớp

Bước 2 (Classification)

Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới.Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra

được ước lượng Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó Kỹ

thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp.Các mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào

tạo Độ chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các

các mẫu trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế) Nếu

độ chính xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quảthu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu Quá vừa

dữ liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xâydựng mô hình phân lớp từ tập dữ liệu đào tạo có thể kết hợp từ các đặc điểm riêngbiệt của tập dữ liệu đó Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập

dữ liệu đào tạo Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được

sử dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị củathuộc tính phân lớp là chưa biết

Trang 6

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Hình 2 - Quá trình phân lớp dữ liệu - (b1)Ước lượng độ chính xác của mô hình

b2)

Hình 3 - Quá trình phân lớp dữ liệu - (b2) Phân lớp dữ liệu mới

Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết địnhtới sự thành công của mô hình phân lớp Do vậy chìa khóa của vấn đề phân lớp dữliệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và

có khả năng mở rộng được Trong đó khả năng mở rộng được của thuật toán đượcđặc biệt trú trọng và phát triển

Một số ứng dụng phân lớp tiêu biểu:

- Tín dụng: phân lớp khách hàng…

- Tiếp thị: phân lớp nhu cầu mua hàng của khách hàng…

- Chẩn đoán y khoa: từ một số triệu chứng -> xác định bệnh…

- Phân tích hiệu quả điều trị: kiểm tra tính đúng đắn của luật phân lớp

Tiến trình phân lớp dữ liệu:

Tiến trình gồm hai bước:

- Xây dựng mô hình từ tập huấn luyện, mô hình được biểu diễn bởi các luật phân lớp, các cây quyết định hoặc các công thức toán học

- Sử dụng mô hình: kiểm tra tính đúng đắn của mô hình và dùng nó để phân lớp dữ liệu mới

Tiền xử lý dữ liệu để tiến hành phân lớp:

Bao gồm các công việc:

- Làm sạch dữ liệu: dữ liệu nhiễu, các giá trị trống…

- Phân tích sự liên quan giữa các dữ liệu để chọn đặc trưng

- Biến đổi dữ liệu về dạng dữ liệu rời rạc, số hóa dữ liệu

Các phương pháp phân lớp:

- Phân lớp bằng mạng Neural lan truyền ngược

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 6

Classifier (model)Test Data

Classifier (model)

Trang 7

- Phân lớp K-láng giềng gần nhất

Tiêu chuẩn để đánh giá các phương pháp phân lớp:

Đánh giá các phương pháp phân lớp dựa trên:

Dùng một trong các cách sau để ước lượng tỉ lệ sai:

- Phân hoạch: dành cho tập dữ liệu lớn

 Dùng hai tập dữ liệu độc lập: tập huấn luyện (2/3), tập kiểm tra (1/3)

- Kiểm tra chéo: dành cho tập dữ liệu vừa

 Chia tập dữ liệu thành k mẫu con

 Sử dụng (k – 1) mẫu con làm tập huấn luyện và một mẫu con làm tập kiểm tra, kiểm tra chéo k thành phần

- Bootstrapping: dành cho tập dữ liệu nhỏ

 Xóa dần mỗi lần 1 phần tử của tập dữ liệu để kiểm tra

CHƯƠNG 2: CÂY QUYẾT ĐỊNH ỨNG DỤNG TRONG PHÂN LỚP DỮ LIỆU

I TỔNG QUAN VỀ CÂY QUYẾT ĐỊNH:

1 Giới thiệu chung:

Cây quyết định (decision tree) là một phương pháp rất mạnh và phổ biến cho cả hai

nhiệm vụ của khai phá dữ liệu là phân loại và dự báo Mặt khác, cây quyết định còn có thểchuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các luật If-Then

Cây quyết định là cấu trúc biễu diễn dưới dạng cây Trong đó, mỗi nút trong (internal node) biễu diễn một thuộc tính, nhánh (branch) biễu diễn giá trị có thể có của thuộc tính, mỗi lá (leaf node) biểu diễn các lớp quyết định và đỉnh trên cùng của cây gọi là gốc (root).

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 7

Trang 8

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Cây quyết định có thể được dùng để phân lớp bằng cách xuất phát từ gốc của cây và dichuyển theo các nhánh cho đến khi gặp nút lá Trên cơ sở phân lớp này chúng ta có thểchuyển đổi về các luật quyết định

Cây quyết định được sử dụng để xây dựng một kế hoạch nhằm đạt được mục tiêumong muốn Các cây quyết định được dùng để hỗ trợ quá trình ra quyết định Cây quyếtđịnh là một dạng đặc biệt của cấu trúc cây

Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp và đưa ra dựđoán Cây quyết định được tạo thành bằng cách lần lượt chia (đệ quy) một tập dữ liệu thànhcác tập dữ liệu con, mỗi tập con được tạo thành chủ yếu từ các phần tử của cùng một lớp.Lựa chọn thuộc tính để tạo nhánh thông qua Entropy và Gain

Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá dữ liệu.Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các phân loạicòn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó Một cây quyếtđịnh có thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một kiểmtra giá trị thuộc tính Quá trình này được lặp lại một cách đệ qui cho mỗi tập con dẫn xuất.Quá trình đệ qui hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa, haykhi một phân loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất

Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và tínhtoán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước

Dữ liệu được cho dưới dạng các bản ghi có dạng:( , ) ( , , , , , ) x yx x x1 2 3 x yk Biến phụthuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa

1, , 2 3

x x x là các biến sẽ giúp ta thực hiện công việc đó

2 Các kiểu cây quyết định:

Cây quyết định còn có hai tên khác:

o Cây hồi quy (Regression tree): ước lượng các hàm giá có giá trị là số thực

thay vì được sử dụng cho các nhiệm vụ phân loại (ví dụ: ước tính giá mộtngôi nhà hoặc khoảng thời gian một bệnh nhân nằm viện)

o Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới

tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua)

Ví dụ:

Ta sẽ dùng một ví dụ để giải thích về cây quyết định:

David là quản lý của một câu lạc bộ đánh golf nổi tiếng Anh ta đang có rắc rối chuyệncác thành viên đến hay không đến Có ngày ai cũng muốn chơi golf nhưng số nhân viên câulạc bộ lại không đủ phục vụ Có hôm, không hiểu vì lý do gì mà chẳng ai đến chơi, và câu lạc

bộ lại thừa nhân viên

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 8

Trang 9

Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách dựa theothông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf Để thực hiện điều

đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìm hiểu xem có cách giải thíchnào cho việc đó hay không

Vậy là trong hai tuần, anh ta thu thập thông tin về:

Quang cảnh (outlook), nắng (sunny), nhiều mây (clouded) hoặc mưa (raining)) Nhiệt độ(temperature), độ ẩm (humidity) Có gió mạnh (windy) hay không

Và tất nhiên là số người đến chơi golf vào hôm đó David thu được một bộ dữ liệu gồm

Sau đó, để giải quyết bài toán của David, người ta đã đưa ra một mô hình cây quyếtđịnh kiểm tra khi nào chơi golf, khi nào không chơi

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 9

Trang 10

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Cây quyết định là một mô hình dữ liệu mã hóa phân bố của nhãn lớp (cũng là y) theocác thuộc tính dùng để dự đoán Nút gốc (nút nằm trên đỉnh) đại diện cho toàn bộ dữ liệu.Thuật toán cây phân loại phát hiện ra rằng cách tốt nhất để giải thích biến phụ thuộc Chơi(play), là sử dụng biến Quang cảnh Phân loại theo các giá trị của biến Quang cảnh, ta có banhóm khác nhau: Nhóm người chơi golf khi trời nắng, nhóm chơi khi trời nhiều mây, vànhóm chơi khi trời mưa

Kết luận thứ nhất: nếu trời nhiều mây tức là âm u, người ta luôn luôn chơi golf Và cómột số người đi chơi golf cả khi trời mưa

Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con Ta thấy rằng khách hàngkhông muốn chơi golf nếu độ ẩm cao

Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ không chơigolf nếu trời nhiều gió

Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại David cho phần lớnnhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưa gió Vì hầu như sẽchẳng có ai chơi golf trong những ngày đó Vào những hôm khác, khi nhiều người sẽ đếnchơi golf, anh ta có thể thuê thêm nhân viên thời vụ để phụ giúp công việc

Lưu ý :

o Cây quyết định trên không có sự tham gia của thuộc tính “Nhiệt độ” trong

thành phần cây, các thuộc tính như vậy được gọi chung là các thuộc tính dưthừa bởi vì các thuộc tính này không ảnh hưởng đến quá trình xây dựng môhình của cây

o Các thuộc tính tham gia vào quá trình phân lớp thông thường có các giá trị

liên tục hay còn gọi là kiểu số (ordered or numeric values) hoặc kiểu rời rạchay còn gọi là kiểu dữ liệu phân loại (unordered or category values) Ví dụkiểu dữ liệu độ ẩm hay lương có thể biểu diễn bằng số thực là kiểu dữ liệuliên tục, kiểu dữ liệu giới tính là kiểu dữ liệu rời rạc (có thể rời rạc hóa thuộctính giới tính một cách dễ dàng)

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 10

Trang 11

Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thành một cấu trúcđơn giản hơn rất nhiều.

Ưu điểm cây quyết định:

So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp có một

 Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị làtên thể loại Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉgồm một loại biến Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biếntên, trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số

 Cây quyết định là một mô hình hộp trắng Mạng nơ-ron là một ví dụ về mô hìnhhộp đen, do lời giải thích cho kết quả quá phức tạp để có thể hiểu được

 Có thể thẩm định một mô hình bằng các kiểm tra thống kê Điều này làm cho ta

có thể tin tưởng vào mô hình

 Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn Cóthể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thờigian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phântích của cây quyết định

II CẤU TRÚC CỦA CÂY QUYẾT ĐỊNH:

Cây quyết định là một cấu trúc được sử dụng để chia liên tiếp một tập các bản ghilớn thành các tập con nhỏ hơn bằng cách áp dụng một chuỗi các luật đơn giản Với mỗiphép chia liên tiếp, các tập con thu được trong tập kết quả sẽ ngày càng giống nhau Nó cócấu trúc như sau :

- Mỗi nút mang một thuộc tính (biến độc lập)

- Mỗi nhánh tương ứng với một giá trị của thuộc tính

- Mỗi nút lá là một lớp (biến phụ thuộc)

Đối với cây quyết định, tại mỗi nút, một thuộc tính sẽ được chọn ra để phân tách tậpmẫu thành những lớp khác nhau nhiều nhất có thể Tiến hành lặp lại bước này đến khi kếtthúc ta sẽ có được một tập các lớp đã được định nghĩa trước Một trường hợp mới sẽ đượcphân loại dựa vào việc tìm một đường dẫn phù hợp tới nút lá

Ví dụ về cây quyết định :

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 11

Trang 12

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Bảng 1 : Dữ liệu thời tiết

III PHƯƠNG PHÁP XÂY DỰNG CÂY QUYẾT ĐỊNH:

 Việc tạo cây quyết định bao gồm 2 giai đoạn : Tạo cây và tỉa cây

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 12

Trang 13

 Để tạo cây ở thời điểm bắt đầu tất cả những ví dụ huấn luyện là ở gốc sau đóphân chia ví dụ huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn

 Việc tỉa cây là xác định và xóa những nhánh mà có phần tử hỗn loạn hoặc nhữngphần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó)

 Có rất nhiều biến đổi khác nhau về nòng cốt của thuật toán cây quyết định, mặc dùvậy chúng vẫn tuân theo những bước cơ bản sau :

 Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị

 Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây

 Thuộc tính được phân loại (Rời rạc hóa các thuộc tính dạng phi số )

 Chọn một thuộc tính để phân chia thành các nhánh Thuộc tính được chọn dựatrên độ đo thống kê hoặc độ đo heuristic

 Tiếp tục lặp lại việc xây dựng cây quyết định cho các nhánh

 Điều kiện để dừng việc phân chia:

 + Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá)

 + Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa

 + Không còn lại mẫu nào tại nút

IV XÂY DỰNG CÂY QUYẾT ĐỊNH:

1 Chọn thuộc tính phân tách:

Lúc khởi đầu, ta có trong tay một tập luyện chứa tập các bản ghi được phân loạitrước – tức là giá trị của biến đích được xác định trong tất cả các trường hợp Cây quyếtđịnh được xây dựng bằng cách phân tách các bản ghi tại mỗi nút dựa trên một thuộc tínhđầu vào Rõ ràng nhiệm vụ đầu tiên là phải chọn ra xem thuộc tính nào đưa ra được sựphân tách tốt nhất tại nút đó

Độ đo được sử dụng để đánh giá khả năng phân tách là độ tinh khiết Chúng ta sẽ

có những phương pháp xác định để tính toán độ tinh khiết một cách chi tiết, tuy nhiên chúngđều cố gắng đạt được hiệu quả như nhau Một sự phân tách tốt nhất là sự phân tách làmtăng độ tinh khiết của tập bản ghi với số lượng lớn nhất Một sự phân tách tốt cũng phải tạo

ra các nút có kích cỡ tương tự nhau, hay chí ít cũng không tạo ra các nút có quá ít bản ghi

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 13

Phân tách tốt Phép phân tách tốt

Phép phân tách kémPhép phân tách kém

DỮ LIỆU GỐC

Trang 14

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

để tạo hai hay nhiều nút con Nếu không phép phân tách nào có khả năng (có thể do có quá

ít bản ghi) hoặc do không có phép phân tách nào làm tăng độ tinh khiết thì thuật toán kếtthúc và nút đó trở thành nút lá

Phép phân tách trên các biến đầu vào kiểu số: đối với sự phân tách nhị phân trên

một biến đầu vào, mỗi giá trị mà biến đó chứa đều có thể trở thành giá trị dự tuyển Phépphân tách nhị phân dựa trên biến đầu vào kiểu số có dạng X < N Để cải thiện hiệu năng,một số thuật toán không kiểm tra hết toàn bộ các giá trị của biến mà chỉ kiểm tra trên tậpmẫu giá trị của biến đó

Phép phân tách trên các biến đầu vào định tính : thuật toán đơn giản nhất trong việc

phân tách trên một biến định tính là ứng với mỗi giá trị của biến đó, ta tạo một nhánh tươngứng với một lớp được phân loại Phương pháp này được sử dụng thực sự trong một sốphần mềm nhưng mang lại hiệu quả thấp Một phương pháp phổ biến hơn đó là nhóm cáclớp mà dự đoán cùng kết quả với nhau Cụ thể, nếu hai lớp của biến đầu vào có phân phốiđối với biến đích chỉ khác nhau trong một giới hạn cho phép thì hai lớp này có thể hợp nhấtvới nhau

Phép phân tách với sự có mặt của các giá trị bị thiếu: một trong những điểm hay

nhất của cây quyết định là nó có khả năng xử lý các giá trị bị thiếu bằng cách coi giá trị rỗng

(NULL) là một nhánh của nó Phương pháp này được ưa thích hơn so với việc vứt các bản

ghi có giá trị thiếu hoặc cố gắng gắn giá trị nào đó cho nó bởi vì nhiều khi các giá trị rỗngcũng có ý nghĩa riêng của nó Mặc dù phép phân tách giá trị rỗng như là một lớp riêng rẽ khá

có ý nghĩa nhưng người ta thường đề xuất một giải pháp khác Trong khai phá dữ liêu, mỗinút chứa vài luật phân tách có thể thực hiện tại nút đó, mỗi phép phân tách đó dựa vào cácbiến đầu vào khác nhau Khi giá trị rỗng xuất hiên trong biến đầu vào của phép phân tách tốtnhất, ta sử dụng phép phân tách thay thế trên biến đầu vào có phép phân tách tốt thứ hai

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 14

Phân tách tốt Phép phân tách tốt

Trang 15

Phép kiểm tra để chọn phép phân tách tốt nhất:

- Độ lợi thông tin (Information gain)

• Information gain là đại lượng được sử dụng để chọn lựa thuộc tính với informationgain lớn nhất

Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớp N

Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay N hay

không là:

• Cho các tập {S1, S2 , …, Sv} là một phân hoạch trên tập S, khi sử dụng thuộc tínhA

• Cho mỗi Si chứa pi mẫu lớp P và ni mẫu lớp N

• Entropy, hay thông tin mong muốn cần thiết để phân lớp các đối tượng trong tất cảcác cây con Si là:

• Thông tin có được bởi việc phân nhánh trên thuộc tính A là:

Ví dụ: Với bảng dữ liệu về dự báo thời tiết ở trên:

Info ([2,3]) = entropy (2/5, 3/5) = – 2/5log2(2/5) – 3/5log2(3/5) = 0.971

○ ‘Quang cảnh’ = ‘Âm u’:

Info ([4,0]) = entropy (1, 0) = – 1log2(1) – 0log2(0) = 0

Do không có log2(0) nên ta quy ước nó bằng 0

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 15

Trang 16

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

○ ‘Quang cảnh’ = ‘Mưa’:

Info ([3,2]) = entropy (3/5, 2/5) = – 3/5log2(3/5) – 2/5log2(2/5) = 0.971

○ Entropy cho phép phân tách trên thuộc tính « Quang cảnh» :

Info ([6,1]) = entropy (6/7, 1/7) = – 6/7log2(6/7) – 1/7log2(1/7) = 0.592

Entropy(Độ ẩm)= 7/14 Info(3,4) + 7/14 Info(6,1)

= 7/14* 0.985 + 7/14* 0.592 = 0.789 Gian(Độ ẩm) = Info(9,5) – Entropy(Độ ẩm)

= 0.940 – 0.798 = 0.151Tương tự cho các thuộc tính còn lại ta có:

Rõ ràng ban đầu ta sẽ chọn thuộc tính ‘Quang cảnh’ để phân tách Sau đó làm tương tự ta

sẽ được cây quyết định cuối cùng có dạng

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 16

Trang 17

Cây quyết định cuối cùng

- Biểu diễn tri thức dưới dạng luật IF-THEN

- Mỗi luật tạo ra từ mỗi đường dẫn từ gốc đến lá

- Mỗi cặp giá trị thuộc tính dọc theo đường dẫn tạo nên phép kết (phép AND –và)

- Các nút lá mang tên của lớp

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 17

Trang 18

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

VÍ DỤ 1:

R1: If (Quang cảnh=Nắng) Ù (Độ ẩm=Cao) Then Chơi=Không

R2: If (Quang cảnh=Nắng) Ù (Độ ẩm=Trung bình) Then Chơi=Có

R3: If (Quang cảnh=Âm u) Then Chơi=Có

R4: If (Quang cảnh=Mưa) Ù (Gió=Mạnh) Then Chơi=Không

R5: If (Quang cảnh=Mưa) Ù (Gió=Nhẹ) Then Chơi=Có

CHƯƠNG 3: CÁC THUẬT TOÁN XÂY DỰNG CÂY QUYẾT ĐỊNH

Phần lớn các thuật toán phân lớp dữ liệu dựa trên cây quyết định có mã như sau:

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 18

Then returnFor each attribete A doEvaluate splits on attribute A;

Use best split found to partition S into S1, S2, SkPartition (S1)

Partition (S2)

Trang 19

I THUẬT TOÁN PHÂN LỚP CÂY QUYẾT ĐỊNH ID3:

Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các ví dụ rènluyện (training example) hay còn gọi là dữ liệu rèn luyện (training data) Hay nói khác hơn,giải thuật có:

 Đầu vào: Một tập hợp các ví dụ Mỗi ví dụ bao gồm các thuộc tính mô tảmột tình huống, hay một đối tượng nào đó, và một giá trị phân loại của

 Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trongtập dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụchưa gặp trong tương lai

Ví dụ, chúng ta hãy xét bài toán phân loại xem ta ‘có đi chơi tennis’ ứng với thời tiết nào đókhông Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:

Tập dữ liệu này bao gồm 14 ví dụ Mỗi ví dụ biểu diễn cho tình trạng thời tiết gồmcác thuộc tính quang cảnh, nhiệt độ, độ ẩm và gió; và đều có một thuộc tính phân loại ‘chơiTennis’ (có, không) ‘Không’ nghĩa là không đi chơi tennis ứng với thời tiết đó, ‘Có’ nghĩa làngược lại Giá trị phân loại ở đây chỉ có hai loại (có, không), hay còn ta nói phân loại của tập

ví dụ của khái niệm này thành hai lớp (classes) Thuộc tính ‘Chơi tennis’ còn được gọi làthuộc tính đích (target attribute)

Mỗi thuộc tính đều có một tập các giá trị hữu hạn Thuộc tính quang cảnh có ba giátrị (âm u, mưa, nắng), nhiệt độ có ba giá trị (nóng, mát, ấm áp), độ ẩm có hai giá trị (cao, TB)

và gió có hai giá trị (mạnh, nhẹ) Các giá trị này chính là ký hiệu (symbol) dùng để biểu diễnbài toán

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 19

Trang 20

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

phân loại đúng các ví dụ không nằm trong tập này

Sau khi giải thuật đã quy nạp được cây quyết định, thì cây này sẽ được sử dụng đểphân loại tất cả các ví dụ hay thể hiện (instance) trong tương lai Và cây quyết định sẽ khôngthay đổi cho đến khi ta cho thực hiện lại giải thuật ID3 trên một tập dữ liệu rèn luyện khác

Ứng với một tập dữ liệu rèn luyện sẽ có nhiều cây quyết định có thể phân loại đúngtất cả các ví dụ trong tập dữ liệu rèn luyện Kích cỡ của các cây quyết định khác nhau tùythuộc vào thứ tự của các kiểm tra trên thuộc tính

Giải thuật ID3 xây dựng cây quyết định từ trên xuống

ID3 xây dựng cây quyết định (cây QĐ) theo cách từ trên xuống Lưu ý rằng đối với bất kỳthuộc tính nào, chúng ta cũng có thể phân vùng tập hợp các ví dụ rèn luyện thành những tậpcon tách rời, mà ở đó mọi ví dụ trong một phân vùng (partition) có một giá trị chung chothuộc tính đó ID3 chọn một thuộc tính để kiểm tra tại nút hiện tại của cây và dùng trắcnghiệm này để phân vùng tập hợp các ví dụ; thuật toán khi đó xây dựng theo cách đệ quymột cây con cho từng phân vùng Việc này tiếp tục cho đến khi mọi thành viên của phânvùng đều nằm trong cùng một lớp; lớp đó trở thành nút lá của cây

Vì thứ tự của các trắc nghiệm là rất quan trọng đối với việc xây dựng một cây QĐ đơngiản, ID3 phụ thuộc rất nhiều vào tiêu chuẩn chọn lựa trắc nghiệm để làm gốc của cây

* ID3 xây dựng cây quyết định theo giải thuật sau:

Function induce_tree(tập_ví_dụ, tập_thuộc_tính)

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 20

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis

Trang 21

begin

if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then return một nút lá được gán nhãn bởi lớp đó

else if tập_thuộc_tính là rỗng then

return nút lá được gán nhãn bởi tuyển của tất cả các lớp trongtập_ví_dụ

else begin

chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;

xóa P ra khỏi tập_thuộc_tính;

với mỗi giá trị V của P

begin

tạo một nhánh của cây gán nhãn V;

Đặt vào phân_vùngV các ví dụ trong tập_ví_dụ có giá trị V tạithuộc tính P;

Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả

vào nhánh V

end end end

 Các khả năng có thể có của các phân vùng (partition):

Trong quá trình xây dựng cây QĐ, phân vùng của một nhánh mới có thể có các dạng sau:

 Có các ví dụ thuộc các lớp khác nhau, chẳng hạn như có cả ví dụ âm và dương

 Tất cả các ví dụ đều thuộc cùng một lớp, chẳng hạn như toàn âm hoặc toàn dương

 Không còn ví dụ nào => giải thuật trả về mặc nhiên

 Không còn thuộc tính nào => nghĩa là dữ liệu bị nhiễu, khi đó giải thuật phải sử dụngmột luật nào đó để xử lý, chẳng hạn như luật đa số (lớp nào có nhiều ví dụ hơn sẽđược dùng để gán nhãn cho nút lá trả về)

Từ các nhận xét này, ta thấy rằng để có một cây QĐ đơn giản, hay một cây có chiều cao

là thấp, ta nên chọn một thuộc tính sao cho tạo ra càng nhiều các phân vùng chỉ chứa các ví

dụ thuộc cùng một lớp càng tốt Một phân vùng chỉ có ví dụ thuộc cùng một lớp, ta nói phânvùng đó có tính thuần nhất Vậy, để chọn thuộc tính kiểm tra có thể giảm thiểu chiều sâu củacây QĐ, ta cần một phép đo để đo tính thuần nhất của các phân vùng, và chọn thuộc tínhkiểm tra tạo ra càng nhiều phân vùng thuần nhất càng tốt ID3 sử dụng lý thuyết thông tin đểthực hiện điều này

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 21

Trang 22

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Thuộc tính nào là thuộc tính dùng để phân loại tốt nhất?

a Entropy đo tính thuần nhất của tập ví dụ

Khái niệm entropy của một tập S được định nghĩa trong Lý thuyết thông tin là số lượngmong đợi các bít cần thiết để mã hóa thông tin về lớp của một thành viên rút ra một cáchngẫu nhiên từ tập S Trong trường hợp tối ưu, mã có độ dài ngắn nhất Theo lý thuyết thôngtin, mã có độ dài tối ưu là mã gán –log2p bits cho thông điệp có xác suất là p

Trong trường hợp S là tập ví dụ, thì thành viên của S là một ví dụ, mỗi ví dụ thuộc mộtlớp hay có một giá trị phân loại

 Entropy có giá trị nằm trong khoảng [0 1],

 Entropy(S) = 0  tập ví dụ S chỉ toàn ví dụ thuộc cùng một loại, hay S là thuầnnhất

 Entropy(S) = 1  tập ví dụ S có các ví dụ thuộc các loại khác nhau với độ phatrộn là cao nhất

 0 < Entropy(S) < 1  tập ví dụ S có số lượng ví dụ thuộc các loại khác nhau làkhông bằng nhau

Để đơn giản ta xét trường hợp các ví dụ của S chỉ thuộc loại âm (-) hoặc dương (+)

Khi đó, entropy đo độ pha trộn của tập S theo công thức sau:

Entropy(S) = -p + log 2 p + - p - log 2 p

-Một cách tổng quát hơn, nếu các ví dụ của tập S thuộc nhiều hơn hai loại, giả sử là

có c giá trị phân loại thì công thức entropy tổng quát là:

Entropy(S) =

C i

Trang 23

b Lượng thông tin thu được đo mức độ giảm entropy mong đợi

Entropy là một số đo đo độ pha trộn của một tập ví dụ, bây giờ chúng ta sẽ định nghĩamột phép đo hiệu suất phân loại các ví dụ của một thuộc tính Phép đo này gọi là lượngthông tin thu được, nó đơn giản là lượng giảm entropy mong đợi gây ra bởi việc phân chiacác ví dụ theo thuộc tính này

Một cách chính xác hơn, Gain(S,A) của thuộc tính A, trên tập S, được định nghĩa như sau:

)(

|

|

|

|)

()

,(

) (

v A

Values v

v Entropy S S

S S

Entropy A

Trở lại ví dụ ban đầu, nếu không sử dụng Entropy để xác định độ thuần nhất của ví

dụ thì có thể xảy ra trường hợp cây quyết định có chiều cao lớn Ta áp dụng phương thứctính Entropy để xác định chắc chắn thuộc tính nào được chọn trong quá trình tạo cây quyếtđịnh Đầu tiên ta tính độ thuần nhất của tập dữ liệu:

Entropy(S) = - (9/14) Log 2 (9/14) - (5/14) Log 2 (5/14) = 0.940

Từ đó ta tính tiếp Gain cho từng thuộc tính để suy ra thuộc tính nào được chọn làm nút gốc

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 23

Quang cảnh

Trang 24

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Gain(S, Quang cảnh) = Entropy(S) – (5/14)Entropy(SNắng) – (4/14)Entropy(SÂm u) – (5/14)Entropy(SMưa) = 0.940 – (5/14)(5/14)(- (2/5)log2(2/5) – (3/5)log2(3/5)) - (4/14)(0) -

(5/14)(- (3/5)log2(3/5) – (2/5)log2(2/5)) = 0.246

Gain(S, Nhiệt độ) = Entropy(S) - (4/14)×Entropy(SNóng) - (6/14)×Entropy(SẤm áp) –

(4/14)×Entropy(SMát) = 0.940 – (4/14)(1) - (6/14)(- (4/6)log2(4/6) – (2/6)log2(2/6)) - (4/14)(- (3/4)log2(3/4) – (1/4)log2(1/4)) = 0.029

Gain(S, Gió) = Entropy(S) - (6/14)×Entroy(SMạnh) - (8/14)×Entropy(SNhẹ)

= 0.940 - (6/14)(1) - (8/14)(- (6/8)log2(6/8) – (2/8)log2(2/8))

= 0.048

Gain(S, Độ ẩm) = Entropy(S) – (7/14)×Entropy(SCao) – (7/14)×Entropy(STB)

= 0.940 – (7/14)(- (3/7)log2(3/7) – (4/7)log2(4/7)) – (7/14)(- (6/7)log2(6/7) – (1/7)log2(1/7)) = 0.151

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 24

Trang 25

Ta thấy Gain(S, Quang cảnh) là lớn nhất  lấy thuộc tính quang cảnh làm nút gốc

Sau khi lập được cấp đầu tiên của cây quyết định ta lại xét nhánh Nắng

Entropy(SNắng) = - (3/5)log2(3/5) – (2/5)log2(2/5) = 0.971

Gain(SNắng, Nhiệt độ) = Entropy(SNắng) - (2/5)×Entropy(SNóng) - (2/5)×Entropy(SẤm áp) –

(1/5)×Entropy(SMát)

= 0.971 – (2/5)×0 - (2/5)×1 - (1/5)×0 = 0.571

Gain(SNắng, Gió) = Entroy(SNắng) - (2/5)×Entropy(SNhẹ) - (3/5)×Entropy(SMạnh)

= 0.971 - (2/5)×1 - (3/5)(- (1/3)log2(1/3) – (2/3)log2(2/3)) = 0.020

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 25

Trang 26

Nghiên cứu các thuật toán phân lớp dữ liệu trên cây quyết định GVHD: PGS.TS Đỗ Phúc

Gain(SNắng, Độ ẩm) = Entropy(SNắng) – (3/5)×Entropy(SCao) – (2/5)×Entropy(STB)

= 0.971 – (3/5)(0) – (2/5)(0) = 0.971

Như vậy thuộc tính độ ẩm có hiệu suất phân loại cao nhất trong nhánh Nắng  ta chọn thuộc tính Độ ẩm làm nút kế tiếp

HV: Lương Văn Nguyên (CH1102005) – Cao học 07 Trang 26

Ngày đăng: 09/04/2015, 21:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4.] John Shafer, Rakesh Agrawal, Manish Mehta. SPRINT- A Scalable Paralllel Classifier for Data mining. In Predeeings of the 22 nd International Conference on Very Large Database, India, 1996 Sách, tạp chí
Tiêu đề: - A Scalable Paralllel Classifier for Data mining
[5.] J. R. Quinlan. Improve Used of Continuous Attribute in C4.5. In Joural of Artficial Intelligence Research 4 (1996) 77-90 Sách, tạp chí
Tiêu đề: Improve Used of Continuous Attribute in C4.5
[3.] Bách khoa toàn th mở - Winkipedia (http://en.wikipedia.org/wiki/decisiontree ) Link
[1] Các Slide bài giảng môn Khai phá dữ liệu và nhà kho dữ liệu, môn trí tuệ nhân tạo,… của PGS.TS. Đỗ Phúc và GS.TSKH. Hoàng Kiếm Khác
[2.] Một số luận văn thạc sỹ tại thư viện Đại học Quốc gia Hà Nội Khác
[6.] ht t p ://www.ne t n a m .vn/un e s coc o urse / k nowlegde / k nowlegd.h t m Khác

HÌNH ẢNH LIÊN QUAN

Hình 1 - Quá trình phân lớp dữ liệu - (a) Bước xây dựng mô hình phân lớp - NGHIÊN CỨU CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU TRÊN CÂY QUYẾT ĐỊNH
Hình 1 Quá trình phân lớp dữ liệu - (a) Bước xây dựng mô hình phân lớp (Trang 5)
Hình 2 - Quá trình phân lớp dữ liệu - (b1)Ước lượng độ chính xác của mô hình - NGHIÊN CỨU CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU TRÊN CÂY QUYẾT ĐỊNH
Hình 2 Quá trình phân lớp dữ liệu - (b1)Ước lượng độ chính xác của mô hình (Trang 6)
Bảng 1 : Dữ liệu thời tiết - NGHIÊN CỨU CÁC THUẬT TOÁN PHÂN LỚP DỮ LIỆU TRÊN CÂY QUYẾT ĐỊNH
Bảng 1 Dữ liệu thời tiết (Trang 12)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w