GIỚI THIỆU VỀ GIẢI THUẬT C4.51.1 Sơ lược về thuật toán cây quyết định Thuật toán cây quyết định cho ra kết quả là một tập luật của những dữ liệu huấnluyện có thuộc tính.. Với những đặc đ
Trang 1KHOA KỸ THUẬT VÀ CÔNG NGHỆ
BỘ MÔN CÔNG NGHỆ THÔNG TIN
HỌC PHẦN: KHAI KHOÁNG DỮ LIỆU
TÌM HIỂU PHÂN LỚP DỮ LIỆU SỬ DỤNG THUẬT
Trang 2MỤC LỤC
I GIỚI THIỆU VỀ GIẢI THUẬT C4.5 3
1.1 Sơ lược về thuật toán cây quyết định 3
1.2 Thuật toán C4.5 4
1.3 Những cải tiến từ thuật toán ID3 5
II GIẢI THUẬT HỌC CỦA THUẬT TOÁN C4.5 5
2.1 Giải thuật học của thuật toán C4.5 5
2.2 Ví dụ về thuật toán C4.5 6
III ỨNG DỤNG THUẬT TOÁN C4.5 15
3.1 Ứng dụng của thuật toán C4.5 15
3.2 Giới thiệu phần mềm Weka 15
3.3 Demo giải thuật với phần mềm weka 17
IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 24
Trang 3DANH MỤC HÌNH ẢNH
Hình 1 - Ứng dụng Weka (phiên bản 3.8.6) 17
Hình 2 - Giao diện chính của Weka 17
Hình 3 - Giao diện click vào Explorer của Weka 18
Hình 4 - Cửa sổ Weka Explorer 18
Hình 5 - Click "Open file" trong cửa sổ Weka Explorer 19
Hình 6 - Giao diện chọn bộ dữ liệu để chạy giải thuật 19
Hình 7 - Giao diện sau khi chọn bộ dữ liệu 20
Hình 8 - Giao diện cửa sổ Classify 20
Hình 9 - Giao diện chọn thuật toán 21
Hình 10 - Click vào nút start để chạy giải thuật 21
Hình 11 - Giao diện sau khi nhấn nút Start 22
Hình 12 - Giao diện chọn Visualize classifier erors 22
Hình 13 - Giao diện kết quả chạy thuật toán 23
Trang 4I GIỚI THIỆU VỀ GIẢI THUẬT C4.5
1.1 Sơ lược về thuật toán cây quyết định
Thuật toán cây quyết định cho ra kết quả là một tập luật của những dữ liệu huấnluyện có thuộc tính Cây quyết định là một công cụ phổ biến trong khai phá và phânlớp dữ liệu
Đặc điểm của cây quyết định: là một cây có cấu trúc, trong
đó: Root (Gốc): Là nút trên cùng của cây
Node trong: nút trung gian trên một thuộc tính đơn (hình Oval)
Nhánh: Biểu diễn các kết quả của kiểm tra trên nút
Node lá: Biểu diễn lớp hay sự phân phối lớp (hình vuông hoặc chữ nhật)
Ví dụ cây quyết định:
Trang 5-Việc xếp hạng các thuộc tính để phân nhánh dựa vào lần phân nhánh trước đó và
bỏ qua sự phụ thuộc lẫn nhau giữa các thuộc tính
- Khi dùng độ lợi thông tin (Information Gain) để xác định thuộc tính rẽ nhánh,các thuộc tính có nhiều giá trị thường được ưu tiên chọn
1.2 Thuật toán C4.5
Thuật toán C4.5 là sự phát triển từ CLS và ID3, ID3 (Quinlan, 1979) 1 hệ‐thống đơn giản ban đầu chứa khoảng 600 dòng lệnh Pascal Năm 1993, J RossQuinlan phát triển thành C4.5 với 9000 dòng lệnh C
Với những đặc điểm C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết địnhhiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ.C4.5 sử dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểmnày làm C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại dữ liệutại mỗi node trong quá trình phát triển cây quyết định
C4.5 còn chứa một kỹ thuật cho phép biểu diễn lại cây quyết định dưới dạngmột danh sách sắp thứ tự các luật if-then (một dạng quy tắc phân lớp dễ hiểu) Kỹthuật này cho phép làm giảm bớt kích thước tập luật và đơn giản hóa các luật mà độchính xác so với nhánh tương ứng cây quyết định là tương đương
C4.5 có những đăc điểm khác với các thuật toán khác, đó là: cơ chế chọn thuộctính để kiểm tra tại mỗi node, cơ chế xử lý với những giá trị thiếu, việc tránh “quávừa” dữ liệu, ước lượng độ chính xác và cơ chế cắt tỉa cây
Trang 6Tư tưởng phát triển cây quyết định của C4.5 là phương pháp Hunt Chiến lược phát triển theo độ sâu (depth-first strategy) được áp dụng cho C4.5
Thuật toán Hunt sử dụng trong C4.5
S={S1,S2,…,Sn} là tập dữ liệu đào tạo
1.3 Những cải tiến từ thuật toán ID3
Xử lý cả thuộc tính liên tục và thuộc tính rời rạc - Để xử lý các thuộc tính liêntục, C4.5 tạo một ngưỡng rồi chia danh sách thành các thuộc tính có giá trị thuộc tínhcao hơn ngưỡng và các thuộc tính nhỏ hơn hoặc bằng ngưỡng đó
Xử lý dữ liệu huấn luyện với các giá trị thuộc tính bị thiếu - C4.5 cho phép cácgiá trị thuộc tính được đánh dấu là ? vì mất tích Các giá trị thuộc tính bị thiếu đơngiản là không được sử dụng trong các phép tính độ lợi và entropy
Xử lý các thuộc tính với các chi phí khác nhau
Cắt tỉa cây sau khi tạo - C4.5 quay lại cây sau khi nó được tạo và cố gắng loại
bỏ các nhánh không hữu ích bằng cách thay thế chúng bằng các nút lá
II GIẢI THUẬT HỌC CỦA THUẬT TOÁN C4.5
2.1 Giải thuật học của thuật toán C4.5
Thuật toán C4.5 sử dụng độ đo là GainRatio
Lặp:
1 Chọn A <= thuộc tính quyết định “tốt nhất” cho nút kế tiếp
2 Gán A là thuộc tính quyết định cho nút
3 Với mỗi giá trị của A, tạo nhánh con mới của nút
4 Phân loại các mẫu huấn luyện cho các nút lá
5 Nếu các mẫu huấn luyện được phân loại hoàn toàn thì NGƯNG
Ngược lại, lặp lại với các nút lá mới
Trang 7- Độ đo Gain Ratio: GainRatio(A)
Giải quyết vấn đề một thuộc tính được dùng tạo ra rất nhiều phân hoạch (thậm chí mỗi phân hoạch chỉ gồm 1 phân tử)
- Độ đo Information Gain có xu hướng thiên vị cho các thuộc tính có nhiều giá trị
Cần chuẩn hóa information gain với giá trị thông tin phân tách (split
information): SpitInfoA(D)- Splitting artribute A tương ứng b=với GainRatio(A) là trị lớn nhất
5 2 5 − 5 2 5 = 0.97
Trang 8𝐼𝑛𝑓𝑜31 40 = (4, 0 = 0𝐼 )
Trang 9𝑮𝒂𝒊𝒏 𝑫 𝑰𝑵𝑪𝑶𝑴𝑬) 𝟎 𝟎𝟐𝟗𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐 𝑰𝑵𝑪𝑶𝑴𝑬( ) =
𝐒𝐩𝐥𝐢𝐭𝐈𝐧𝐟𝐨𝑺𝑻𝑼𝑫𝑬𝑵𝑻(𝑫)
=
= 𝟎 𝟏𝟓𝟏𝟓𝟏
Trang 10*Xét thuộc tính CREDIT_RATING
𝐼𝑛𝑓𝑜𝐹𝐴𝐼𝑅 = (6, 2 = − 𝐼 ) 𝑙𝑜𝑔 𝑙𝑜𝑔
8 2 8 − 8 2 8 = 0.811𝐼𝑛𝑓𝑜𝐸𝑋𝐶𝐸𝐿𝐿𝐸𝑁𝑇 = (3, 3 = 1𝐼 )
( ,𝑮𝒂𝒊𝒏 𝑫 𝑪𝑹𝑬𝑫𝑰𝑻 𝑹𝑨𝑻𝑰𝑵𝑮_ ) 𝟎 𝟎𝟒𝟖𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐(𝑪𝑹𝑬𝑫𝑰𝑻 𝑹𝑨𝑻𝑰𝑵𝑮) =_
Chưa phân lớp hoàn toàn, nên tiếp tục tính GainRatio để chọn ra nút tiếp theo
Đã phân lớp hoàn toàn, nên có thể đưa ra quyết định nếu AGE = 31 40 thì BUYS_COMPUTER=YES
Trang 1110
> 40[3+, 2−]
Trang 12 Độ lợi thông tin của INCOME: Gain (AGE<=30, INCOME) =0.97−0.4 = 0.57
5 𝑙𝑜𝑔2 5 5 𝑙𝑜𝑔2 5 5 𝑙𝑜𝑔2 5 (
𝑮𝒂𝒊𝒏 𝑨𝑮𝑬 ≤ 𝟑𝟎,𝑰𝑵𝑪𝑶𝑴𝑬) 𝟎 𝟓𝟕𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐 𝑰𝑵𝑪𝑶𝑴𝑬( ) =
𝑮𝒂𝒊𝒏 𝑨𝑮𝑬 ≤ 𝟑𝟎,𝑺𝑻𝑼𝑫𝑬𝑵𝑻) 𝟎 𝟗𝟕𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐 𝑺𝑻𝑼𝑫𝑬𝑵𝑻( ) =
𝐼𝑛𝑓𝑜𝐶𝑅𝐸𝐷𝐼𝑇 𝑅𝐴𝑇𝐼𝑁𝐺 = _ 1, 2 + 1, 1 = 0.95
5 𝐼( ) 5 𝐼( )
Độ lợi thông tin của CREDIT_RATING:
Gain (AGE<=30, CREDIT_RATING) =0.97−0.95 = 0.02
SplitInfoSREDIT_RATING(AGE ≤ 30 = − ) − = 0.97
5 𝑙𝑜𝑔2 5 5 𝑙𝑜𝑔2 5 𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐 𝑺𝑹𝑬𝑫𝑰𝑻(
) = 𝑮𝒂𝒊𝒏(𝑨𝑮𝑬 ≤ 𝟑𝟎, 𝑺𝑹𝑬𝑫𝑰𝑻𝑹𝑨𝑻𝑰𝑵𝑮)𝑹𝑨𝑻𝑰𝑵𝑮 𝐒𝐩𝐥𝐢𝐭𝐈𝐧𝐟𝐨𝑺𝑹𝑬𝑫𝑰𝑻𝑹𝑨𝑻𝑰𝑵𝑮(𝑨𝑮𝑬 ≤ )𝟑𝟎
= 𝟎 𝟎𝟐 . = 𝟎 𝟎𝟐𝟏
Trang 13Ta thấy cả hai bảng đều đã hoàn toàn phân lớp nên ta có nhánh bên trái như sau:
≤30
[4+, 0−]
> 40[3+, 2−]
Trang 14 Ta tiếp tục xét nhánh AGE > 40
𝑮𝒂𝒊𝒏 𝑨𝑮𝑬 > 𝟒𝟎,𝑰𝑵𝑪𝑶𝑴𝑬) 𝟎 𝟎𝟐𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐 𝑰𝑵𝑪𝑶𝑴𝑬( ) =
Trang 15(𝑮𝒂𝒊𝒏 𝑨𝑮𝑬 > 𝟒𝟎,𝑺𝑻𝑼𝑫𝑬𝑵𝑻) 𝟎 𝟎𝟐𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐 𝑺𝑻𝑼𝑫𝑬𝑵𝑻( ) =
Độ lợi thông tin của CREDIT_RATING:
Gain (AGE>40, CREDIT_RATING) =0.971 − 0 = 0.971
SplitInfoSREDIT_RATING(AGE > 40 = − ) − = 0.97
5 𝑙𝑜𝑔2 5 5 𝑙𝑜𝑔2 5 𝑮𝒂𝒊𝒏𝑹𝒂𝒕𝒊𝒐(𝑪𝑹𝑬𝑫𝑰𝑻 𝑹𝑨𝑻𝑰𝑵𝑮) = _ 𝑮𝒂𝒊𝒏(𝑨𝑮𝑬 > 𝟒𝟎, 𝑺𝑹𝑬𝑫𝑰𝑻𝑹𝑨𝑻𝑰𝑵𝑮)
𝐒𝐩𝐥𝐢𝐭𝐈𝐧𝐟𝐨𝑺𝑹𝑬𝑫𝑰𝑻𝑹𝑨𝑻𝑰𝑵𝑮 (𝑨𝑮𝑬 > 𝟒𝟎)
= 𝟎 𝟗𝟕𝟏 𝟎 𝟗𝟕.. = 𝟏
Ta có: SplitInfo(AGE>40) = GainRatio (CREDIT_RATING) =1 => Ta chọn nút tiếp theo là CREDIT_RATING, phân hoạch 2 bảng theo CREDIT_RATING
Trang 16> 40[3+, 2−]
YesYes
CREDIT_RATING
Trang 17III ỨNG DỤNG THUẬT TOÁN C4.5
3.1 Ứng dụng của thuật toán C4.5
Một số ứng dụng của thuật toán C4.5 bao gồm:
1.Phân loại email: C4.5 có thể được sử dụng để phân loại email dựa trên nội dung của chúng, như là thư rác hoặc thư quan trọng
2.Dự đoán tín dụng: C4.5 có thể được sử dụng để dự đoán khả năng thanh toán của khách hàng dựa trên các thông tin tài chính của họ
3.Xác định loại cây trồng: C4.5 có thể được sử dụng để phân loại các loại cây trồng dựa trên đặc tính của chúng
4.Dự đoán việc làm: C4.5 có thể được sử dụng để dự đoán khả năng thành công của một ứng viên trong việc làm dựa trên các thông tin về hồ sơ và trình độ của họ
5.Phát hiện gian lận tài chính: C4.5 có thể được sử dụng để phát hiện các hành
vi gian lận trong tài chính dựa trên các chỉ số tài chính
6.Phân loại khách hàng: C4.5 có thể được sử dụng để phân loại khách hàng dựa trên các đặc tính khác nhau, như tuổi, giới tính và thu nhập
Đó chỉ là một số ví dụ về ứng dụng của thuật toán C4.5 Thuật toán này có thể được áp dụng trong nhiều lĩnh vực khác nhau để xây dựng các mô hình phân loại dựa trên các tập dữ liệu khác nhau
3.2 Giới thiệu phần mềm Weka
Khái niệm Weka
Weka là một phần mềm mã nguồn mở được sử dụng để phân tích dữ liệu và xâydựng các mô hình học máy Tên của phần mềm được lấy từ cụm từ "WaikatoEnvironment for Knowledge Analysis", đề cập đến trường đại học Waikato ở NewZealand nơi phần mềm được phát triển, được phát hành lần đầu tiên vào năm 1997.Weka được xây dựng bằng ngôn ngữ lập trình Java, theo kiến trúc hướng đốitượng Phần mềm được dùng để giải quyết nhiều bài toán khác nhau trong lĩnh vực họcmáy và khai thác dữ liệu, chẳng hạn như phân loại, dự đoán, phân cụm, hồi quy vàphát hiện bất thường Nó cũng có thể được sử dụng để khai thác dữ liệu không cấutrúc, chẳng hạn như văn bản và hình ảnh
Weka được sử dụng rộng rãi trong cộng đồng học máy và là một trong nhữngcông cụ phân tích dữ liệu phổ biến nhất hiện nay
Trang 18Khi sử dụng phần mềm Weka, bạn óᴄ thể gọi trự tiếp áᴄ ᴄ ᴄ thuật toán họ máуᴄhoặᴄ là nhập húngᴄ bằng các mã Ja a.ᴠ Nó sẽ ungᴄ ấpᴄ cho bạn một loạt áᴄ ᴄ ôngᴄ ụᴄ nhưlà: trự quan hóa, tiền хử lý, phân loại, phân ụm…ᴄ ᴄ
Những tính năng có trong Weka là:
- Mã nguồn mở giúp người dùng dễ dàng tải về và sử dụng
- Hỗ trợ được nhiều các thuật toán máy học (machine learning) và khai phá các nguồn dữ liệu
- Trực quan hóa, dễ dàng xây dựng nên các ứng dụng thực nghiệm
- Do sử dụng JVM nên phần mềm Weka hoàn toàn độc lập với môi trường.Kiến trúc ở trong thư viện phần mềm Weka có hơn 600 class và được tổ chức nên 10package Chính vì thế mà người sử dụng có thể dùng được trực tiếp trên phần mềmhoặc là sử dụng những class này để làm bộ thư viện phát triển nên các ứng dụng củariêng mình
Các chức năng chính của Weka
- Hỗ trợ kết nối thông tin
- Khảo sát cơ sở dữ liệu
- Thực nghiệm mô hình
- Biểu đồ trực quan
Ưu điểm của phần mềm Weka
- Tổng hợp toàn diện các kỹ thuật tiền xử lý và mô hình hóa dữ liệu
-Được viết bởi ngôn ngữ lập trình Java nên Weka có thể chạy trên đa số nền tảng như Linux, Windows hay Macintosh
-Có thể được mở rộng bằng cách thêm các plugin, cho phép người dùng mở rộng chức năng của phần mềm
-Cung cấp các công cụ để chuyển đổi dữ liệu sang định dạng được hỗ trợ, giúp người dùng dễ dàng thực hiện các tác vụ phân tích dữ liệu
-Cung cấp quyền truy cập vào cơ sở dữ liệu SQL bằng cách sử dụng Java Database Connectivity và có thể xử lý kết quả được trả về bởi truy vấn cơ sở dữ liệu.-Giao diện đồ họa giúp người dùng dễ sử dụng
Trang 19Nhược điểm của phần mềm Weka
- Tính ổn định còn yếu hay bị treo máy hoặc bị lỗi trong quá trình sử dụng
- Khó khăn khi sử dụng dữ liệu lớn
- Khó sử dụng cho người mới bắt đầu vì nó có nhiều thuật toán phân tích dữ liệu khác nhau
- Hạn chế loại dữ liệu, không hỗ trợ tất cả các định dạng dữ liệu nên đôi khi phải chuyển đổi định dạng
3.3 Demo giải thuật với phần mềm weka
Để chạy demo giải thuật KNN ta sử dụng phần mềm Weka phiên bản hiên tại là3.8.6
H4nh 1 - Ứng dụng Weka (phiên bản 3.8.6)
Bên dưới là giao diện chính của phần mềm Weka
H4nh 2 - Giao diện chính của Weka
Trang 20Click vào “Explorer” sẽ hiện ra cửa sổ “weka explorer”
H4nh 3 - Giao diện click vào Explorer của Weka
H4nh 4 - Cửa sổ Weka Explorer
Trang 21Sau đó, click vào “Open file” để mở tập tin dữ liệu cần chạy giải thuật
H4nh 5 - Click "Open file" trong cửa sổ Weka Explorer
H4nh 6 - Giao diện chọn bộ dữ liệu để chạy giải thuật
Trang 22Sau khi chọn bộ dữ liệu xong sẽ xuất hiện giao diện như hình bên dưới.
H4nh 7 - Giao diện sau khi chọn bộ dữ liệu
Sau đó, ta click qua “Classify” rồi click vào nút Choose
H4nh 8 - Giao diện cửa sổ Classify
Trang 23Click vào nút choose → classifiers → trees → j48
H4nh 9 - Giao diện chọn thuật toán
Sau đó click vào nút Start để chạy giải thuật
H4nh 10 - Click vào nút start để chạy giải thuật
Trang 24Sau khi click nút Start xong sẽ xuất hiện giao diện như bên dưới.
H4nh 11 - Giao diện sau khi nhấn nút Start
Result list hiện ra sau đó nháy chuột phải vào result list vừa hiện ra và chọn
visualize trees
Trang 2524Kết quả thu được như hình bên dưới.
H4nh 13 - Giao diện kết quả chạy thuật toán
Trang 26IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
C4.5 là một phương pháp học máy được sử dụng rộng rãi để tạo ra cây quyếtđịnh dựa trên các đặc trưng của dữ liệu Thuật toán C4.5 có thể áp dụng cho nhiều bàitoán khác nhau, đặc biệt là trong lĩnh vực phân loại và dự đoán
Các bước của thuật toán C4.5 bao gồm chọn thuộc tính quan trọng nhất, tách dữliệu thành các tập con dựa trên thuộc tính đó, xây dựng cây quyết định và cắt tỉa câyquyết định để tránh quá khớp dữ liệu
Thuật toán C4.5 có nhiều ưu điểm, bao gồm khả năng xử lý dữ liệu phức tạp, độchính xác cao và khả năng giải thích kết quả phân loại Tuy nhiên, nó cũng có nhượcđiểm như không xử lý tốt các giá trị bị thiếu hoặc nhiễu trong dữ liệu, dễ bị quá khớp
dữ liệu và thời gian huấn luyện có thể lâu đối với các tập dữ liệu lớn và phức tạp
Do đó, khi sử dụng thuật toán C4.5 hoặc bất kỳ thuật toán học máy nào khác,cần xem xét cẩn thận những ưu điểm và nhược điểm của nó, và áp dụng phù hợp vớibối cảnh sử dụng và loại dữ liệu