Series: Bagging và Random Forest – Phần 2

2 min read

Random Forest là một trong những thuật toán học máy phổ biến và mạnh mẽ nhất. Đó là một loại thuật toán học máy tổng hợp được gọi là Bootstrap Aggregating hoặc Bagging.

Ở phần 1 chúng ta đã tìm hiểu về Bagging, phần 2 mình sẽ nói về Random Forest: một trong những đăc trưng của Bagging.

3. Giải thuật Random Forest

Là giải thuật rất đặc trưng của phương pháp Bagging đã đề cập ở phần trước, và nó được xây dựng dựa trên giải thuật Cây quyết định (Các bạn có thể tham khảo Bài Decision Tree của Hồng Duy)

Sau đây, mình sẽ tóm tắt một số ưu khuyết điểm chính của Cây quyết định.

Ưu điểm lớn nhất của cây quyết định là dễ tạo nên, dễ sử dụng và khá dễ để giải thích, nó không có những biểu thức toán học phức tạp. Tuy nhiên, một nhược điểm rất lớn đối với giải thuật cây quyết định là nó rất nhạy cảm đối với Training data. Nếu ta thay đổi Training data thì kết quả của cây quyết định nó sẽ bị khác đi, do đó, nó có sai số phương sai khá lớn, dẫn đến hiện tượng Overfitting.

Điều này có thể được khắc phục bởi giải thuật Rừng ngẫu nhiên.

3.1 Random Forest là gì?

Random Forest được tạo nên bởi một ý tưởng rất đơn giản là nó tạo nên nhiều cây khác nhau, và những cây này cũng huấn luyện trên một bộ dữ liệu. Sau đó sẽ tổng hợp kết quả của tất cả các cây lại để đưa ra kết quả cuối cùng.

3.2 Cách xây dựng Random Forest

Có 2 bước cơ bản để xây dựng Random Forest:

Bước 1: Tạo nên các mẫu Bootstrap dựa trên phương pháp Bootstrapping.

Ta có một bộ dữ liệu với N thuộc tính, sử dụng phương pháp Bootstrapping để tạo nên K bộ mẫu dữ liệu mới.

Điểm khác biệt của phải thuật Random Forest với Bagging đó chính là thay vì sử dụng tất cả N thuộc tính để thực hiện quá trình huấn luyện. Random Forest sẽ chọn ngẫu nhiên một số thuộc tính để huấn luyện.

Như hình trên ta có thể thấy,

  • Decision Tree 1 chỉ sử dụng m1 thuộc tính để thực hiện quá trình training.
  •  Decision Tree k chỉ sử dụng mk thuộc tính để thực hiện quá trình training.

Với điều kiện: m1, m2,  … , mk là số ngẫu nhiên sao cho mi <= N.

Như vậy, giải thuật Random Forest sử dựng phương pháp random  để tạo nên bộ dữ liệu mẫu  và tạo số thuộc tính để sử dụng huấn luyện cũng bằng phương pháp random.

Điều này làm cho giải thuật Random Forest trở nên đa dạng hơn từ Traning data cho tới model, giúp cho ta tránh được Overfitting và kết quả dự đoán trở nên chính xác hơn.

Bước 2: Dự đoán

Ở bước này thì tương tự Bagging các bạn có thể xem lại phần 1 của Series này.

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

Your email address will not be published. Required fields are marked *