Nhiều thuật toán học máy được ứng dụng trong thực tế mang lại hiệu quả trong các lĩnh vực như: nhận dạng chữ viết tay, nhận dạng mặt người, máy tìm kiếm,… Các thuật toán được dùng phổ bi
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU VÀ TỐI ƯU CÁC THAM SỐ TRONG
THUẬT TOÁN RANDOM FOREST
Giáo viên hướng dẫn: Th.S PHẠM THỊ KIM NGOAN Sinh viên thực hiện: NGUYỄN THÀNH ĐÔ
Lớp: 53CNTT MSSV: 53130019
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU VÀ TỐI ƯU CÁC THAM SỐ TRONG
THUẬT TOÁN RANDOM FOREST
Giáo viên hướng dẫn: Th.S PHẠM THỊ KIM NGOAN Sinh viên thực hiện: NGUYỄN THÀNH ĐÔ
Lớp: 53CNTT MSSV: 53130019
Tháng 6/2015
Trang 3NHẬN XÉT KẾT QUẢ ĐỒ ÁN
Họ và tên sinh viên:
Mã số sinh viên: ……… Lớp: ……… Hệ:………
Khoa Công nghệ Thông tin, Trường Đại học Nha Trang Nội dung đồ án:
Đánh giá kết quả đồ án:
……… ngày … tháng … năm ……
Giáo viên hướng dẫn
Trang 4LỜI MỞ ĐẦU
Trong những năm gần đây, các lĩnh vực nghiên cứu của ngành Công nghệ thông tin phát triển hết sức mạnh mẽ, nhiều thuật toán ra đời với nhiều hướng nghiên cứu khác nhau Trong đó học máy là một hướng nghiên cứu đã xuất hiện từ lâu và đạt rất nhiều thành tựu Nhiều thuật toán học máy được ứng dụng trong thực tế mang lại hiệu quả trong các lĩnh vực như: nhận dạng chữ viết tay, nhận dạng mặt người, máy tìm kiếm,… Các thuật toán được dùng phổ biến như: Cây quyết định, Mạng Nơ-ron nhân tạo, K-Mean, Random Forest Mỗi thuật toán đều có một số tham số và các tham số này ảnh hưởng rất lớn đến kết quả của thuật toán, vì vậy việc tối ưu các tham số là rất quan trọng
và cần thiết
Trong đồ án này tôi tìm hiểu và tối ưu một số tham số của thuật toán Random Forest, thực nghiệm trên ứng dụng nhận dạng chữ viết tay rời rạc và cài đặt ứng dụng ước lượng tuổi từ gương mặt bằng thuật toán Random Forest
Em cũng xin chân thành cảm ơn cô Phạm Thị Kim Ngoan đã tận tình hướng dẫn em hoàn thành đồ án này
Trang 5MỤC LỤC
CHƯƠNG 1 TỔNG QUAN 8
1.1 Giới thiệu học máy 8
1.2 Giới thiệu thuật toán Random Forest 8
1.3 Vấn đề tối ưu tham số trong Random Forest 9
1.4 Ứng dụng Random Forest uớc lượng tuổi từ gương mặt 9
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 10
2.1 Thuật toán Random Forest 10
2.1.1 Định nghĩa 10
2.1.2 Mô hình thuật toán 10
2.1.3 Thuật toán 11
2.1.4 Ví dụ minh họa 11
2.1.5 Đặc điểm của Random Forest 12
2.2 Phương pháp lấy mẫu Bootstrap 13
2.2.1 Giới thiệu Bootstrap 13
2.2.2 Thuật toán Bootstrap 14
2.2.3 Đặc điểm của Bootstrap 14
2.2.4 Bootstrap trong Random Forest 15
2.3 Cây phân lớp 15
2.3.1 Giới thiệu 15
2.3.2 Một số thuật toán xây dựng cây quyết định 17
2.3.3 Đặc điểm của Cây quyết định 17
2.4 Một số số đo chọn lựa thuộc tính 18
2.4.1 Độ lợi thông tin( Information Gain ) 18
2.4.2 Tỉ lệ độ lợi( Gain Ratio ) 20
2.4.3 Gini Index( Gini ) 21
2.4.4 Nhận xét 22
CHƯƠNG 3 TỐI ƯU THAM SỐ TRONG RANDOM FOREST 24
3.1 Tối ưu số cây 24
3.2 Lựa chọn số đo lựa chọn thuộc tính 26
3.3 Lựa chọn số thuộc tính phân chia 27
3.4 Chương trình minh họa thuật toán Random Forest 29
Trang 6CHƯƠNG 4 ỨNG DỤNG RANDOM FOREST ƯỚC LƯỢNG TUỔI TỪ
GƯƠNG MẶT 31
4.1 Mô tả ứng dụng 31
4.1.1 Chức năng 31
4.1.2 Môi trường cài đặt 31
4.1.3 Hoạt động 32
4.2 Cơ sở ước lượng tuổi từ gương mặt 32
4.2.1 Các đặc trưng trên ảnh gương mặt 33
4.2.2 Cơ sở tri thức 34
4.3 Thuật toán dò gương mặt trong ảnh 34
4.3.1 Đặc trưng Haar like 35
4.3.2 Thuật toán AdaBoost 36
4.4 Ước lượng tuổi dùng Random Forest 38
4.5 Đánh giá ứng dụng 38
4.5.1 So sánh với ứng dụng tương tự 38
4.5.2 Độ chính xác ứng dụng khi thay đổi các tham số 39
4.5.3 Nhận xét 40
4.6 Khó khăn ước lượng tuổi từ gương mặt 41
4.6.1 Tập huấn luyện 41
4.6.2 Đặc trưng gương mặt 41
4.6.3 Chất lượng ảnh 41
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
5.1 Kết luận 42
5.2 Hướng phát triển 42
Trang 7DANH MỤC BẢNG, SƠ ĐỒ, HÌNH
Bảng 2.1: Tập dữ liệu minh họa thuật toán Random Forest 11
Bảng 2.2: Bảng dữ liệu cho cây quyết định 16
Bảng 2.3: Bảng dữ liệu ví dụ Information Gain 19
Bảng 4.1: Bảng so sánh kết quả ứng dụng và How-old.net 38
Bảng 4.2: Bảng kết quả ứng dụng với số cây khác nhau 39
Bảng 4.3: Bảng kết quả ứng dụng với số thuộc tính lựa chọn khác nhau 40
Bảng 4.4: Bảng tần xuất độ tuổi trong FG-NET 40
Biểu đồ 3.1: Kết quả thực nghiệm số cây 25
Biểu đồ 3.2: Biểu đồ kết quả thực nghiệm số đo lựa chọn thuộc tính 27
Biểu đồ 3.3: Biểu đồ kết quả thực nghiệm lựa chọn thuộc tính phân chia 28
Sơ đồ 4.1: Sơ đồ hoạt động ứng dụng ước lượng tuổi từ gương mặt 32
Hình 2.1: Mô hình thuật toán Random Forest 10
Hình 2.2: Hình 2 cây quyết định trong rừng 12
Hình 2.3: Hình ảnh Bootstrap trong Random Forest 15
Hình 2.4: Hình ảnh Cây quyết định 16
Hình 3.1: Hình ảnh các ký tự trong tập MNISTrain 25
Hình 3.2: Hình ảnh chương trình minh họa Random Forest 29
Hình 4.1: Hình ảnh minh họa ứng dụng ước lượng tuổi từ gương mặt 31
Hình 4.2: Hình ảnh các đặc trưng gương mặt 33
Hình 4.3: Hình ảnh minh họa dò tìm gương mặt trong ảnh 34
Hình 4.4: Hình ảnh cửa sổ 10x10 36
Hình 4.5: Hình ảnh kết quả ứng dụng sai khác với cùng một người 41
Trang 8CHƯƠNG 1 TỔNG QUAN 1.1 Giới thiệu học máy
Học máy là ngành khoa học về máy tính nhằm nghiên cứu, phát triển các thuật toán, thuật giải với mục đích đưa tri thức vào máy tính, cụ thể hơn là những thuật giải dựa trên các tập dữ liệu và rút trích các quy luật từ chúng, làm cho máy tính có thể giải được các bài toán mà các thuật toán bình thường khó có thể thực hiện như tìm kiếm, nhận dạng, dự đoán Các thuật toán học máy được phân loại theo kết quả của thuật toán Các loại thuật toán thường sử dụng như: Học có giám sát, học không giám sát, học nửa giám sát, học tăng cường Học máy ngày càng phát triển và có nhiều thuật toán ra đời như: Mạng nơ-ron nhân tạo, Cây quyết định, K-Mean, Máy vector hỗ trợ
Học máy có hiện nay được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau như: máy truy tìm dữ liệu, chuẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động rô-bốt
Thuật toán Random Forest là một trong các thuật toán học máy ra đời muộn hơn các thuật toán học máy khác, chính vì vậy thuật toán Random Forest kế thừa được ưu điểm các thuật toán khác đồng thời khắc phục được hạn chế về mặt số lượng dữ liệu cũng như độ phức tạp của dữ liệu
1.2 Giới thiệu thuật toán Random Forest
Thuật ngữ Random Forest được xuất hiện lần đầu tiên vào năm 1995, sau đó kết hợp với kỹ thuật lựa chọn các thuộc tính ngẫu nhiên của Leo Breiman năm 1996 Năm 2001 Leo Breiman xây dựng thuật toán Random Forest có bổ sung thêm một lớp ngẫu nhiên
để phân lớp Ngoài việc mỗi cây sử dụng các mẫu dữ liệu khác nhau, rừng ngẫu nhiên được thay đổi để xây dựng các cây phân loại và hồi quy khác nhau Các gói thư viện cài đặt thuật toán Random Forest đầu tiên được xây dựng bằng ngôn ngữ Fortran bởi Leo Breiman và Cutler
Random Forest được mô hình hóa như tập các cây phân lớp Tuy nhiên Random Forest sử dụng các mẫu ngẫu nhiên cho các cây cũng như việc chọn lựa thuộc tính ngẫu nhiên khi phân chia cây Thuật toán Random Forest tỏ ra chính xác và nhanh hơn khi huấn luyện trên không gian dữ liệu lớn với nhiều thuộc tính, việc sử dụng kết quả dự đoán của cả tất cả các cây trong rừng khi phân lớp hoặc hồi quy giúp cho kết quả thuật toán chính xác hơn
Trang 9Thuật toán Random Forest được ứng dụng trong các tác vụ phân lớp hoặc hồi quy
Về phân lớp như nhận dạng chữ viết tay rời rạc, về ứng dụng hồi quy như ước lượng tuổi từ hình ảnh gương mặt Các ứng dụng sẽ được trình bày chi tiết trong chương 3 và chương 4 của đồ án Để cải thiện hiệu quả thuật toán trên ứng dụng, ngoài việc chuẩn
bị tập mẫu phong phú thì cũng cần lựa chọn một số tham số phù hợp để nâng cao độ chính xác của ứng dụng
1.3 Vấn đề tối ưu tham số trong Random Forest
Đối với các thuật toán nói chung và Random Forest nói riêng, việc tối ưu các tham
số là quan trọng và cần thiết Khi thay đổi giá trị hoặc cách tính giá trị một số tham số trong thuật toán có thể làm thay đổi độ chính xác, thời gian thực thi cũng như tài nguyên
hệ thống của thuật toán Như thuật toán Mạng Nơ-ron nhân tạo, nếu thay đổi ngưỡng lỗi cao sẽ làm tăng độ chính xác như cũng làm thời gian huấn luyện kéo dài
Random Forest cũng có một số tham số khi huấn luyện, vậy nên việc lựa chọn tham
số sao cho thuật toán đạt hiệu quả cao và tốt nhất là rất cần thiết khi huấn luyện cũng như đưa vào ứng dụng cụ thể
1.4 Ứng dụng Random Forest uớc lượng tuổi từ gương mặt
Đối với con người, việc ước lượng tuổi từ hình ảnh gương mặt có thể dễ dàng nhưng đối với máy tính thì đó là một tác vụ khó khăn Các thuật toán học máy ra đời có thể giúp máy tính thực hiện các tác vụ khó khăn như trên
Thuật toán Random Forest với ứng dụng hồi quy có thể ước lượng tuổi từ hình ảnh gương mặt dựa vào các đặc trưng trên hình ảnh gương mặt đó Việc xác định gương mặt và tuổi từ hình ảnh gương mặt đó có thể ứng dụng trong các vấn đề an ninh như: xác định có người lớn tuổi trong phòng mẫu giáo chỉ có gắn máy quay hoặc xác định tuổi của một người trong ảnh
1 3
Trang 102
CHƯƠNG 2
CƠ SỞ LÝ THUYẾT 2.1 Thuật toán Random Forest
2.1.1 Định nghĩa
Random Forest là thuật toán học máy dựa trên kỹ thuật lắp ghép, kết hợp các cây phân lớp Random Forest xây dựng cây phân lớp bằng cách lựa chọn ngẫu nhiên một nhóm nhỏ các thuộc tính tại mỗi nút của cây để phân chia cho mức tiếp theo của cây phân lớp Ngoài ra tập mẫu của mỗi cây cũng được lựa chọn ngẫu nhiên bằng phương pháp Bootstrap từ tập mẫu ban đầu Số lượng các cây phân lớp trong rừng là không hạn chế và thuật toán sử dụng kết quả dự đoán của tất cả cây trong rừng làm kết quả cuối cùng của thuật toán
2.1.2 Mô hình thuật toán
Random Forest
Hình 2.1: Mô hình thuật toán Random Forest
Trang 11Các kí hiệu:
Rừng ngẫu nhiên: Tập cây phân lớp
Phương pháp Bootstrap tạo tập huấn luyện cho cây thứ i
Cây phân lớp thứ i trong rừng
Nút trong cây phân lớp
2.1.3 Thuật toán
Thuật toán Random Forest cho phân lớp và hồi quy
A Huấn luyện:
Cho tập huấn luyện S
Đối với mỗi cây trong rừng N cây
- Xây dựng Cây phân lớp T k với tập S k , S k được lấy Bootstrap từ S
- Tại mỗi nút của cây, chọn thuộc tính tốt nhất để phân chia cây từ tập thuộc
tính F i được chọn ngẫu nhiên trong tập thuộc tính F
- Mỗi cây được xây dựng đến độ sâu tối đa(không cắt nhánh)
B Dự đoán: Thuật toán dự đoán nhãn lớp cho một đối tượng theo
Phân lớp: sử dụng kết quả số đông của các cây
Hồi quy: lấy giá trị trung bình kết quả tất cả các cây
Trang 12Với số cây là 2, số thuộc tính lựa chọn phân chia là 2, thuật toán thực hiện như sau:
Từ tập S, dùng Bootstrap lấy mẫu có hoàn lại xây dựng tập con Sk, với |Sk|= 4 được: S1gồm các bộ 1, 2, 3, 4; S2 gồm các bộ 1,4,3,5(theo thứ tự trong bảng)
Xây dựng 2 cây T1, T2 với các tập dữ liệu tương ứng S1, S2
Dự đoán nhãn lớp cho bộ X(1,0,1,0):
- Cây T1 cho X có giá trị nhãn lớp là 1
- Cây T2 cho X có giá trị nhãn lớp là 1
Vậy X (1,0,1,0) có nhãn lớp là 1 do có 2 cây cho giá trị 1 và 0 cây cho giá trị 0 nên giá trị 1 sẽ là kết quả cuối cùng vì số đông cây cho giá trị này
Nếu có nhiều nhãn lớp có cùng số cây cho ra thì có thể chọn bất kì nhãn lớp nào làm kết quả, thường chọn giá trị đầu tiên hoặc giá trị chiếm đa số trong tập mẫu D
2.1.5 Đặc điểm của Random Forest
a Ưu điểm:
- Thuật toán giải quyết tốt các bài toán có nhiều dữ liệu nhiễu, thiếu giá trị Do cách chọn ngẫu nhiên thuộc tính nên các giá trị nhiễu, thiếu ảnh hưởng không lớn đến kết quả
- Có những sự ước lượng nội tại như độ chính xác của mô hình phỏng đoán hoặc độ mạnh và liên quan giữa các thuộc tính(Out of bag)
- Dễ dàng thực hiện song song Thay vì một máy thực hiện cả thuật toán, ta có thể sử dụng nhiều máy để xây dựng các cây sau đó ghép lại thành rừng
Trang 13- Các sai số được giảm thiểu do kết quả của Random Forest được tổng hợp thông qua nhiều người học (Cây phân lớp)
- Việc chọn ngẫu nhiên tại mỗi bước trong Random Forest sẽ làm giảm mối tương quan giữa các người học trong việc tổng hợp các kết quả
- Lỗi chung của một rừng các cây phân lớp phụ thuộc vào lỗi riêng của từng cây trong rừng cũng như mối tương quan giữa các cây
b Hạn chế:
- Dữ liệu huấn luyện cần được đa dạng hóa và cân bằng về số nhãn lớp Việc không cân bằng nhãn lớp khiến kết quả dự đoán của thuật toán có thể lệch về số đông nhãn lớp
- Thời gian huấn luyện của rừng có thể kéo dài tùy số cây và số thuộc tính phân chia
c Out of bag
Random Forest sử dụng Bootstrap để tạo tập mẫu cho các cây Khi tập mẫu được
rút ra từ một tập huấn luyện của một cây với sự thay thế thì theo ước tính có khoảng 1/3 các phần tử không có nằm trong mẫu này Điều này có nghĩa là chỉ có khoảng 2/3 các phần tử trong tập huấn luyện tham gia vào trong các tính toán, và 1/3 các phần tử này được gọi là dữ liệu out-of-bag Dữ liệu out-of-bag được sử dụng để ước lượng lỗi tạo ra từ việc kết hợp các kết quả từ các cây tổng hợp trong Random Forest cũng như dùng để ước tính độ quan trọng thuộc tính Hơn nữa có thể sử dụng chính tập huấn luyện để kiểm thử mô hình từ thuật toán trước khi đưa vào ứng dụng
2.2 Phương pháp lấy mẫu Bootstrap
2.2.1 Giới thiệu Bootstrap
Bootstrap là tập hợp một số kỹ thuật phân tích dựa vào nguyên lý chọn mẫu có hoàn lại để ước tính các thông số trong thống kê Phương pháp Bootstrap do nhà thống kê học Bradley Efron thuộc đại học Stanford (Mĩ) phát triển từ cuối thập niên 1979 nhưng đến khi máy tính được sử dụng phổ biến thì phương pháp này mới trở thành phương pháp phổ biến trong phân tích thống kê và được ứng dụng rộng rãi trong rất nhiều lĩnh vực khoa học Boostrap được xem là phương pháp chuẩn trong phân tích thống kê và
đã làm nên một cuộc cách mạng trong thống kê vì có thể giải quyết được nhiều vấn đề
mà trước đây tưởng như không giải được
Trang 142.2.2 Thuật toán Bootstrap
Thuật toán Bootstrap lấy mẫu ngẫu nhiên có hoàn lại
Sử dụng tập mẫu ngẫu nhiên làm tập mẫu huấn luyện cho cây quyết định
Ví dụ: Giả sử có 15,000 bệnh nhân nghi ngờ bị nhiễm độc, cần xác định mẫu máu của
các bệnh nhân này Nếu lấy hết 15,000 đem đi xét nhiệm thì tốn kém và mất thời gian nên chỉ lấy 1,000 bệnh nhân làm đại diện cho cả 15,000 bệnh nhân
Cần lấy 1,000 mẫu từ 15,000 bệnh nhân bằng phương pháp Boostrap, ta tiến hành như sau:
Lặp 1,000 lần thao tác:
- Lấy ngẫu nhiên một bệnh nhân từ 15,000 bệnh nhân
- Ghi lại chỉ số bệnh nhân được chọn
- Đặt bệnh nhân vào lại 15,000 bệnh nhân
Cuối cùng có được là chỉ số của 1,000 bệnh nhân được chọn
Chú ý rằng trong cách chọn ngẫu nhiên có hoàn lại như trên, có thể có một số bệnh nhân được chọn hơn 1 lần
2.2.3 Đặc điểm của Bootstrap:
- Phương pháp chọn mẫu ngẫu nhiên có hoàn lại nhằm mục đích tạo ra nhiều mẫu ngẫu nhiên từ một mẫu, và qua cách chọn này, tập hợp những mẫu có thể đại diện cho một quần thể
- Bootstrap có thể cung cấp thông tin chi tiết về phân bố của số trung bình, khoảng tin cậy cũng như xác suất của số trung bình dựa trên một mẫu duy nhất
Trang 152.2.4 Bootstrap trong Random Forest
Trong Random Forest thuật toán Bootstrap được sử dụng để tạo mẫu ngẫu nhiên cho từng cây p Vậy mỗi cây sẽ có một tập mẫu ngẫu nhiên riêng biệt Ngoài ra còn sử dụng
để đánh giá nội tại của thuật toán(Out- of-bag)
- Các nút không phải nút lá là thuộc tính phân chia cây
- Giá trị ghi trên nhánh là giá trị phân chia tại thuộc tính nút trên
Sử dụng cây quyết định: Mỗi đường đi từ nút gốc đến lá là một luật, áp dụng luật thỏa
mãn cho một đối tượng để cho giá trị nhãn lớp của đối tượng đó
Ví dụ biểu diễn một cây quyết định cho việc xác định một người có mua máy tính không dựa vào các thuộc tính: ‘tuổi’, ‘là học sinh’ và ‘thu nhập’ với bảng dữ liệu bên dưới
Hình 2.3: Hình ảnh Bootstrap trong Random Forest
Trang 16Từ cây quyết định trên ta có các luật như:
- Nếu “Tuổi <= 30” và “ là học sinh = có” thì “mua máy tính” = ‘ không ’
- Nếu “Tuổi <= 30” và “ là học sinh = không” thì “mua máy tính” = ‘ có mua’
Để sử dụng cây quyết định trong phân lớp ta đặt đối tượng đó vào cây, áp dụng các luật
để xác định nhãn lớp
Ví dụ: xét cây quyết định trên và một đối tượng X(Tuổi = ‘32’, là học sinh = ‘không’,
thu nhập=’ cao’)
Như vậy theo cây quyết định trên ta có một luật:
Nếu “ Tuổi > 30 ” và “ thu nhập = cao ” thì mua máy tính = ‘ có mua’
Vậy X có giá trị nhãn lớp “ mua máy tính ” = ‘ có mua’ theo luật trên
Thuộc tính
STT
Tuổi Là học sinh Thu nhập Mua máy tính
Trang 172.3.2 Một số thuật toán xây dựng cây quyết định
Một số thuật toán thường được dùng để xây dựng cây quyết định như:
- ID3 (Iterative Dichotomiser 3): đề xuất bởi Quinlan năm 1980, sử dụng Information Gain để lựa chọn thuộc tính phân chia tại mỗi nút
- C4.5: mở rộng từ ID3 được Ross Quinlan đề xuất năm 1993, dùng Gain Ratio trong phân chia cây
- CART: (Classification and Regression Trees): Sử dụng chỉ số Gini để phân chia cây Các số đo Information Gain, Gain Ratio và Gini là các số đo lựa chọn thuộc tính Thuật toán ID3 xây dựng cây quyết định:
Thuật toán ID3
A Huấn luyện:
Cho tập huấn luyện S, thuộc tính nhãn lớp C, tập thuộc tính F
Tạo nút gốc cho cây
Nếu tất cả các bộ trong S có 1 giá trị tại C là P thì trả về nút gốc với giá trị P
Nếu F rỗng thì trả về nút gốc với giá trị chiếm đa số trong C
Chọn thuộc tính X có thông tin mong đợi tốt nhất
Đặt nút gốc là X
F=F-X (loại X khỏi tập F)
Với mỗi giá trị v trong X
- Thêm nhánh mới với nút gốc là v
- Xác định tập con D v với X = v
- Nếu D v rỗng thì thêm nhánh mới dưới nút gốc với một nút có giá trị phổ biến
nhất trong C ngược lại thêm nút mới dưới nút gốc và gọi đệ quy ID3(D v , C, F)
- Trả về nút gốc
B Dự đoán: trả về nhãn lớp của một đối tượng không có nhãn lớp
- Thực hiện đệ quy tại mỗi nút của cây với giá trị thuộc tính trên nút, đến giá trị nút
lá là giá trị nhãn lớp
2.3.3 Đặc điểm của Cây quyết định
Cây quyết định có một số đặc điểm sau:
- Việc chuẩn bị dữ liệu cho một cây quyết định là đơn giản Các kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ và loại bỏ các giá trị rỗng
Trang 18- Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị phân loại
- Có thể thẩm định một mô hình cây quyết định bằng các kiểm tra thống kê
- Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ ngắn để đưa ra quyết định dựa trên phân tích của cây quyết định
- Nhược điểm của cây quyết định là khó giải quyết được những vấn đề có dữ liệu phụ thuộc thời gian liên tục, dễ xảy ra lỗi khi có quá nhiều tính toán để xây dựng mô hình cây quyết định
Quá trình xây dựng cây quyết định sẽ chọn thuộc tính tốt nhất để phân nhánh cây, một thuộc tính gọi là tốt tùy vào số đo được sử dụng khi phân chia tập mẫu tại mỗi nút, các
số đo lựa chọn thuộc tính khi phân nhánh được trình bày trong mục 2.4
2.4 Một số số đo chọn lựa thuộc tính
Trong quá trình xây dựng cây phân lớp, cần chọn thuộc tính tốt nhất để phân chia cây Tại mỗi nút của cây cần chọn giá trị của thuộc tính tốt nhất để phân chia cây thành các nhánh
Một số độ đo được dùng trong các thuật toán xây dựng cây quyết định:
2.4.1 Độ lợi thông tin( Information Gain )
Là đại lượng dùng để chọn thuộc tính phân chia tập dữ liệu Thuộc tính chọn là thuộc tính có độ lợi thông tin lớn nhất
Cho D là tập dữ liệu N mẫu, mỗi mẫu có tập thuộc tính F, thuộc tính nhãn lớp C Thông tin mong đợi của tập D:
Độ lợi thông tin của A:
Gain(A) = Info(D) - InfoA(D)
Trang 19Nếu A có giá trị liên tục thì sắp xếp các giá trị trong A tăng dần, lấy giá trị trung bình của 2 giá trị liên tiếp trong A để tính Gain(A)
Ví dụ: Giả sử có tập dữ liệu D như bảng 2.3, tại nút đang xét cần chọn ra thuộc tính để phân nhánh theo độ đo Information Gain
Bảng 2.3: Bảng dữ liệu ví dụ Information Gain Thuộc tính
Sắp xếp bảng tăng theo các giá trị của thuộc tính 1
Thuộc tính STT
Tính Info(Thuộc tính 1 theo giá trị 1.25)
Giá trị 1.25 chia D thành 2 nửa là:
Trang 20Info(Thuộc tính 1 theo giá trị 1.25) = [ 1
Gain( thuộc tính 1 với 1.25) = 0.9183 – 0 = 0.9183
Gain( thuộc tính 1 với 2.0) = 0.9183 – 0.67= 0.2483
Chọn giá trị 1.25 làm giá trị phân chia cho thuộc tính 1, vì có Gain lớn hơn Gain của giá trị 2 Cũng có thể nhận thấy giá trị 1.25 chia tập D thành 2 nửa mà 2 nửa này ổn định hơn
2.4.2 Tỉ lệ độ lợi( Gain Ratio )
Mở rộng từ Infomation Gain, tuy nhiên có đưa vào thông tin chia tách
SplitInfoA(D) = − ∑ |𝐷𝑗|
|𝐷| × 𝑙𝑜𝑔2(|𝐷𝑗|
𝑣 𝑗=1Gain Ratio của thuộc tính A được tính :
GainRatio(A) = 𝐺𝑎𝑖𝑛(𝐴)
𝑆𝑝𝑙𝑖𝑡𝐼𝑛𝑓𝑜(𝐴)Tương tự như Info Gain, nếu thuộc tính A liên tục thì sắp xếp tăng dần, chọn giá trị trung bình làm giá trị phân chia rồi chọn giá trị tốt nhất
Trang 21Giống như Information Gain ta cần chọn thuộc tính có Gain Ratio lớn nhất để phân nhánh cây
Ví dụ: chọn giá trị thuộc tính có GainRatio lớn nhất để phân nhánh với dữ liệu tập D như bảng 2.3
GainRatio( thuộc tính 1 với 1.25) = 0.9183/0.9813 = 0.935799
GainRatio( thuộc tính 1 với 2.0) = 0.2483/0.9813 = 0.253032
Chọn 1.25 làm giá trị phân chia tốt nhất đối với thuộc tính 1
GainRatio( thuộc tính 2 với 1.5) = 0.2483/0.9813 = 0.253032
Vậy chọn thuộc tính 1 với giá trị 1.25 làm điểm phân nhánh
2.4.3 Gini Index( Gini )
Dùng đo độ không thuần khiết của một phép phân hoạch, khác với Gain và Gain Ratio, khi chọn thuộc tính tốt nhất, ta sẽ chọn thuộc tính với Gini Index bé nhất
Cho D là tập dữ liệu N mẫu, mỗi mẫu có tập thuộc tính F, thuộc tính nhãn lớp C Chỉ số Gini của tập D được tính bởi: