3. Các nội dung nghiên cứu của luận văn
2.3.5. Thuật toán RandomForest
Giới thiệu về thuật toán Random Forest (RDF)
RDF được đề xuất bởi Breiman vào năm 2001. Đây là thuật toán phân loại có kiểm định dựa trên cây quyết định và kỹ thuật bagging và bootstrapping đã được cải tiến. Bootstrapping là một phương pháp rất nổi tiếng trong thống kê được giới thiệu bởi Efron vào năm 1979 [34]. Phương pháp này được thực hiện như sau: từ một quần thể ban đầu lấy ra một mẫu L = (x1, x2,..,xn) gồm n thành phần để tính toán các tham số mong muốn. Trong các bước tiếp theo lặp lại b lần tạo ra mẫu Lb cũng gồm n phần từ L bằng cách lấy lại mẫu với sự thay thế các thành phần trong mẫu ban đầu sau đó tính toán các tham số mong muốn (Đồng Thị Ngọc Lan, 2011) [35]. Phương pháp Bagging được xem như là một phương pháp tổng hợp kết quả có được từ các bootstraping sau đó huấn luyện mô hình từ các mẫu ngẫu nhiên này và cuối cùng đưa ra dự đoán phân loại dựa vào số phiếu bầu cao nhất của lớp phân loại (Đồng Thị Ngọc Lan, 2011) [35]. Cây quyết định là một sơ đồ phát triển có cấu trúc dạng cây phân nhánh đi từ gốc cho đến lá, giá trị các lớp phân loại
37
của mẫu được đưa vào kiểm tra trên cây 125 quyết định. Mỗi mẫu tương ứng có một đường đi từ gốc-tức là dữ liệu đầu vào đến lá-tức là các kết quả phân loại dự đoán đầu ra, biểu diễn dự đoán giá trị phân lớp mẫu đó. Mỗi sơ đồ cây trong tập mẫu được tạo thành từ tập hợp các điểm ảnh huấn luyện được lựa chọn ngẫu nhiên để huấn luyện mô hình phân loại RDF (mỗi tập mẫu bootstrap sẽ cho ra một tree và ntree tương ứng với nbootstrap). Khi một tập mẫu được rút ra từ tập huấn luyện (bootstrap) với sự thay thế có hoàn lại, thì theo ước tính có khoảng 1/3 các phần tử không nằm trong mẫu này và vì thế chúng không tham gia vào quá trình huấn luyện (Breiman L., 2001, 2007) [36], [37]. Đ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 để phân loại (in of bag), và 1/3 các phần tử này dùng để kiểm tra sai số được gọi là dữ liệu out-of-bag (OOB). Dữ liệu out-of-bag được sử dụng để ước lượng sai số tạo ra từ việc kết hợp các kết quả phân loại riêng lẻ sau đó được tổng hợp trong mô hình RDF cũng như dùng để ước tính các biến quan trọng (variable important) bằng chức năng Importance..
Mô tả thuật toán Random Forest
Chúng ta có thể nghĩ đến một ví dụ đơn giản trong cuộc sống, giả sử tôi muốn tìm hiểu một địa danh cho chuyến du lịch sắp tới, tôi sẽ đi hỏi một người bạn để tham khảo ý kiến. Nhưng, ý kiến của người bạn này có thể không khách quan cho lắm. Tôi liền đi hỏi thêm một vài người nữa, và tổng hợp lại để cho ra quyết định đi hay không.
Nếu coi mỗi ý kiến của những người góp ý là một cây quyết định, thì chúng ta đã có hình dung mơ hồ về Random Forest rồi. Random Forest hoạt động bằng cách đánh giá nhiều Cây quyết định ngẫu nhiên, và lấy ra kết quả được đánh giá tốt nhất trong số kết quả trả về.
Mã giả cho hoạt động của Random Forest:
- Chọn ngẫu nhiên “k” features từ tập “m” features. - Để ý k << m
38
- Chia các node con theo node tốt nhất vừa tìm được - Lặp lại bước 1-3 cho đến khi đạt đến k node
- Lặp lại bước 1-4 để tạo ra “n” cây
Sau các bước trên, chúng ta đã tạo ra được một Random Forest, vậy nó hoạt động như thế nào để dự đoán?
Để biểu diễn dự đoán sử dụng Random Forest đã huấn luyện, ta sử dụng các bước bên dưới:
- Lấy các test features và sử dụng các Cây quyết định đã tạo ra để dự đoán kết quả, lưu nó vào một danh sách.
- Tính toán số lượng vote trên toàn bộ Forest cho từng kết quả.
- Lấy kết quả có số lượng vote lớn nhất làm kết quả cuối cho mô hình.
Hình 2.11. Mô phỏng sự phân tách trong cây quyết định Ưu điểm của thuật toán Random Forest
Trong thuật toán Decision Tree, khi xây dựng cây quyết định nếu để độ sâu tùy ý thì cây sẽ phân loại đúng hết các dữ liệu trong tập training dẫn đến mô hình có thể dự đoán tệ trên tập validation/test, khi đó mô hình bị overfitting, hay nói cách khác là mô hình có high variance.
39
Thuật toán Random Forest gồm nhiều cây quyết định, mỗi cây quyết định đều có những yếu tố ngẫu nhiên: Lấy ngẫu nhiên dữ liệu để xây dựng cây quyết định, lấy ngẫu nhiên các thuộc tính để xây dựng cây quyết định.
Do mỗi cây quyết định trong thuật toán Random Forest không dùng tất cả dữ liệu training, cũng như không dùng tất cả các thuộc tính của dữ liệu để xây dựng cây nên mỗi cây có thể sẽ dự đoán không tốt, khi đó mỗi mô hình cây quyết định không bị overfitting mà có thế bị underfitting, hay nói cách khác là mô hình có high bias. Tuy nhiên, kết quả cuối cùng của thuật toán Random Forest lại tổng hợp từ nhiều cây quyết định, thế nên thông tin từ các cây sẽ bổ sung thông tin cho nhau, dẫn đến mô hình có low bias và low variance, hay mô hình có kết quả dự đoán tốt.
Ý tưởng tổng hợp các cây quyết định của thuật toán Random Forest giống với ý tưởng của The Wisdom of Crowds được đề xuất bởi by James Surowiecki vào năm 2004 [38]. The Wisdom of Crowds nói rằng thông thường tổng hợp thông tin từ 1 nhóm sẽ tốt hơn từ một cá nhân. Ở thuật toán Random Forest ta cũng tổng hợp thông tin từ 1 nhóm các cây quyết định và kết quả cho ra tốt hơn thuật toán Decision Tree với 1 cây quyết định.