CHƯƠNG 2. KỸ THUẬT LỰA CHỌN ĐẶC TRƯNG TRONG BÀI TOÁN CHO
2.3 Phương pháp đề xuất
2.3.3 Cải tiến tốc độ xử lý bằng thư viện H20
Có thể nhận thấy giá trị xếp hạng thu được tốt hơn giá trị xếp hạng tốt nhất hiện tại thì hàm tiếp tục thực hiện loại bỏ và tập con đặc trưng sẽ thu nhỏ lại. Nếu không có giá trị xếp hạng nào tốt hơn thì sẽ quay lại nút trước đó như trình bày ở trên.
Quá trình sẽ dừng lại khi chỉ còn lại 1 đặc trưng hoặc không còn đường nào để đi.
Thủ tục FRFE loại bỏ đệ qui sử dụng chiến lược tìm kiếm theo kinh nghiệm như đã được trình bày trong chương một nhằm giảm bớt không gian tìm kiếm. Trong trường hợp xấu nhất sẽ là tìm kiếm vét cạn và độ phức tạp tính toán là 𝛰(2𝑁). Còn trong trường hợp tốt thì nó tìm ra tập con đặc trưng nằm trên một đường thẳng.
2.3.3 Cải tiến tốc độ xử lý bằng thư viện H20
Hình 2.5 Kiến trúc của thư viện H203
Kiến trúc H2O được chia thành hai phần, liên kết với nhau qua một mạng đám mây. Ở phần trên các máy trạm sử dụng hàm API có sẵn để giao tiếp với nhau và giao tiếp với H20 trông qua kết nối mạng. Mỗi nút trong mạng đám mây là một tiến trình Java duy nhất. Nó được chia thành ba lớp: ngôn ngữ, thuật toán, và cơ sở hạ tầng lõi.
Phần dưới bao gồm các thành phần khác nhau chạy trong một tiến trình Java.
Gói rừng ngẫu nhiên (RF) trong thư viện H20
Rừng ngẫu nhiên (Random Forest-RF) là thuật toán dựa trên kỹ thuật kết hợp mô hình (ensemble), được phát triển bởi Leo Breiman[15]. Thuật toán phân lớp CART sử dụng kỹ thuật bagging chính là nền tảng cho việc xây dựng thuật toán rừng ngẫu nhiên. Trong kỹ thuật này, một nhóm nhỏ các thuộc tính được lựa chọn tại mỗi nút của cây nhằm phân chia cho các mức tiếp theo của cây phân lớp. Tuy không gian tìm kiếm là tương đối lớn nhưng thuật toán phân lớp lại thực hiện nhanh do không gian tìm kiếm được chia nhỏ thành các cây nhở hơn. Cách thức phân lớp của RF được thể hiện như Hình 2.6
Hình 2.6 Phân lớp Random forest
Thuật toán có hai tham số chính là số cây ntree và số thuộc tính được chọn ở mỗi lần phân chia (mtry). Để tính toán việc phân chia cây tại mỗi nút, thuật toán RF cũng sử dụng công thức GINI giống như của thuật toán CART. Ý tưởng chính của giải thuật RF như sau:
Một tập ngẫu nhiên gồm m thuộc tính được chọn ra ở mỗi lần phân chia cây và chỉ m thuộc tính này tham gia vào việc phân chia cây. Thông thường 𝑚 = √𝑛 hoặc n/3 trong đó n là tổng số các thuộc tính.
Đối với mỗi cây phát triển dựa trên một mẫu boostrap, tỷ lệ lỗi của các phần tử không thuộc vào bootstrap sẽ được kiểm soát. Tỷ lệ lỗi này được gọi là tỷ lệ lỗi
“out-of-bag” (OOB).
Mô tả thuật toán RF
1. Chọn tham số T là số lượng các cây thành phần sẽ được xây dựng.
2. Chọn tham số m là số lượng các thuộc tính sẽ được dùng để phân chia tại mỗi nút của cây, m thường nhỏ hơn n khá nhiều (n là tổng số các thuộc tính). Trong suốt quá trình dựng cây, giá trị m sẽ không thay đổi.
3. Xây dựng T cây quyết định theo các bước sau:
- Xây dựng một tập gồm k mẫu ban đầu (bootstrap) bằng cách hoán vị tập các mẫu ban đầu. Mỗi cây sẽ được dựng từ tập ban đầu này.
- Tại mỗi nút sẽ chọn ra m thuộc tính, sau đó sử dụng chúng để tìm ra cách phân chia tốt nhất.
- Mỗi cây được phát triển và không bị cắt xén.
4. Rừng ngẫu nhiên sau khi được xây dựng sẽ dùng để phân lớp cho đối tượng T, thu thập kết quả phân lớp đối tượng này trên tất cả các cây quyết định và sử dụng kết quả được chọn nhiều nhất làm kết quả cuối cùng của thuật toán. Tỉ lệ lỗi của cây tổng thể phụ thuộc vào độ mạnh của từng cây quyết định thành phần và mối quan hệ qua lại giữa các cây đó.
Ưu điểm: là thuật toán phân lớp cho độ chính xác tương đối cao và thường được dùng trong các bài toán phân lớp phức tạp. Mô hình được tạo ra một cách dễ dàng, tránh được hiện tượng quá khớp. Có thể dễ dàng thực hiện song song hóa.
Nhược điểm: số lượng cây lớn sẽ làm tốc độ của thuật toán chậm với bài toán dự đoán thời gian thực.
H2O Random forest là một công cụ phân lớp mạnh được cung cấp sẵn trong kiến trúc H2O. Quá trình tạo cây được H2O song song hóa và chạy trên các cluster nhờ đó thời gian thực hiện được giảm xuống đáng kể.
2.4 Thực nghiệm và kết quả