Phân lớp dữ liệu:- Phân lớp dữ liệu là kĩ thuật dự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 t
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
-
-BÁO CÁO BÀI TẬP LỚN Môn: Khai Phá Dữ Liệu
ĐỀ TÀI: PHÂN LOẠI DỮ LIỆU 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:
-
-STT Họ và tên Mã sinh viên
1 Hoàng Công Toàn 201210367
2 Hoàng Trường Giang 201245624
3 Vương Hoàng Hải 201200109
4 Khổng Văn Việt Anh 201200010
5 Vũ Thế Điều 201200082
Trang 2MỤC LỤC
I TỔNG QUAN VỀ PHÂN LỚP DỮ LIỆU 3
1 Phân lớp dữ liệu: 3
2 Các thuật toán phân lớp: 3
3 Phân lớp dữ liệu với cây quyết định: 3
II THUẬT TOÁN C4.5 5
1 Mô tả thuật toán: 5
2 Ví dụ: 6
III ỨNG DỤNG 9
1 Sử dụng thuật toán cây quyết định C4.5 để dự đoán thời tiết: 9
2 Nguồn dữ liệu: 9
3 Cách thức thực hiện: 10
4 Kết quả: 12
2
Trang 3I TỔNG QUAN VỀ PHÂN LỚP DỮ LIỆU
1 Phân lớp dữ liệu:
- Phân lớp dữ liệu là kĩ thuật dự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ự đố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 dữ 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 dữ 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ự đốn nhãn lớp cho dữ liệu nhất
định
2 Các thuật tốn phân lớp:
- Các thuật tốn thường được sử dụng để phân lớp dữ liệu:
Phân lớp với cây quyết định
Phân lớp với Nạve Bayesian
Phân lớp với k phần tử gần nhất (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 dữ 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ự đố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 dữ 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 X , chưa biết nhãn lớp liên quan.∈
Trang 4Cá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ộ dữ
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 dễ 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
o Dữ liệu đầu vào có thể là là dữ liệu missing, không cần chuẩn hóa
o Có thể làm việc với cả dữ liệu danh nghĩa hoặc liên tục
o Có khả năng làm việc với dữ liệu lớn
Nhược điểm:
o Tốn nhiều chi phí xây dựng
o Dễ xảy ra lỗi khi có quá nhiều lớp
o Mô hình cây quyết định phụ thuộc rất lớn vào dữ liệu của bạn
- Các thuật toán thường được dùng để triển khai cây quyết định:
CART: Classification and regression trees (L Breiman et al., 1984)
ID3: Iterative Dichotomiser 3 (R Quinlan, 1986)
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à chinh phục đệ quy từ trên xuống
- Thuật toán triển khai cây quyết định cơ bản:
Đầu vào:
o 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
o attribute list- danh sách các thuộc tính
o Attribute selection method- một quy trình để xác định tiêu chí chia dữ liệu "tốt nhất"
để phân chia các bộ dữ 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
Đầu ra:
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) label node N with splitting criterion;
(8) if splitting attribute is discrete-valued and
multiway splits allowed then // not restricted to binary trees
(9) attribute list ← attribute list − splitting attribute; // remove splitting attribute
(10)for each outcome j of splitting criterion
// partition the tuples and grow subtrees for each partition
(11) let Dj be the set of data tuples in D satisfying outcome j; // a partition
(12) if Dj is empty then
(13) attach a leaf labeled with the majority class in D to node N;
(14) else attach the node returned by Generate decision tree(Dj , attribute list) to node N;
endfor
(15)return N;
- Về biện pháp lựa chọn thuộc tính để xây dựng cây quyết định:
Biện pháp lựa chọn thuộc tính là một phương pháp phỏng đoán để chọn tiêu chí phân
tách “tốt nhất” để phân tách một phân vùng dữ liệu nhất định, D, của các bộ dữ liệu
huấn luyện được gắn nhãn lớp thành các lớp riêng lẻ
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, và Gini
index
II THUẬT TOÁN C4.5
1 Mô tả thuật toán:
- Lịch sử phát triển:
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 Ross Quinlan phát triển thành C4.5 với 9000 dò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ộ dữ 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, ci (với i =
Trang 61 k) Giả sử D,ci là tập các bộ dữ liệu thuộc lớp ci trong D Đặt |D| và |D,ci | lần lượt
biểu thị số bộ dữ liệu trong D và 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:
Giá trị thông tin thêm để đạt được phân loại chính xác được tính:
Thông tin đạt được được định nghĩa là sự khác biệt giữa cầu thông tin ban đầu
(tức là chỉ dựa trên tỷ lệ các lớp) và yêu cầu mới (tức là thu được sau khi phân vùng
trên A) Đó là:
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à
tỷ lệ khuếch đại
Nó áp dụng một kiểu chuẩn hóa để thu được thông tin bằng cách sử dụng giá trị “tách
thông tin” được xác định tương tự với InfoA(D):
Tỉ lệ GainRatio được tính như sau:
Thuộc tính có tỷ lệ khuếch đại lớn nhất được chọn làm thuộc tính phân tách cây
2 Ví dụ:
- Có dữ liệu mô tả về mối quan hệ giữa các yếu tố thời tiết với việc đưa ra quyết định
có chơi tennis ở ngoài trời hay không trong 14 ngày
6
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 mẫu
và 9 mẫu chọn Yes, 5 mẫu chọn No:
- Thuộc tính Wind
Trang 8- Thuộc tính Outlook:
- Thuộc tính Humidity:
- Thuộc tính Temperature:
- Ta có bảng sau:
8
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ó
GainRATIO lớn nhất
- Tính tương tự các bước trên cuối cung ta có cây quyết định:
III ỨNG DỤNG
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://www.kaggle.com/datasets/ananthr1/weather-prediction
- Mô tả nguồn dữ liệu: Gồm 6 thuộc tính và 1461 bản ghi
Trang 10Các thuộc tính:
1) date: ngày
2) precipitation: lượng mưa
3) temp_max: nhiệt độ cao nhất
4) temp_min: nhiệt độ thấp nhất
5) wind: sức gió
6) weather: thời 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] phát triển để 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 và
Linux
- Weka cung cấp cho người dù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 dữ
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ể sử dụng
nó để xây dựng mô hình cây quyết định
- Các bước thực hiện:
1 Mở Weka và chọn Open file , sau đó chọn file dữ liệu:
10
Trang 112 Chọn mục Classify, Trong tab "Classify", chọn "trees" trong danh sách "Choose".
Chọn "J48" từ danh sách các thuật toán
3 Nhấn Start để chạy thuật toán và hiển thị kết quả
4 Nhấp chuột phải vào model và chọn “Visualize tree” để xem cây quyết định được tạo
ra