Phân lớp dữ liệu: - Phân lớp dữ liệu là kĩ thuật đựa trên tập huấn luyện, giá trị hay là nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu mới.. - Phân
Trang 1TRUONG DAI HOC GIAO THONG VAN TAI KHOA CONG NGHE THONG TIN
BAO CAO BAI TAP LON
Môn: Khai Phá Dữ Liệu
DE TAI: PHAN LOAI DU LIEU VỚI CÂY QUYẾT ĐỊNH
(DECISION TREE - C4.5)
Giảng viên hướng dẫn : Nguyễn Quốc Tuấn
NHÓM 12 Danh sách thành viên:
] Hoàng Công Toàn 201210367
2 Hoàng Trường Giang 201245624
3 Vuong Hoang Hai 201200109 4 Khong Van Viét Anh | 201200010 5 Vũ Thế Điều 201200082
Trang 2
MUC LUC
IL TONG QUAN VE PHAN LOP DU’ LIEU cccsssssccccccsccscccccsssccscecscsseeed
Trang 3I TONG QUAN VE PHAN LOP DU LIEU
1 Phân lớp dữ liệu: - Phân lớp dữ liệu là kĩ thuật đựa trên tập huấn luyện, giá trị hay là nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu mới
- Mục tiêu của phương pháp phân lớp là dự đoán chính xác nhãn lớp của dữ liệu mới, chưa được nhìn thấy
- Đây là một nhiệm vụ quan trọng trong khai thác đữ liệu vì nó cho phép các tổ chức đưa ra quyết định dựa trên dữ liệu
- Phân lớp đữ liệu là quá trình gồm 2 bước:
Quá trình học: xây dựng mô hình phân lớp Quá trình phân lớp: sử dụng mô hình phân lớp đề dự đoán nhãn lớp cho đữ liệu nhất định
2 Các thuật toán phân lớp: - Các thuật toán thường được sử dụng dé phân lớp dữ liệu: Phân lớp với cây quyết định
Phân lớp véi Naive Bayesian Phân lớp với k phan tr gan nhat (K-nearest Neighbor) Phân lớp với mạng neural (Neural Network)
Phân lớp với máy vector hỗ trợ (SVM)
3 Phân lớp dữ liệu với cây quyết định: - Cây quyết định 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 các dãy luật Cho đữ liệu về các đối tượng gồm các thuộc tính cùng với lớp 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 - Phân lớp dữ liệu bằng cây quyết định là một hình thức phân tích đữ liệu nhằm đưa ra một mô hình cây phân cấp có cấu trúc đề phân lớp các đối tượng quan trọng dựa trên một dãy luật được sinh ra
- Cách thức phân loại của cây quyết định:
Cho một bộ dữ liệu mới, x e X, chưa biết nhãn lớp liên quan
Trang 4® Các giá trị thuộc tính của bộ dữ liệu đó được kiểm tra dựa trên cây quyết định Một con đường là được truy tìm từ nút gốc tới nút lá, nút này chứa dự đoán lớp cho bộ đữ liệu đó
- Ưu điểm và nhược điểm của phương pháp phân lớp với cây quyết định:
® Ưu điểm:
o_ Mô hình sinh ra các quy tắc đễ hiểu cho người đọc, tạo ra bộ luật với mỗi nhánh lá là một luật của cây
Dữ liệu đầu vào có thê là là đữ liệu missing, không cần chuẩn hóa
Có thê làm việc với cả dữ liệu danh nghĩa hoặc liên tục
Tốn nhiều chi phí xây dựng
Dễ xảy ra lỗi khi có quá nhiều lớp
® C4.5: Một cải thiện của ID3 (R Quinlan, 1993) - ID3, C4.5 và CART áp dụng cách tiếp cận tham lam trong đó cây quyết định được xây dựng theo cách phân chia và chính phục đệ quy từ trên xuống
- Thuật toán triển khai cây quyết định cơ bản: e Dau vao:
©_ Phân vùng dữ liệu D, đó là một tập hợp các bộ dữ liệu huấn luyện và nhãn lớp tương ứng của chúng
attribute list- danh sách các thuộc tinh Attribute selection method- mét quy trinh để xác định tiêu chí chia đữ liệu "tốt nhất" đề phân chia các bộ đữ liệu thành các lớp Tiêu chí này bao gồm một thuộc tính phân chia và, có thể là một điểm phân chia hoặc một tập hợp phân chia
e Đầura: o_ Một cây quyết định
- Pseudo code cho thuật toán cây quyết định: (1) create a node N;
(2) if tuples in D are all of the same class, C, then (3 return N as a leaf node labeled with the class C;
4) if attribute list is empty then (5 return N as a leaf node labeled with the majority class in D; // majority voting (6) apply Attribute selection method(D, attribute list) to find the “best” splitting criterion;
) ) ) ) ) )
4
Trang 5(7) (8) (9)
label node N with splitting criterion; if splitting attribute is discrete-valued and
multiway splits allowed then // not restricted to binary trees attribute list — attribute list — splitting attribute; // remove splitting attribute (10)for each outcome j of splitting criterion
(11 (12 (13 (14
// partition the tuples and grow subtrees for each partition let Dj be the set of data tuples in D satisfying outcome J; // a partition if Dj is empty then
attach a leaf labeled with the majority class in D to node N; else attach the node returned by Generate decision tree(Dj , attribute list) to node N; endfor
Nếu chúng ta chia D thành các phân vùng nhỏ hơn theo kết quả của tiêu chí phân chia thì lý tưởng nhất là mỗi phân vùng sẽ thuần túy (nghĩa là tất cả các bộ dữ liệu rơi vào một phân vùng nhất định sẽ thuộc cùng một lớp)
Có ba thước đo lựa chọn thuộc tính phổ biến: information gain, gain ratio, va Gini index
IL THUAT TOÁN C4.5
1 M6 ta thuat toan: - Lich str phat trién:
La sy phat trién tir CLS và ID3 ID3 (Quinlan, 1979)- | hé thong don gian ban dau chita khoang 600 dòng lệnh Pascal
Năm 1993, J Ross Quinlan phát triển thành C4.5 với 9000 đòng lệnh C - Thuật toán C4.5 là cải tiễn so với thuật toán ID3, trong đó C biểu thị thuật toán được viết bằng ngôn ngữ C và 4.5 biểu thị phiên bản của thuật toán
- Tiêu chi phân chia được sử dụng bởi C4.5 là mức tăng thông tin được chuẩn hoá (Gain RATIO) thay vì Gain của ID3.Thuộc tính có mức tăng thông tin chuân hoá cao nhất được chọn đề đưa ra quyết định Thuật toán sau đó lặp lại trên các danh sách con được phân vùng
- Các bước triển khai thuật toán C4.5: Cho phân vùng dữ liệu D, là tập huấn luyện gồm các bộ đữ liệu được gắn nhãn lớp Giả sử thuộc tính nhãn lớp có k giá trị riêng biệt xác định k lớp riêng biệt, c1 (với 1 =
Trang 61 k) Giả sử D,c¡ là tập các bộ dữ liệu thuộc lớp c¡ trong D Đặt |D| và |D,ci | 1an lwet biểu thị số bộ dữ liệu trong D va D,ci
Thông tin dự kiến cần thiết để phân loại một bộ dữ liệu trong D được tính:
Info(D) = — » pilog, (pi)
Gain(A) = Info(D) — Info,(D)
C4.5, phiên bản kế thừa của ID3, sử dụng phần mở rộng đề tăng thông tin được gọi là
Trang 7
- Chúng ta sẽ tạo cây quyết định từ bảng trên sử dụng thuật toán C4.5 - Trước tiên chúng ta lựa chọn cột Decision là cột cân nghiên cứu Chúng ta có 14 mau và 9 mầu chọn Yes, 5 mẫu chọn No:
Info(D) = © - p([) log,p(T) =~ pQes) log, pQes) — p(No) log.p(No)
Trang 8GainRatio(Outlook ) = 0.155
- Thuộc tinh Humidity:
Gain (Humidity) =0.101 GainRatio( Humidity) =0.107
- ThuGc tinh Temperature:
Gain Temperature) =0.113 GainRatio (Temperature) = 0.305
Trang 9- Sau khi tính xong, ta có thé dùng thuộc tính có Gain hoặc GainRATIO lớn nhất đề làm root của cây quyết định
- Ở đây với thuật toán C4.5, ta chọn thuộc tính Temperature làm root vì có
8 Sunny No Yes 'Weak No 11 Sunny No No Strong Yes 1 Sunay Yes Yes Weak No
s Em }e he = Nes
4 Rain No Yes Weak Yes
10 Rain No No Weak Yes
14 Rain No No Strong No
3 Overcast No No Weak Yes
7 Overcast No No Strong Yes 12 Overcast No Yes Strong Yes
13 Overcast No No Weak Yes
HI UNG DUNG
1 Sử dụng thuật toán cây quyết định C4.5 để dự đoán thời tiết: - Dự báo thời tiết là một công cụ quan trọng trong đời sống hàng ngày và đóng vai trò quyết định trong nhiều lĩnh vực Thuật toán từ dữ liệu thời tiết cũ để tạo cây quyết định dự đoán về thời tiết trong tương lai
2 Nguồn dữ liệu: https://Awww.kaggle.com/datasets/ananthr1/weather-prediction
- Mô tả nguồn dữ liệu: Gồm 6 thuộc tính và 1461 bản phi
Trang 10Các thuộc tinh: 1) date: ngày 2) precipitation: lwong mua 3) temp_ max: nhiệt độ cao nhất 4) temp_ min: nhiệt độ thấp nhất 5) wind: suc g1ó
6) weather: thoi tiét 3 Cách thức thực hiện: - Sử dụng Weka đề phân lớp - Weka là một phần mềm mã nguồn médo Ian H Witten [10] phat triển dé dùng cho học máy và khai thác dữ liệu Weka được phát triển và viết bằng ngôn ngữ Java Weka có thể được sử dụng trên các hệ điều hành khác nhau bao gồm Windows, MacOS va Linux
- Weka cung cấp cho người đùng một giao diện đồ họa thân thiện đề xây dựng các mô hình học máy, khám phá dữ liệu, tiền xử lý dữ liệu và thực hiện các tác vụ khai thác đữ liệu khác
- Trong Weka, thuật toán C4.5 được triển khai dưới tên gọi là J48, và có thé str dung nó để xây dựng mô hình cây quyết định
- Các bước thực hiện: Mở Weka và chọn Open file , sau đó chọn file dữ liệu:
Preprocess Classify Cluster Associate Selectattributes Visuallze
Open URL Open D8 Generate Edit Save © Open x Apply
Instan 1461 0 (0%)
Attributes ‘1D Activate AIO Tools v3.1.3 - [NATUTOOL-COM Invoke options dialog Weight
AI # bulxla ®s cás 1 No Gv b
date #$ KoI precipita Tl Mini Project 23-24 4
4 ‘MB Oracle 4` temp_mi 4 ‘a st O sb-admin-2-gh-pages
wind a 6 weather
.2023-1693019382727.csv
Visualize All
File Name: seattle-weather.csv
Files of Type: CSV data files (*.csv)
101 — > aaa! Status
OK og Z.® x0
10
Trang 112 Chon muc Classify, Trong tab "Classify", chon "trees" Chọn "J48" từ danh sách các thuật toán
bayes juild model: 0.08 seconds functions
lazy cross-valida’ meta
mise rules ified Instances 1240 84.8734 %
trees ssified Instances 221 15.1266 %
DecisionStump 0.7338
led error 0.2259
LMT te error 39.6943 $ ( Class for generating a pruned or unpruned C4
Re 5 decision tree, For more information, see
RE Ross Quinlan (1993) C4.5: Programs for Machine Learning Morgan Kaufmann Publishers, San Mateo, CA CAPABILITIES
Class Binary class, Missing class values, Nominal class Attributes Binary attributes, Date attributes, Empty nominal attributes, Missing values, Nominal attributes, Numeric attributes, Unary attributes Interfaces Drawable, PartitionGenerator, Sourcable, WeightedinstancesHandler
Additional Minimum number of instances: 0
Coe |P OF a= 3 01 b=
1 0 633 0 61 c= 0 14 9 12 0 1 d = snow
(Nom) weather
Start Result list (right-click for options)
01:22:24 - trees.J48
Status
Nhắn Start để chạy thuật toán và hiển thị kết quả
Associate Select attributes Visualize Classifier output
ime taken to build model: 0.08 seconds
221 Incorrectly Classified Instances
Kappa statis’
Mean absolute error
Root mean squared error 0.2259 Relative absolute error 39.6943 % Root relative s 64.1265 % Total Number of Instances 1461
aoe < as 0 0Ị
0 | c= 12 ¡I đ~
I
94.0734 $ F-Measure MCC ROC
-0,007 0,691 0,916
03 0,020
sun % snow 0,131 fog 0,712
Log ase
4 Nhap chudt phai vao model va chon “Visualize tree” đề xem cây quyết định được tạo
ra
11
Trang 124 Kết quả: - Ta có cây quyết định sau được sinh ra đề dự đoán về thời tiết:
a ee temp_max snow (12.0) <= 3.3 >33
snow (3.0) rain (17.0/4.0)
12