Đâ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 1v
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 2Hà 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 47 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 61.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 7Chươ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 8Hì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 10b 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 11Gain (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 12Hì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 13Step 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 15Bướ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
có
Trang 16IG(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 17Gain (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 182.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 19Chươ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 20Hì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 21Hì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 22Hì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