Khái niệm Random Forest: Rừng cây ngẫu nhiên Random Forest là một loại thuật toán học tập tổng hợp bao gồm nhiều cây quyết định được đề xuất bởi Leo Breiman 2001.Ý tưởng là kết hợp các
Trang 1NGÂN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP HỒ CHÍ MINH
-
TIỂU LUẬN NHÓM MÔN: KHAI PHÁ DỮ LIỆU
Đề tài: Random Forest algorithm (Rừng cây ngẫu nhiên)
Lớp học phần :ITS324_231_1_D01
Tp Hồ Chí Minh, 2023
Trang 2Thành viên
Trang 3Mục L c ụ
MỞ ĐẦU 1
1 Khái niệm Random Forest: 2
2 Đặc điểm 2
2.1 Đặc điểm của Random Forest 2
2.2 Đặc điểm các thuộc tính của Random Forest: 3
3 Nguyên lý hoạ t đ ộng đố ới Random Forest trong bài toán phân lớp i v 3
3.1 Kỹ thuật Bagging(bỏ túi) 4
3.2 Xây dựng mô hình Random Forest cho bài toán phân lớp: 5
3.3 Lưu ý: 6
4 Dữ ệu Out-of-bag (OOB) li 6
5 Độ quan trọng các thuộc tính 7
5.1 Cải thiện tiêu chuẩn phân nhánh 7
5.2 Hoán vị OOB 8
6 Các siêu tham số 8
6.1 Siêu tham số tăng khả năng dự đoán: 8
6.2 Siêu tham số tăng tốc độ: 8
7 Ưu điểm và nhược điểm của thuật toán rừ ng ng ẫu nhiên 9
7.1 Ưu điểm 9
7.2 Nhược điểm 9
8 So sánh RF với DT(decision tree) 10
8.1 Giống nhau 10
8.2 Khác Nhau 10
9 Vì sao không xây dựng mô hình Random Forest dựa trên việ c tổng h ợp các mô hình mạnh mẽ hơn, ví dụ như Neural Network? 10
10 Trường hợ p s ử dụ ng 11
11 Ứng dụng 11
KẾT LUẬN 12
TÀI LIỆU THAM KHẢO 13
Trang 4DANH MỤC HÌNH ẢNH
Hình 2.1 Đặc điểm RF 3 Hình 2.2 Mô hình RF đơn giản 4
DANH MỤC BẢNG BIỂU
Bảng 2.8.1 So sánh 10
Trang 51
MỞ ĐẦU
Các thuật toán học máy truyền thống thường cho độ chính xác của phân lớp thấp,
dễ bị overfitting Để nâng cao độ chính xác, nhiều người đã nghiên cứu về thuật toán kết hợp các bộ thuật toán phân lớp Nhiều học giả bắt đầu nghiên cứu nâng cao độ chính xác của thuật toán phân loại bằng cách kết hợp các bộ thuật toán phân lớp
Thuật toán Random Forest là một thuật toán học máy kết hợp phổ biến, được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau Nó thuộc loại thuật toán học có giám sát
và có thể được sử dụng cho cả bài toán phân lớp và hồi quy Random Forest là một thuật toán ensemble, nghĩa là nó kết hợp nhiều mô hình dự đoán (cây quyết định) để tạo ra một mô hình mạnh mẽ hơn
Random Forest trở nên phổ biến bởi vì sự linh hoạt và dễ sử dụng để xử lý các vấn đề về phân lớp và hồi quy Bài báo cáo này sẽ tìm hiểu về thuật toán Random Forest
và cách nó hoạt động đối với bài toán phân lớp
Trang 62
1 Khái niệm Random Forest:
Rừng cây ngẫu nhiên (Random Forest) là một loại thuật toán học tập tổng hợp bao gồm nhiều cây quyết định được đề xuất bởi Leo Breiman (2001).Ý tưởng là kết hợp các dự đoán của nhiều cây quyết định để có được dự đoán chính xác hơn so với dự đoán của một cây Rừng cây ngẫu nhiên là một phần của họ các thuật toán cây quyết định (decision tree) được phát triển dựa trên phương pháp Bagging nó giúp tạo ra một mô hình mạnh hơn bằng cách kết hợp nhiều cây quyết định Quyết định của đa số cây được Rừng cây ngẫu nhiên lựa chọn làm quyết định cuối cùng
Rừng ngẫu nhiên là một thuật toán học máy mạnh có thể sử dụng cho mô hình
dự đoán và hồi quy Thường dùng cho những công việc như lọc thư rác, phân loại hình ảnh và phát hiện gian lận
2 Đặc điểm
2.1. Đặc điểm của Random Forest
Đa dạng cây quyết định: Rừng ngẫu nhiên bao gồm một tập hợp các cây quyết định độc lập Mỗi cây được xây dựng theo một cách riêng biệt, dựa trên một tập con ngẫu nhiên của dữ liệu huấn luyện và đặc trưng Điều này tạo ra sự đa dạng trong các cây và giúp thu thập nhiều ý kiến từ các mô hình khác nhau
Chạy rất hiệu quả trong cơ sở dữ liệu lớn và có khả năng xử lý dữ liệu có nhiễu: Rừng ngẫu nhiên có khả năng xử lý dữ liệu có nhiễu tốt hơn Bằng cách kết hợp nhiều cây quyết định, rừng ngẫu nhiên có khả năng chống lại hiện tượng overfitting (quá khớp) và có khả năng tổng hợp thông tin từ các cây khác nhau
để đưa ra dự đoán chính xác
Tính linh hoạt và dễ sử dụng: Rừng ngẫu nhiên là một thuật toán linh hoạt và dễ
sử dụng Nó không yêu cầu nhiều điều chỉnh siêu tham số và có thể được áp dụng trực tiếp trên dữ liệu mà không cần tiền xử lý phức tạp Điều này giúp giảm thời gian và công sức trong quá trình xây dựng mô hình
Random Forest là một trong những thuật toán phổ biến và chính xác nhất
Random Forest hầu như không hoặc yêu cầu ít tham số đầu vào
Có thể dễ dàng phát triển song song
Làm việc hiệu quả với cả hai vấn đề phân lớp và hồi quy
Trang 73
Hình 2.1 Đ ặc điểm RF Nguồn:https://www.infinitycodex.in/top- 10 -strategies-which-will-make-you
2.2. Đặc điểm các thuộc tính của Random Forest:
Tính đa dạng: Không phải tất cả các thuộc tính/biến/tính năng đều được xem xét khi tạo một cây riêng lẻ; mỗi cây là khác nhau
Miễn dịch với lời nguyền về chiều(The curse of dimensionality): Vì mỗi cây không sử dụng tất cả các thuộc tính nên không gian thuộc tính sẽ giảm đi
Song song hóa: Mỗi cây được tạo độc lập từ các dữ liệu và thuộc tính khác nhau Nghĩa là hoàn toàn có thể sử dụng CPU để xây dựng các Random Forest
Tính ổn định: Tính ổn định phát sinh do kết quả dựa trên biểu quyết/trung bình của đa số
3 Nguyên lý hoạt động đối với Random Forest trong bài toán phân lớp
Random Forest hoạt động dựa trên phương pháp học máy và phương pháp bỏ túi (bagging) Đây là một loại phương pháp học tổng hợp, trong đó một nhóm các mô hình yếu kết hợp với nhau để tạo thành một mô hình mạnh hơn Random Forest bắt đầu một
kỹ thuật học máy tiêu chuẩn là “cây quyết định” Trong cây quyết định, các instance (thuộc tính) ở trên cùng và khi nó đi xuống cây, dữ liệu sẽ được nhóm thành các tập hợp ngày càng nhỏ hơn
Trang 84
Hình 3.1 Mô hình RF đơn giản
3.1. Kỹ thuật Bagging(bỏ túi)
Bagging, viết tắt của Bootstrap Aggregation, đóng vai trò quan trọng trong thuật toán Random Forest Dưới đây là các bước triển khai của Bagging:
Selection of Subset: Bagging bắt đầu bằng cách chọn mẫu ngẫu nhiên từ tập mẫu, tạo thành các tập con có kích cỡ bằng với tập mẫu
Bootstrap Sampling: Mỗi mô hình được tạo ra từ các mẫu này,gọi là Bootstrap Sample, được lấy ra từ tập mẫu bằng phương pháp chọn mẫu có hoàn lại
Bootstrapping: Bước chọn mẫu có hoàn lại gọi là lấy mẫu tái lại (bootstrapping)
Independent Model Training: Mỗi mô hình được huấn luyện riêng biệt dựa trên Bootstrap Sampling Mỗi mô hình sẽ tạo ra kết quả
Majority Voting: Kết quả cuối cùng được quyết định bằng cách tổng hợp tất cả kết quả của các mô hình hay bỏ phiếu Kết quả nào được các mô hình dự đoán -nhiều nhất sẽ làm kết quả cuối cùng
Aggregation: là phương pháp tổng hợp kết quả và chọn ra kết quả dựa trên số đông
Thuật toán Random Forest phát triển thêm từ bagging bằng cách chọn ngẫu nhiên thuộc tính cho mỗi nút để mô hình thực hiện phân nhánh
Trang 95
3.2. Xây dựng mô hình Random Forest cho bài toán phân lớp:
V i ớ 𝐷 ={(𝑥1, 𝑦1), … , 𝑥( 𝑁, 𝑦𝑁)}làm tập dữ liệu với 𝑥𝑖= (𝑥𝑖,1, … , 𝑥 )𝑖,𝑝 𝑇trong đó
p là thu c tính và y là phân l p Vộ ớ ới j từ 𝑗 =1,2, , 𝐽
1 Lấy mẫu bootstrap 𝐷𝑗với kích thước N từ D
2 Dùng 𝐷𝑗 làm tập huấn luyện, huấn luyện cây :
a Bắt đầu với tất cả quan sát trong nút
b Lặp lại các bước sau cho tất cả các nút chưa được phân nhánh cho tất cả các mẫu bootstrap:
i Chọn m thuộc tính ngẫu nhiên từ p thuộc tính có sẵn
ii Tìm thuộc tính phân nhánh tốt nhất trong m thuộc tính từ bước i để thực hiện phân nhánh nhị phân
iii Phân nhánh nút thành 2 nút con sử dụng thuộc tính phân nhánh tốt nhất
từ bước ii
Dự đoán với quan sát x mới:
𝑓(𝑥) =𝑎𝑟𝑔𝑚𝑎𝑥𝑦∑ 𝐼(ℎ𝐽 (𝑥) =𝑦)𝑗
𝑗=1 với ℎ (𝑥) 𝑗 là phân lớp được cây thứ j đưa ra dự đoán
Chọn thuộc tính ngẫu nhiên:
M i nút c a cây, ch n ng u nhiên ỗ ủ ọ ẫ 𝑚 ≤𝑝 các thu c tính ng viên cho vi c phân ộ ứ ệ nhánh Các giá tr ị đề xuất khi bắt đầ cho u bài toán phân l p ớ là 𝑚 =√𝑝
Để xây dựng mô hình Random Forest, chúng ta cần quyết định số cây tham gia (n_estimators) Giả sử chúng ta muốn xây dựng với 10 cây thì 10 cây này sẽ được xây dựng hoàn toàn độc lập với nhau, và thuật toán sẽ lựa chọn ngẫu nhiên khác nhau cho mỗi cây để chắc chắn rằng chúng khác biệt
Để xây dựng một cây, đầu tiên tiến hành chọn Bootstrap sample tức từ tập mẫu
có N mẫu được chọn ngẫu nhiên có hoàn lại N quan sát (trong đó cùng một quan sát có thể được lặp lại nhiều lần) Thao tác này sẽ tạo ra một tập dữ liệu mới lớn bằng với tập
dữ liệu gốc, nhưng một vài điểm dữ liệu sẽ bị thiếu (khoảng ⅓) và một số khác sẽ được lặp lại Sau đó, một cây quyết định sẽ được xây dựng dựa trên tập dữ liệu vừa mới tạo này Tuy nhiên, thuật toán mô tả cho cây quyết định đã được chỉnh sửa một chút Thay
vì lấy tất cả thuộc tính để thực hiện phân nhánh thì ở mỗi nút thuật toán chọn ngẫu nhiên một tập con của các thuộc tính và tìm thuộc tính nào tốt nhất cho phân lớp Số lượng
Trang 106
thuộc tính được lựa chọn bị kiểm soát bởi tham số max_features Việc lựa chọn tập con của các thuộc tính được lặp lại một cách riêng lẻ ở mỗi nút để mỗi nút trong một cây có thể đưa ra quyết định sử dụng các tập con thuộc tính khác nhau
Việc lấy Bootstrap sampling dẫn đến mỗi cây quyết định trong Random Forest được xây dựng trên một tập dữ liệu khác nhau Vì chọn thuộc tính ngẫu nhiên tại mỗi nút, mỗi phân lớp trong mỗi cây hoạt động trên một tập con thuộc tính khác nhau Hai
cơ chế này cùng đảm bảo rằng tất cả cây trong Random Forest là khác nhau Một tham
số quan trọng trong quá trình này là tham số max_features Nếu chúng ta thiết lập tham
số này bằng số lượng thuộc tính n_features, nghĩa là mỗi phân nhánh phải xem xét tất
cả thuộc tính trong tập dữ liệu và không có sự ngẫu nhiên nào cho việc lựa chọn thuộc tính (vẫn có sự ngẫu nhiên quan sát từ chọn bootstrapping) Nếu thiết lập tham số max_features bằng một nghĩa là các phân nhánh không thể chọn thuộc tính để kiểm tra
và chỉ có thể tìm kiếm qua các ngưỡng (thresholds) khác nhau cho mỗi thuộc tính được chọn ngẫu nhiên Vì vậy, chọn max_features cao nghĩa là cây trong Random Forest sẽ khá giống nhau và có khả năng khớp dữ liệu dễ dàng, bằng cách sử dụng thuộc tính riêng biệt nhất Còn max_features thấp nghĩa là cây trong Random Forest sẽ càng khác nhau
và mỗi cây có thể cần được tách rất sâu để khớp với dữ liệu
Để dự đoán bằng Random Forest, đầu tiên thuật toán dự đoán cho mỗi cây trong rừng, sau đó sử dụng phương pháp bỏ phiểu (aggregation), các dự đoán bởi tất cả cây được tổng hợp lại và dữ liệu cần kiểm tra sẽ thuộc phân lớp được bỏ phiếu nhiều nhất
3.3. Lưu ý:
-Với số lượng lớn thuộc tính (p>0) , tập thuộc tính được chọn có thể khác nhau
ở mỗi nút
- Không cần thực hiện tỉa cây (prune) khi xây dựng cây con với vì tập con đã qua phương pháp bagging (phương pháp xử lý overfitting)
-Tương quan giữa các cây càng lớn thì tỷ lệ lỗi (error rate) càng lớn, vì vậy khi xây dựng mô hình thì các cây càng không có tương quan với nhau càng tốt
- Khi m giảm, sự tương quan và sức mạnh của mỗi cây càng giảm, nên tìm hiểu giá trị m nào tối ưu nhất
4 Dữ liệu Out-of-bag (OOB)
Trang 117
Khi lấy mẫu bootstrap từ dữ ệu, một vài quan sát không dựa lựa chọn Những li quan sát này được gọi là dữ liệu “out-of-bag”, OOB rất có ít trong việc đánh giá lỗi tổng quát và độ quan trọng của các thuộc tính
Kích thước OOB:𝑃 =(1 −1𝑛)𝑛 𝑛→∞→ 1𝑒≈0.37 xấp xỉ 1
3
Để đánh giá lỗi tổng quát, lưu ý đầu tiên là khi các cây quá lớn, việc dự đoán nhận được từ tất cả các cây có thể bị lạc quan quá mức nếu dùng để dự đoán phân lớp cho tất cả các quan sát trong tập dữ ệu D Do đó, việli c dự đoán biến phụ thuộc cho các quan sát trong tập huấn luyện chỉ sử dụng các quan sát là OOB
Với 𝐷𝑗 là mẫu bootstrap thứ j và ℎ (𝑥) là d ựđoán của quan sát x t cây th j Cho 𝑗 ừ ứ
t ừ 𝑗=1,2, , 𝐽 Với i=1 đến N:
1 Với 𝐹𝑖= {𝑗: 𝑥( 𝑖, 𝑦𝑖) ∉𝐷𝑗} và với 𝐽𝑖là phần tử trong 𝐹𝑖
2 Đưa dự đoán oob tại 𝑥𝑖là
𝑓𝑜𝑜𝑏(𝑥𝑖) =𝑎𝑟𝑔𝑚𝑎𝑥𝑦∑ 𝐼(ℎ (𝑥𝑗 𝑖) =𝑦)
𝑗∈𝐹 𝑖
Trong đó: ℎ (𝑥𝑗 𝑖) là dự đoán của quan sát 𝑥𝑖 sử dụng cây thứ j
Đối với bài toán phân lớp sử dụng hàm mất mát zero-one loss, tỷ lệ lỗi tổng quát được ư c tính sử dụng tỷ lệ lỗi oob: ớ
𝐸𝑜𝑜𝑏=1𝑁 ∑ 𝐼(𝑦𝑖≠𝑓𝑜𝑜𝑏(𝑥𝑖))
𝑁 𝑖=1
5 Độ quan trọng các thu c tính ộ
Các cây quyết định độc lập dễ dàng diễn giải nhưng Random Forest thì kết hợp rất nhiều cây quyết định làm cho không thể xác định được việc random triển khai như thế nào, việc này hoạt động như một cái hộp đen Đo lường độ quan trọng của các thuộc tính có ích cho việc chọn lựa thuộc tính và diễn giải các rừng cây đã huấn luyện
5.1. Cải thiện tiêu chuẩn phân nhánh
Đo lường bằng biểu hiện các thuộc tính khi được cải thiện các tiêu chuẩn phân nhánh Trong mỗi cây, đối với mỗi thuộc tính cụ ể tìm tất cả các nút sử dụng thuộth c tính đó, sau đó ước tính độ cải thiện của mỗi phân nhánh bằng các tiêu chuẩn phân nhánh (entropy, gini) Độ cải thiện được tính bằng tổng lượng thông tin đạt được trừ tổng thông
Trang 128
tin của cả hai nhanh con sau phân nhánh.Sau đó tính tổng các độ cải thiện từ mỗi cây và tất cả độ cải thiện các cây Từ đó xác định thuộc tính nào quan trọng
5.2. Hoán vị OOB
Random Forest cũng dùng mộ độ đo rất khác rất thú vị là dùng hoán vị t OOB
Để đo lường độ quan trọng của thuộc tính k, triển khai theo các bước sau đối với mỗi cây:
1 Cho các quan sát OOB chạy xuống các cây và dự đoán giá trị
2 Hoán vị ngẫu nhiên các giá trị quan sát OOB của biến k và giữ nguyên các biến khác Các quan sát OOB đã hoán vị được chạy xuống các cây và dự đoán giá trị
Quá trình trên tạo thành hai tập dự báo oob cho mỗi quan sát: một tập từ dữ ệu li
thực, tập ka từ dữ ệu bị hoán vị Đối với bài toán phân lớp, trung bình độ biến thiên li giữa tỷ lệ lỗi của các dự đoán từ dữ liệu bị hoán vị và dự đoán từ tập dữ liệu thực để tính
độ quan trọng Nếu độ thay đổi lớn thì thuộc tính đó quan trong còn không thay đổi nhiều thì thuộc tính không quan trọng
6 Các siêu tham số
Siêu tham số được sử dụng trong rừng ngẫu nhiên (RF) để nâng cao hiệu suất và khả năng dự đoán của mô hình hoặc để làm cho mô hình nhanh hơn
6.1. Siêu tham số tăng khả năng dự đoán:
n_estimators: Số lượng cây mà thuật toán xây dựng trước khi tính trung bình các
dự đoán Số lượng cây cao hơn làm tăng hiệu suất và làm cho các dự đoán ổn định hơn, nhưng cũng làm chậm quá trình tính toán
max_features: Số lượng tính năng tối đa mà rừng ngẫu nhiên xem xét việc chia tách một nút
mini_sample_leaf: Xác định số lượng lá tối thiểu cần thiết để phân chia/tách một nút bên trong
criterion: tiêu chuẩn phân nhánh (Entropy/Gini/Log loss)
max_leaf_nodes: Số nút lá tối đa trên mỗi cây
6.2. Siêu tham số tăng tốc độ:
Trang 139
n_jobs: cho động cơ biết số lượng bộ xử lý được phép sử dụng Nếu giá trị là 1 thì nó chỉ có thể sử dụng một bộ xử lý, nhưng nếu giá trị là 1 thì không có giới -hạn
Random_state: kiểm soát tính ngẫu nhiên của mẫu, làm cho đầu ra của mô hình
có thể sao chép được Mô hình sẽ luôn tạo ra cùng một kết quả nếu nó có giá trị xác định ở trạng thái ngẫu nhiên và được cung cấp cùng các siêu tham số và dữ liệu huấn luyện
oob_score:Điểm của quan sát oob, dùng để đánh giá hiệu suất
7 Ưu điểm và nhược điểm của thuật toán rừng ngẫu nhiên
7.1. Ưu điểm
Tất cả ưu điểm của cây quyết định cũng được áp dụng vào Random Forest như không yêu cầu tiền xử lý dữ liệu nhiều,…
Có thể được sử dụng trong các vấn đề phân lớp và hồi quy
Hoạt động tốt ngay cả khi dữ liệu chứa các giá trị null/thiếu, dữ liệu nhiều không gian, dữ liệu bị nhiễu
Mỗi cây quyết định được tạo ra đều độc lập với cây quyết định khác; do đó, nó cho thấy tính chất song song
Có tính ổn định cao vì các câu trả lời trung bình được đưa ra bởi một số lượng lớn cây được lấy
Duy trì tính đa dạng vì tất cả các thuộc tính không được xem xét khi đưa ra từng cây quyết định mặc dù điều đó không đúng trong mọi trường hợp
Random Forest suy ra tất cả các kết quả có thể xảy ra đối với vấn đề
7.2. Nhược điểm
Bao gồm các nhược điểm của Random Forest
Thời gian huấn luyện nhiều hơn các mô hình khác do tính phức tạp của nó Bất
cứ khi nào cần đưa ra dự đoán, mỗi cây quyết định phải tạo đầu ra cho dữ liệu đầu vào nhất định
Cây quyết định chứa rất nhiều lớp trong đó làm cho nó phức tạp, nhưng các công
cụ ngày này dễ dàng triển khai Random Forest
Để có thêm nhãn lớp, việc tính toán độ phức tạp của cây quyết định có thể tăng lên
Chiếm nhiều bộ nhớ