1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu và tối ưu hóa các tham số trong thuật toán ramdom forest

43 843 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,49 MB

Nội dung

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 1

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

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 3

NHẬ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 4

LỜ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 5

MỤ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 6

CHƯƠ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 7

DANH 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 8

CHƯƠ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 9

Thuậ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 10

2

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 11

Cá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 12

Vớ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 14

2.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 15

2.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 16

Từ 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 17

2.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 19

Nế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 20

Info(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 21

Giố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:

Ngày đăng: 01/04/2016, 11:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Đồng Thị Ngọc Lan, Nghiên cứu xây dựng phương pháp trích chọn thuộc tính nhằm tăng hiệu quả phân lớp đối với dữ liệu đa chiều, năm 2012 Sách, tạp chí
Tiêu đề: Nghiên cứu xây dựng phương pháp trích chọn thuộc tính nhằm tăng hiệu quả phân lớp đối với dữ liệu đa chiều
[2] Huỳnh Minh Trí, Tìm hiểu nâng cao hiệu quả nhận dạng chữ viết tay rời rạc dựa trên kỹ thuật lấy đặc trưng và phát triển ứng dụng, đồ án tốt nghiệp đại học, khoa Công nghệ thông tin, trường đại học Nha trang, năm 2014 Sách, tạp chí
Tiêu đề: Tìm hiểu nâng cao hiệu quả nhận dạng chữ viết tay rời rạc dựa trên kỹ thuật lấy đặc trưng và phát triển ứng dụng
[3] Huỳnh Tuấn Anh , Bài giảng Khai phá dữ liệu, khoa Công nghệ thông tin, trường đại học Nha trang, năm 2011 Sách, tạp chí
Tiêu đề: Bài giảng Khai phá dữ liệu
[4] Nguyễn Đình Cường, Xử lý ảnh, khoa Công nghệ thông tin, trường đại học Nha trang, năm 2011.Tiếng Anh Sách, tạp chí
Tiêu đề: Xử lý ảnh
[6] Eric Debreuve, An introduction to random forests, University Nice Sophia Antipolis / CNRS / InriaLabs: I3S / Inria CRI SA-M / iBV, 2011 Sách, tạp chí
Tiêu đề: An introduction to random forests
[7] JOHN MINGERS , An Empirical Comparison of Selection Measures for Decision- Tree Induction, School ofIndustrial and Business Studies, University of Warwick, Coventry CV AL, U.K Sách, tạp chí
Tiêu đề: An Empirical Comparison of Selection Measures for Decision-Tree Induction
[8] J. Ross Quinlan ,C4.5 Programs for Machine Learning (Morgan Kaufmann Series in Machine Learning), 1993 Sách, tạp chí
Tiêu đề: C4.5 Programs for Machine Learning (Morgan Kaufmann Series in Machine Learning)
[9] L. Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone.Classification and Regression Trees. Wadsworth,Belmont,CA, 1984 Sách, tạp chí
Tiêu đề: Classification and Regression Trees
[10] L. Breiman, RandomForest, Statistics Department University of California Berkeley, CA 94720, 2001 Sách, tạp chí
Tiêu đề: RandomForest
[5] Albert Montillo1, Haibin Ling, AGE REGRESSION FROM FACES USING RANDOM FORESTS Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w