Chương 4: Giải thuật random forest
4.3. Một số điểm cần chú ý của giải thuật Random Forest
Nhắc lại ở trên 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ế (bagging), 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 [7]. Đ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 của chúng ta, 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 (variable important).
Trong random forest OBB được tính như sau: Giả sử có một phương pháp cho việc xây dựng một bộ phân lớp từ bất kỳ tập huấn luyện nào. Cho một tập huấn luyện T ban đầu, sử dụng phương pháp bootstrap xây dựng được tập huấn luyện Tk, sau đó xây dựng các bộ phân lớp h(x, Tk) và sử dụng các bộ phân lớp này “bỏ phiếu” để xây dựng một tập tham số dự báo. Đối với mỗi cặp y, x trong tập huấn luyện, việc tổng hợp các lá phiếu chỉ được thực hiện trên những bộ phân lớp đối với những tập Tk không chứa y, x. Chúng ta gọi tính toán trên là out-of-bag classifier. Sử dụng dữ liệu out-of-bag để ước tính tỷ lệ lỗi trong RF là việc tính toán tỉ lệ lỗi của out-of-bag classifier trên tập huấn luyện Tk. Cách tính trên có thể được hiểu một cách đơn giản như sau: Gửi các
“đối tượng” trong OBB xuống cây và “đếm” số các dự đoán đúng, ta gọi kết quả của tính toán này là ROOB .
Hình 4.4 dưới đây thể hiện sử dụng dữ liệu OOB để ước lượng lỗi trong RF.
Hình 4. 4: Sử dụng OBB ước lượng lỗi
4.3.2. Thuộc tính quan trọng
Việc thực hiện các tính toán để xác định thuộc tính quan trọng trong RF cũng gần như tương tự việc sử dụng OOB để tính toán lỗi trong RF. Cách thực hiện như sau:
Giả sử chúng ta cần xác định “thuộc tính quan trọng” của thuộc tính thứ thứ m. Đầu tiên tính ROOB, sau đó hoán vị ngẫu nhiên các giá trị của thuộc tính m trong dữ liệu
OOB, lần lượt “gửi” các giá trị này xuống cây và “đếm” số các dự đoán đúng ta gọi việc tính toán này đối với thuộc tính là Rperm.
Độ quan trọng thuộc tính được tính như sau:
Trong trường hợp giá trị của thuộc tính quan trọng trên mỗi cây là độc lập thì chúng ta có thể tính được lỗi chuẫn (standard error) của ROOB - Rperm.
Ngoài độ quan trọng thuộc tính, trong RF cũng cần chú ý đến độ quan trọng GINI (GINI important). Chỉ số GINI tại nút N được định nghĩa là tổng bình phương xác suất mỗi lớp tại nút N [6]. Chỉ số GINI được tính như sau:
Trong đó p(wj) là là xác suất của lớp wj có mặt tại nút N. Điều này cũng có nghĩa là nếu trong tất cả các trường hợp tại nút N chỉ rơi vào một lớp duy nhất, thì giá trị chỉ số GINI tại nút N bằng 0.
Trong một số giải thuật như CART, SLIQ và RF chỉ số GINI được sử dụng như là một tiêu chỉ để phân nhánh trong cây. Các giải thuật này cố gắng cực tiểu hóa giá trị chỉ số GINI tại nút dựa vào việc phân nhánh trong cây theo công thức sau:
Trong đó k là số lượng các nút con được phân chia ra từ nút N, ni là số lượng các mẫu tại nút con i và n là tống số các mẫu tại nút N. Trong RF tại mỗi lần phân nhánh tại một nút thì giá trị chỉ số GINI tại hai nút con sẽ nhỏ hơn so với giá trị chỉ số GINI tại nút cha. Thêm vào đó chỉ số GINI giảm đối với mỗi thuộc tính đơn lẻ trên tất cả các cây đưa ra một độ quan trọng thuộc tính nhanh, và điều này là rất đồng nhất với đo lường độ quan trọng hoán vị [8].
Trong mô hình máy học đề xuất trong chương tiếp theo nhằm tăng hiệu quả phân lớp của giải thuật RF, mức độ giảm của chỉ số GINI cũng được sử dụng như một tiêu chí trong việc xác định độ quan trọng thuộc tính.