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

phân lớp dựa vào cây quyết định giải thuật ID3

28 1,3K 15

Đ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 28
Dung lượng 1,79 MB

Nội dung

Đây là tài liệu mình tự viết, rất dễ hiểu trong môn kho dữ liệu và các phương pháp khai phá, các ví dụ tự đưa ra và hướng dẫn giải rất dễ hiểu, ngoài ra còn áp dụng phần mềm weka để ứng dụng thuật toán id3 tìm ra cây quyết định

Trang 1

v

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN MÔN: KHO DỮ LIỆU VÀ CÁC PHƯƠNG

PHÁP KHAI PHÁ

Đề tài: Phân lớp dựa trên cây quyết định: giải thuật ID3

GV hướng dẫn: TS Nguyễn Mạnh Cường Lớp: CĐ-ĐH Khoa Học Máy Tính 1_K10 Nhóm 8: Thân Quang Định

Lương Phương Đông Nguyễn Trung Đức

Trang 2

Hà Nội, 2017

Trang 3

Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

1.1 Giới thiệu về khai phá dữ liệu

1.1.1 Khái niệm về khai phá dữ liệu

Khai phá dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc haykhai phá tri thức từ một lượng lớn dữ liệu Một ví dụ hay được sử dụng là việc khaithác vàng từ đá và cát, Datamining được ví như công việc “Đãi cát tìm vàng” trongmột tập hợp lớn các dữ liệu cho trước Thuật ngữ Datamining ám chỉ việc tìm kiếmmột tập hợp nhỏ có giá trụ từ một số lượng lớn các dữ liệu thô Có nhiều thuật ngữhiện được dùng có nghĩa tương tự với từ Datamining như Knowledge Mining (Khaiphá tri thức), Knowledge extraction (Chắt lọc tri thức), data/partern analysis (phântích dữ liệu/mẫu), data archaeoloogy (khảo cổ dữ liệu),…

Định nghĩa: khai phá dữ liệu là quá trình xác định các mẫu tiềm ẩn có tính hợp

lệ, mới lạ có ích và có thể hiểu được trong một khối dữ liệu rất lớn.

Khai phá dữ liệu là một bước trong bảy bước của quá trình KDD (knowleadgeDiscovery in Database) và KDD được xem như 7 quá trình khác nhau theo thứ tự sau :

1 Làm sạch dữ liệu (data cleaning & preprocessing): Loại bỏ nhiễu và các dữliệu không cần thiết

2 Tích hợp dữ liệu (data integration): quá trình hợp nhất dữ liệu thành nhữngkho dữ liệu (data warehouse & data marts) sau khi đã làm sạch và tiền xử

lý dữ liệu (data cleaning & preprocessing)

3 Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu

và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức.Quá trình này bao gồm cả việc xử lý vơi dữ liệu nhiễu (noisy data), dữ liệukhông đầy đủ (incomplete data),…

4 Chuyển đổi dữ liệu : Các dữ liệu được chuyển sang các dạng phù hợp choquá trình xử lý

5 Khai phá dữ liệu (data mining) Là một trong các bước quan trọng nhất,trong đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu

dữ liệu

6 Ước lượng mẫu (knowledge evaluation) Quá trình đánh giá các kết quả tìmđược thông qua các độ đo nào đó

Trang 4

7 Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng các kỹthuật để biểu diễn và thể hiện trực quan cho người dùng.

Hình 1 Các bước trong datamining & KDD

1.1.2 Một số ứng dụng của khai phá dữ liệu

Data Mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:

 Tài chính: phân tích thẻ tín dụng, dự báo chứng khoán…

 Bảo hiểm: phân tích khiếu nạn, gian lận…

 Trong sinh học: Dùng để tìm kiếm, so sánh các hệ gen và thông tin di truyền, tìm mối liên hệ giữa các hệ gen và chuẩn đoán một số bệnh di truyền

 Viễn thông: phân tích các bản ghi cuộc gọi, hệ thống giám sát lỗi, sự cố, chất lượng dịch vụ…

 Giao thông: quản lý giao vận, hậu cần,…

 Y tế, chăm sóc sức khỏe: phân tích hiệu quả điều trị, dự báo phân tích DNA,…

 Giáo dục: phân tích thị trường giáo dục, quản lý chất lượng…

Trang 5

 Sản xuất: dự đoán bảo trì, phát hiện lỗi, lập lịch, hỗ trợ ra quyết định.

 Thị trường, tiếp thị: phân tích, dự báo thị trường, tiếp thị lan truyền…

 Nghiên cứu khoa học: ảnh, video, âm thanh…

 Tiện tích: phân tích, dự báo năng lượng sử dụng…

 Text mining và Web mining: phân lớp văn bản và các trang Web, tóm tắt văn bản…

1.1.3 Một số thách thức hàng đầu trong khai phá dữ liệu

1 Phát triển một lý thuyết thống nhất cho khai phá dữ liệu

2 Xử lý dữ liệu với số chiều cao và dòng dữ liệu tốc độ cao

3 Khai phá dữ liệu tuần tự và dữ liệu chuỗi thời gian

4 Khai phá tri thức hợp từ dữ liệu phức hợp

5 Khai phá dữ liệu trong các cấu hình mạng

6 Khai phá dữ liệu phân tán, và dữ liệu đa tác tử

7 Khai phá dữ liệu sinh học và các vấn đề môi trường

8 Các bài toán liên quan đến quy trình khai phá dữ liệu

9 An ninh, bảo mật và toàn vẹn dữ liệu

10 Khai phá dữ liệu không tĩnh, không cân bằng, chi phí lớn

1.2 Một số bài toán khai phá dữ liệu

1.2.1 Bài toán khai phá luật kết hợp

Mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các giátrị dữ liệu trong cơ sở dữ liệu Đầu ra của giải thuật luật kết hợp là tập luật kết hợp tìmđược Phương pháp khai phá luật kết hợp gồm có hai bước:

Bước 1: Tìm ra tất cả các tập mục phổ biến Một tập mục phổ biến được xác địnhthông qua tính độ hỗ trợ (support) và thỏa mãn độ hỗ trợ tối thiểu (minimum support).Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, các luật mạnh phảithỏa mãn độ hỗ trợ tối thiểu (minimum support – minsup) và độ tin cậy tối thiểu(minimum confidence - minconf)

Trang 6

1.2.2 Bài toán phân lớp

Phân lớp là kỹ thuật nhằm gán (đưa ra dự báo) nhãn lớp (class – label) cho các đốitượng dữ liệu chưa có nhãn lớp Gồm hai bước:

Bước 1: Huấn luyện

Bước 2: sử dụng mô hình để phân lớp

Phân lớp dữ liệu là tiến trình có 2 bước

1.2.3 Bài toán phân cụm

Phân cụm dữ liệu là cách phân bố các đối tượng dữ liệu vào các nhóm/ cụm saocho: Các đối tượng trong một cụm thì giống nhau hơn các phần tử khác cụm

Training set(Dữ liệu huấn luyện)

Classifier( Bộ phân lớp)

Test set

Dữ liệu cần huấn luyện

Classifier( Bộ phân lớp)

ResultsKết quả

Trang 7

Chương 2 PHÂN LỚP DỰA TRÊN CÂY QUYẾT ĐỊNH

VỚI GIẢI THUẬT ID3

2.1 Cây quyết định

2.1.1 Định nghĩa cây quyết định

Cây quyết định là một cấu trúc biểu diễn dưới dạng cây Trong đó, mỗi node trong(internal node) biểu diễn một thuộc tính, mỗi 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ùngcủa cây gọi là gốc (root)

Hình 2 Biểu diễn cây quyết định cơ bản

Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo (predictivemodel), nghĩa là một ánh xạ từ các quan sát về một sự vật/ hiện tượng tới các kết luận

về giá trị mục tiêu của sự vật/ hiện tượng Mỗi nút trong (intarnal node) tương ứng vớimột biến, đường nối giữa nó với nút con của nó thể hiện giá trị cụ thể cho biến đó.Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị dựđoán của các biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó Kỹ thuật họcmáy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi vớicái tên ngắn gọn là cây quyết định

Ví dụ: Một người có chơi tennis hay không?

Trang 8

Hình3 Cây quyết định cho việc chơi tennis

Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng đểphân lớp các đối tượng dựa vào dãy các luật (series of rules) Các thuộc tính của đốitượng (ngoại trừ thuộc tính phân lớp – Category attribute) có thể thuộc các kiểu dữliệu khác nhau (Binary, Nominal, Ordinal, Quantitative values) trong khi đó thuộc tínhphân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal

Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes)của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết

2.1.2 Biểu diễn cây quyết định

Cây quyết định phân lớp các trường hợp cụ thể bằng cách sắp đặt chúng từ trênxuống và bắt đầu từ nút gốc và đi xuống các nút lá:

 Mỗi nút trong ứng với một thuộc tính

 Mỗi cạnh biểu diễn kết quả phép kiểm tra trên thuộc tính

 Mỗi nút lá biểu diễn giá trị của nhãn lớp

 Nút cao nhất trong cây là nút gốc

2.1.3 Các bước xây dựng cây quyết định

Có nhiều thuật toán khác nhau để xây dựng cây quyết định như: CLS, ID3, C4.5,SPRINT, C5.0… Nhưng nói chung quá trình xây dựng cây quyết định đều được chia

ra làm 3 giai đoạn cơ bản:

Trang 9

 Xây dựng cây: Thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyệncho đến khi các mẫu ở nút lá thuộc cùng một lớp.

 Cắt tỉa cây: Là việc làm dùng để tối ưu hóa cây Cắt tỉa cây chính là việctrộn một cây con vào trong một nút lá

 Đánh giá cây: Dùng để đánh giá độ chính xác của cây kết quả Tiêu chíđánh giá là tổng số mẫu được phân lớp chính xác trên tổng số mẫu đưa vào

2.2 Thuật toán ID3

2.2.1 Lịch sử phát triển

Thuật toán ID3 được phát biểu bởi Quiland (Trường Đại học Syney, Australia) vàđược công bố vào cuối thập niên 70 của thế kỷ 20 Sau đó, thuật toán ID3 được giớithiệu và trình bày trong mục Induction on decision trees, Machine Learning năm

1986 ID3 được xem như là một cải tiến của thuật toán CLS (CLS được Hovland vàHint giới thiệu trong Concept Learning System vào những năm 50 của thế kỷ 20) vớikhả năng lựa chọn thuộc tính tốt nhất để tiếp tục triển khai cây tạo mỗi bước ID3 xâydựng cây quyết định từ trên – xuống (top – down)

2.2.2 Giải thuật ID3

a Entropy: Đặc trưng cho độ hỗn tạp (tinh khiết) của tập dữ liệu bất kỳ.

Entropy ( S)=− p ⊕log2p⨁−p ⊖log2p ⊖

Trong đó: S là tập các mẫu thuộc lớp dương và lớp âm

P ⊖ là tỷ lệ các mẫu thuộc lớp âm trong S

P ⊕ là tỷ lệ các mẫu thuộc lớp dương trong S

Entropy của tập S ký hiệu là IE(S)

Entropy là 0 nếu tất cả các thành viên của S đều thuộc về cùng 1 lớp.

Entropy là 1 nếu tập hợp chứa số lượng bằng nhau các thành viên thuộc lớp

dương và lớp âm Nếu các số này là khác nhau, entropy sẽ nằm giữa 0 và 1

Tập hạn chế: cho S là tập mẫu dữ liệu huấn luyện Tập hạn chế trên S, ký hiệu

là S A = v được xác định như sau :

S A =v=δ A= v(S)

Ta ký hiệu S A=v là: S v

Trang 10

b Information Gain: Đo độ quan trọng của một thuộc tính

S v: một tập con chứa các giá trị v của STrong quá trình xây dựng cây quyết định theo thuật toán ID3 tại mỗi bước triển

khai cây, thuộc tính được chọn để triển khai là thuộc tính có giá trị Gain lớn nhất.

Ví dụ: cho bảng dữ liệu huấn luyện S, hãy sinh cây quyết định bằng giải thuật ID3

Bước 1 Tính IE(S) = -(3/8)log2(3/8) – (5/8)log2(5/8)= ~ 0.954

Bước 2: Tính IG cho các thuộc tính:

Trang 11

Gain (S, Vóc dáng)= IG (S, Vóc dáng)= 0.954 - (0.5*1+0.811*0.5)=0.049

Tương tự ta tính được:

IG (Quốc tịch)= 0.204 ;

IG (Gia cảnh)= 0.347; giá trị IG cao nhất chọn làm nút gốc.

Bước 3: Tạo nút gốc cho cây, thuộc tính trên nút gốc Gia cảnh

Hình 4 Tạo nút gốc gia cảnh

Bước 4: Loại bỏ thuộc tính gia cảnh và tạo bảng dữ liệu mới

Tính lại IE (Sgia cảnh) = -2/5log22/5- 3/5log23/5= 0.971

Tính IG (vóc dáng)= 0.971- (2/5*1+3/5*0.981)=0.020

Tính IG (Quốc tịch)= 0.971-(2/5*0+1/5*0+2/5*0)= 0.971

Trang 12

Hình 5 Cây quyết định

2.2.3 Sử dụng cây quyết định để phân lớp dữ liệu

Quy trình:

Trang 13

Step 1: Tạo cây quyết định từ dữ liệu huấn luyện

Step2: Dựa vào cây quyết định để phân lớp cho bộ dữ liệu mới cần phân lớp

Ví dụ: cho bảng dữ liệu huấn luyện S

Tuổi Thu nhập Sinh viên

Đánh giá độ tín nhiệm (trong tín dụng mua chịu)

Mua máy tính

Thanh niên Cao Không Trung bình KhôngThanh niên Cao Không Tốt KhôngTrung niên Cao Không Trung bình CóGià Trung bình Không Trung bình Có

Phân lớp dữ liệu sau:

Step 1:

Bước 1: Tính IE(S) = -(9/14)log2(9/14) – (5/14)log2(5/14)= 0.940

Bước 2:Tính IG cho các thuộc tính:

IG (Tuổi)

Vϵ{ thanh niên, trung niên, già}; |S thanh niên|=5 ;|S già|=5 ;|S trung niên|=4

Trang 15

Bước 3:Ta thấy Gain (S, tuổi) là lớn nhất →chọn thuộc tính “Tuổi” làm nút gốc.

Thanh niên Trung niên Già

Bước 4: tạo bảng dữ liệu mới

Tuổi Thu nhập Sinh viên

Đánh giá độ tín nhiệm (trong tín dụng mua chịu)

Mua máy tính

Thanh niên Cao Không Trung bình KhôngThanh niên Cao Không Tốt KhôngGià Trung bình Không Trung bình Có

Thanh niên Trung bình Không Trung bình KhôngThanh niên Thấp Có Trung bình CóGià Trung bình Có Trung bình CóThanh niên Trung bình Có Tốt CóGià Trung bình Không Tốt khôngBước 5: lặp lại step 2-4

Tuổi

Trang 16

IG(S thanh niên , sinh viên)=0.971

IG(S thanh niên , Độ tincậy)=0.971−(35∗1+

2

5∗0.811)=0.047

Gain (S thanh niên ,sinh viên) là lớn nhất trong nhánh Thanh niên

Thanh niên Trung niên Già

Trang 17

Gain (S Già , Độ tin cậy) là lớn nhất trong nhánh “Già” lấy thuộc tính độ tin cậy làmnút kế tiếp để phân chia.

Thanh niên Trung niên Già

Có không Trung bình Tốt

 Luật rút ra từ cây quyết định

 Luật 1: If (Tuổi= Thanh niên) and (Sinh viên = Có) Then (Mua máy tính = Có)

 Luật 2: If (Tuổi= Thanh niên) and (Sinh viên = không) Then (Mua máy tính = Không)

 Luật 3: If (Tuổi= Trung niên) Then (Mua máy tính = Có)

 Luật 4: If (Tuổi= Già) and (Độ tin cậy = Tốt) Then (Mua máy tính = Có)

 Luật 5: If (Tuổi= Già) and (Độ tin cậy = Trung bình) Then (Mua máy tính =Không)

Step 2: Sử dụng cây quyết định để phân lớp đối tượng mới

Thanh niên Thấp Không Tốt

Dựa vào cây quyết định ở trên, dữ liệu mới cần phân lớp được phân vào lớp

“Không”

Luật rút ra từ cây quyết định:

If (Tuổi= Thanh niên) and (Sinh viên = Không) Then (Mua máy tính = Không)

Tuổi

cóSinh viên

Độ tin cậy

Trang 18

2.2.4 Ưu điểm, nhược điểm của thuật toán ID3

 Ưu điểm

- Sử dụng thuật tìm kiếm leo đồi (Hill -climbing) dựa trên giá trị Gain để tìm kiếm các thuộc tính trong toàn bộ cây quyết định

- Đầu ra (Output) chỉ là một giả thuyết đơn (1 kết quả duy nhất)

- Sử dụng dữ liệu huấn luyện ở từng bước, trái ngược với những thuật giảiphát triển mở rộng cây quyết định (có thể hạn chế được kích thước câykhông quá lớn)

- Sử dụng các thuộc tính tĩnh: hạn chế tối đa lỗi cho những bản ghi dữ liệuriêng lẻ, có thể ảnh hưởng tới toàn bộ dự án

- Kiểm soát được dữ liệu rác, dữ liệu tạp bên ngoài bằng cách giảm bớtyêu cầu tiêu chuẩn cho việc chấp nhận những dữ liệu chưa hoàn chỉnh

 Nhược điểm

- Không xử lý các thuộc tính có kiểu giá trị liên tục (kiểu số thực)

- Không thích ứng được với những tập dữ liệu phức tạp (dễ phát sinh lỗi)

- Không hiệu quả khi xuất hiện những dữ liệu không mong muốn

- Cây quyết định khi sinh ra lớn, rườm rà, chưa được tối ưu ở mức tối đa

có thể

- Không có khả năng xử lý các ví dụ học thiếu giá trị thuộc tính

Trang 19

Chương 3 MÔ PHỎNG THUẬT TOÁN ID3 TRÊN

WEKA

3.1 Giới thiệu về weka

3.1.1 giới thiệu weka

Weka được phát triển bởi trường Đại học Waikato và là tên viết tắt của Waikato Environment for Knowledge Analysis, hệ thống này được viết bằng ngôn ngữ Java

Nó cung cấp một giao diện thống nhất với nhiều thuật toán khác nhau, cùng với các phương pháp cho việc xử lý trước, xử lý sau và dành cho việc đánh giá kết quả của các sơ đồ học trên bất kỳ tập dữ liệu cho trước nào

Giao diện chính của phần mềm weka

3.1.2 Các chức năng của weka, dữ liệu của weka

Explorer: Môi trường cho phép sử dụng tất cả các khả năng của weka để khám

Trang 20

Hình 4 Giao diện Explorer

Experimenter: Cho phép người dùng thực hiện những bài tập cơ bản khi ứng dụng

phân lớp và kĩ thuật hồi quy, với những công việc có giá trị, phương pháp và tham sốtốt nhất cho vấn đề đã cho Cho phép bạn tự động hóa xử lý, làm cho nó phân lớp vàlọc dễ dàng với những cách thiết lập tham số khác nhau trên toàn bảng dữ liệu

Trang 21

Hình 5 Giao diện Experimenter

Kết nối thông tin:

ArffViewer: là ứng dụng con trình bày nội dung tập dạng *.ARFF thành bảng

dữ liệu

SqlViewer: cho phép kết nối với cơ sở dữ liệu (Mysql, PostGre…) và truy vấn

để lấy thông tin

Hình 6 Giao diện Tools

Biểu diễn trực quan: weka hỗ trợ người dùng biểu diễn trực quan dữ liệu qua những

dạng biểu đồ thông dụng: biểu đồ trục, đồ thị, biểu đồ cây…

Trang 22

Hình 7 Giao diện Visualize

Dữ liệu của weka là các tập tin văn bản (text) có đuôi *.ARFF, gồm thành phần:

 Header: chứa khai báo quan hệ, danh sách các thuộc tính (tên, kiểu dữliệu)

 Data: gồm nhiều dòng, mỗi dòng thể hiện giá trị các thuộc tính cho mẫu

3.1.3 Môi trường chính của weka (Explorer)

Preprocess: Tiền xử lý dữ liệu hiển thị các dữ liệu đang xét

 Tập dữ liệu: tên, số mẫu, số thuộc tính

 Các thuộc tính: tên, kiểu dữ liệu, giá trị thuộc tính, tỷ lệ %

 Biểu đồ minh họa thông tin

Ngày đăng: 10/11/2017, 09:14

TỪ KHÓA LIÊN QUAN

w