Giới thiệu Random ForestRandom Forest là một thuật toán học máy thường được sử dụng đã được Leo Breiman và Adele Cutler đăng ký nhãn hiệu, kết hợp đầu ra của nhiều cây quyết định để đạt
Trang 1KHOA CÔNG NGHỆ THÔNG TINBỘ MÔN LẬP TRÌNH R CHO PHÂN TÍCH
BÁO CÁO GIỮA KỲ
Nguyễn Trương Thành Long 21133053 Nguyễn Duy Hải 21133101 Dương Hoàng Khang 21133046 Nguyễn Thị Thanh Hiền 21133032
Tp Hồ Chí Minh, tháng 11 năm 2023
Trang 23 Xây dựng thuật toán Random Forest 6
3.1 Mô tả thuật toán 6
3.2 Out – Of – Bag (OOB) 7
4 Ưu điểm và nhược điểm của Random Forest 7
4.1 Ưu điểm 7
4.2 Nhược điểm: 7
5 Ứng dụng của thuật toán Random Forest 8
6 So sánh giữa Random Forest và Decision Tree 8
Trang 31 Giới thiệu Random Forest
Random Forest là một thuật toán học máy thường được sử dụng đã được Leo Breiman và Adele Cutler đăng ký nhãn hiệu, kết hợp đầu ra của nhiều cây quyết định để đạt được một kết quả duy nhất Tính dễ sử dụng và tính linh hoạt của nó đã thúc đẩy việc áp dụng nó, vì nó xử lý được cả các vấn đề phân loại và hồi quy.
2 Random Forest
Random Forest là một phương pháp học tập thể (ensemble learning) được sử dụng cho việc phân loại, hồi quy Phương pháp này hoạt động bằng cách xây dựng một loạt cây quyết định (decision trees) trong quá trình huấn luyện Khi tổng hợp kết quả, Random Forest dùng phương pháp bỏ phiếu (voting) cho bài toán phân loại và lấy giá trị trung bình (average) cho bài toán hồi quy.
Random Forests được sử dụng để khắc phục vấn đề overfitting (quá khớp) thường gặp trong Decision tree Random Forests thường có hiệu suất tốt hơn so với cây quyết định đơn lẻ Tuy nhiên, hiệu suất của Random Forests có thể bị ảnh hưởng bởi đặc điểm của dữ liệu
2.1 Phương pháp Bootrap
Bootstrap method là phương pháp lấy mẫu có hoàn lại (sampling with replacement) Phương pháp lấy mẫu có hoàn lại có nghĩa là một cá thể có thể xuất hiện nhiều lần trong một lần lấy mẫu Phương pháp này chủ yếu dùng để ước lượng lỗi chuẩn (standard errors), độ lệch (bias) và tính toán khoảng tin cậy (confidence interval) cho các tham số.
2.2 Phương pháp Bagging * Mô hình hoạt động của Bagging
Bagging (Bootstrap aggregating) là tổng hợp các bootstrap sử dụng cách tiếp cận xây dựng mỗi bộ phân loại một cách độc lập với nhau Bagging tạo ra các bộ phân loại từ các tập mẫu con có lặp từ tập mẫu ban đầu (sử dụng bootstrap lấy mẫu có hoàn lại) và
Trang 4một thuật toán học máy, mỗi tập mẫu sẽ tạo ra một bộ phân loại cơ bản Sau đó sử dụng phương pháp bỏ phiếu để chọn ra kết quả cuối cùng của bộ kết hợp.
* Thuật toán Bagging
Bagging tạo ra N tập huấn luyện được chọn có lặp từ tập dữ liệu huấn luyện ban đầu Trong đó các mẫu huấn luyện có thể được chọn hơn một lần hoặc không được chọn lần nào Từ mỗi tập huấn luyện mới, Bagging cho chạy với một thuật toán học máy L để sinh ra M bộ phân loại cơ bản ℎ𝑚 Tùy thuộc vào nhiệm vụ (tức là hồi quy hoặc phân loại), thì việc lấy giá trị trung bình trung bình hoặc phần lớn các dự đoán được lấy để tính toán ước tính chính xác hơn Trong trường hợp hồi quy, giá trị trung bình của tất cả các kết quả đầu ra được dự đoán bởi các bộ phân loại riêng lẻ sẽ được lấy, điều này được gọi là bỏ phiếu mềm (soft voting) Đối với các bài toán phân loại, lớp có đa số phiếu bầu cao nhất được chấp nhận; điều này được gọi là bỏ phiếu cứng hoặc bỏ phiếu đa số (hard voting).
2.3 Học tập thể
Với mỗi bài toán phân loại hoặc hồi quy cụ thể, người ta thường có nhiều thuật toán học để khi xây dựng bộ học Cùng một thuật toán, có thể chọn các tham số khác nhau hoặc sử dụng tập dữ liệu huấn luyện khác nhau nên cho các bộ phân loại khác nhau
Những thuật toán cho cùng lớp bài toán thường tuân theo luật “không có bữa trưa miễn phí (no free lunch theory)”, tức là không có thuật toán tốt hơn hẳn các thuật toán
2
Trang 5khác mà mỗi thuật toán có ưu /nhược điểm riêng, khi thực hiện phân loại thì mỗi bộ huấn luyện theo thuật toán tương ứng có những lớp mẫu được phân loại tốt và tồi khác nhau Kết hợp hợp lý các bộ phân loại có thể cho ta bộ phân loại mới có nhiều ưu điểm hơn, cách kết hợp này gọi là học máy tập thể (ensemble learning)
Như vậy, mỗi cách học cho ta một bộ phân loại cơ sở, nhờ kết hợp các bộ phân loại thành phần có được mà ta có một bộ phân loại tốt hơn Các bộ phân loại cơ sở này thường được xây dựng theo cách tiếp cận sau đây:
1) Dùng các thuật toán huấn luyện khác nhau Các thuật toán này sử dụng các giả thuyết khác nhau về dữ liệu, các bộ học có thể phụ thuộc tham số hoặc không Khi kết hợp các bộ học, ta được giải phóng khỏi các giả thiết áp đặt này
2) Mỗi bộ học dùng cách chọn đặc trưng khác nhau Chẳng hạn chúng ta dùng một thuật toán để phân biệt chữ viết tay nhưng cách chọn đặc trưng có thể là nội dung ảnh hay qua phép biến đổi nào đó
3) Có thể sử dụng cùng một thuật toán nhưng có tham số khác nhau Chẳng hạn đều sử dụng thuật toán k-láng giềng gần nhất nhưng với số lượng cây k khác nhau
4) Cùng một thuật toán nhưng sử dụng các tập dữ liệu huấn luyện khác nhau Thông thường thì các bộ phân loại được xây dựng theo hai cách cách tiếp cận đầu có thời gian chạy khác nhau và bộ phân loại chính xác hơn thường đòi hỏi thời gian xử lý nhiều hơn
Khi có các bộ phân loại cơ sở, bộ phân loại tập thể được kết hợp theo các kiểu tôpô đa dạng để cho ta những bộ mới tốt hơn các bộ thành phần Trong đó phương thức kết hợp đơn giản và dễ dùng nhất là phương pháp bỏ phiếu.
2.4 Phương pháp bỏ phiếu Majority Class Labels (Majority/Hard Voting)
Trong biểu quyết đa số, nhãn lớp được dự đoán cho một mẫu cụ thể là nhãn lớp đại diện cho đa số (chế độ) của nhãn lớp được dự đoán bởi từng phân loại riêng lẻ.
Trang 6Weighted Average Probabilities (Soft Voting)
Biểu quyết mềm phân loại dữ liệu đầu vào dựa trên xác suất của tất cả các dự đoán được thực hiện bởi các bộ phân loại khác nhau Các trọng số áp dụng cho mỗi bộ phân loại được áp dụng một cách thích hợp Hãy hiểu điều này bằng cách sử dụng một ví dụ Giả sử có bộ phân loại nhị phân clf1, clf2 và clf3 Đối với một bản ghi cụ thể, bộ phân loại đưa ra các dự đoán về xác suất có lợi cho các lớp [0,1]:
Trang 7Nếu VotingClassifier đang sử dụng biểu quyết 'mềm' và hai kết quả có tổng xác suất có khả năng như nhau, thì nó sẽ dự đoán kết quả đầu tiên trong danh sách kết quả
Bỏ phiếu cứng thực hiện đơn giản hơn nhưng có thể kém chính xác hơn bỏ phiếu mềm Điều này là do việc bỏ phiếu cứng sẽ bỏ qua độ tin cậy trong dự đoán của từng bộ phân loại Bỏ phiếu mềm chính xác hơn nhưng việc thực hiện cũng phức tạp hơn Cách tiếp cận tốt nhất để sử dụng sẽ phụ thuộc vào ứng dụng cụ thể.
2.5 Random Forest
Random Forest (rừng ngẫu nhiên) là phương pháp học tập thể (ensemble) để phân loại, hồi quy được phát triển bởi Leo Breiman tại đại học California, Berkeley.
Random Forest (RF) là phương pháp cải tiến của phương pháp tổng hợp bootstrap (bagging) RF sử dụng 2 bước ngẫu nhiên, một là ngẫu nhiên theo mẫu (sample) dùng phương pháp bootstrap có hoàn lại (with replacement), hai là lấy ngẫu nhiên một lượng thuộc tính từ tập thuộc tính ban đầu Các tập dữ liệu con (sub-dataset) được tạo ra từ 2 lần ngẫu nhiên này có tính đa dạng cao, ít liên quan đến nhau, giúp giảm lỗi phương sai (variance) Các cây CART được xây dựng từ tập các tập dữ liệu con này tạo thành rừng Khi tổng hợp kết quả, RF dùng phương pháp bỏ phiếu (voting) cho bài toán phân loại và lấy giá trị trung bình (average) cho bài toán hồi quy Việc kết hợp các mô hình CART này để cho kết quả cuối cùng nên RF được gọi là phương pháp học tập thể.
Trang 8Trong những năm gần đây, RF được sử dụng khá phổ biến bởi những điểm vượt trội của nó so với các thuật toán khác: xử lý được với dữ liệu có số lượng các thuộc tính lớn, có khả năng ước lượng được độ quan trọng của các thuộc tính, thường có độ chính xác cao trong phân loại (hoặc hồi quy), quá trình học nhanh.
Trong RF, mỗi cây chỉ chọn một tập nhỏ các thuộc tính trong quá trình xây dựng (bước ngẫu nhiên thứ 2), cơ chế này làm cho RF thực thi với tập dữ liệu có số lượng thuộc tính lớn trong thời gian chấp nhận được khi tính toán Người dùng có thể đặt mặc định số lượng các thuộc tính để xây dựng cây trong rừng, thông thường giá trị mặc định tối ưu là √𝑝
6
Trang 9cho bài toán phân loại và ⁄3 với các bài toán hồi quy (p là số lượng tất cả các thuộc tính của𝑝 tập dữ liệu ban đầu) Số lượng các cây trong rừng cần được đặt đủ lớn để đảm bảo tất cả các thuộc tính đều được sử dụng một số lần Thông thường là 500 cây cho bài toán phân loại, 1000 cây cho bài toán hồi quy Do sử dụng phương pháp bootstrap lấy mẫu ngẫu nhiên có hoàn lại nên các tập dữ liệu con có khoảng 2/3 các mẫu không trùng nhau dung để xây dựng cây, các mẫu ngày được gọi là in-bag Khoảng 1/3 số mẫu còn lại gọi là out-of-bag, do không tham gia vào việc xây dựng cây nên RF dùng luôn các mẫu out-of-bag này để kiểm thử và tính toán độ quan trọng thuộc tính của các cây CART trong rừng.
3 Xây dựng thuật toán Random Forest 3.1 Mô tả thuật toán
Tóm tắt thuật toán Random Forest cho phân loại dữ liệu:
Bước 1: Từ tập dữ liệu huấn luyện D, ta tạo dữ liệu ngẫu nhiên (mẫu bootstrap) Bước 2: Sử dụng các tập con dữ liệu lấy mẫu ngẫu nhiên D1, D2 ,…, D xây dựng nên cáck
cây T , T12,…,T k
Bước 3: Kết hợp các cây: sử dụng chiến lược bình chọn theo số đông với bài toán phân loại hoặc lấy trung bình các giá trị dự đoán từ các cây với bài toán hồi quy.
3.2 Out – Of – Bag (OOB)
Do sử dụng phương pháp bootstrap lấy mẫu ngẫu nhiên có hoàn lại nên các tập dữ liệu con có khoảng 2/3 các mẫu không trùng nhau dùng để xây dựng cây, các mẫu ngày được gọi là in-bag Khoảng 1/3 số mẫu còn lại gọi là out-of-bag, do không tham gia vào việc xây dựng cây nên Random Forest dùng luôn các mẫu out-of-bag này để kiểm thử và tính toán độ quan trọng thuộc tính của các cây CART trong rừng cũng như 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 Trong random forest OOB được tính như sau:
Trang 10Giả sử có một phương pháp cho việc xây dựng một bộ phân loại từ bất kỳ tập huấn luyện nào Cho một tập huấn luyện D ban đầu, sử dụng phương pháp bootstrap xây dựng được tập huấn luyện , sau đó xây dựng các bộ phân loại h(x, ) và sử dụng các bộ𝐷𝑘 𝐷𝑘
phân loại 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 loại đối với những tập 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 Random Forest 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 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 OOB 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à OOB (Risk out of bag)𝑅
4 Ưu điểm và nhược điểm của Random Forest 4.1 Ưu điểm
+ Random Forest có khả năng thực hiện cả hai nhiệm vụ Phân loại và Hồi quy + Nó có khả năng xử lý các tập dữ liệu lớn với kích thước cao
+ Random forests cũng có thể xử lý các giá trị còn thiếu Có hai cách để xử lý các giá trị này: sử dụng các giá trị trung bình để thay thế các biến liên tục và tính toán mức trung bình gần kề của các giá trị bị thiếu.
+ Nó nâng cao độ chính xác của mô hình và ngăn chặn vấn đề trang bị quá mức (Trang bị quá mức là một thách thức cơ bản trong học máy và trí tuệ nhân tạo, trong đó một mô hình học quá nhiều từ dữ liệu huấn luyện, thu thập các chi tiết không cần thiết và nhiễu không khái quát tốt cho dữ liệu mới hoặc chưa nhìn thấy Hiện tượng này dẫn đến độ chính xác dự đoán trên tập dữ liệu thực tế thấp hơn, khiến mô hình kém hiệu quả hơn so với mục đích đã định.)
4.2 Nhược điểm:
+Random forests chậm tạo dự đoán bởi vì nó có nhiều cây quyết định Bất cứ khi nào nó đưa ra dự đoán, tất cả các cây trong rừng phải đưa ra dự đoán cho cùng một đầu vào cho trước và sau đó thực hiện bỏ phiếu trên đó Toàn bộ quá trình này tốn thời gian Mô hình khó hiểu hơn so với cây quyết định, nơi bạn có thể dễ dàng đưa ra quyết định bằng cách đi theo đường dẫn trong cây.
+Dung lượng bộ nhớ: Random Forest yêu cầu một lượng bộ nhớ đáng kể để lưu trữ các cây quyết định, đặc biệt khi số lượng cây lớn và tập dữ liệu lớn.
+Tính toán: So với một số mô hình đơn giản hơn, Random Forest có thể tốn nhiều thời gian tính toán hơn, đặc biệt khi số lượng cây và độ sâu của cây lớn
5 Ứng dụng của thuật toán Random Forest Ứng dụng của rừng ngẫu nhiên
Chủ yếu có bốn lĩnh vực mà Rừng ngẫu nhiên chủ yếu được sử dụng:
8
Trang 11Dự báo thời tiết: Random Forest có thể được sử dụng để dự đoán thời tiết dựa trên dữ liệu lịch sử và dữ liệu hải quan.
Y tế: Trong lĩnh vực y tế, Random Forest có thể được ứng dụng trong việc dự đoán các bệnh, phân loại ảnh y khoa, phân tích dữ liệu lâm sàng, v.v.
Tài chính: Random Forest có thể được sử dụng để dự đoán rủi ro tín dụng, phân loại khách hàng dựa trên hành vi tài chính, và nhiều ứng dụng khác trong lĩnh vực tài chính Thị trường chứng khoán: Random Forest có thể được áp dụng để dự đoán xu hướng thị trường, phân loại cổ phiếu dựa trên các yếu tố tài chính và kỹ thuật, v.v.
Phân tích hình ảnh và video: Trong lĩnh vực thị giác máy tính, Random Forest có thể được sử dụng để nhận diện đối tượng, phân loại hình ảnh, và phân tích video.
Hệ thống đề xuất: Random Forest có thể được sử dụng để tạo ra các hệ thống đề xuất dựa trên lịch sử người dùng và dữ liệu về sản phẩm/dịch vụ.
Như vậy, Random Forest có thể được áp dụng trong nhiều lĩnh vực khác nhau và là một trong những công cụ quan trọng trong học máy và khoa học dữ liệu.
6 So sánh giữa Random Forest và Decision Tree Sự khác biệt giữa cây quyết định và rừng ngẫu nhiên
Cây quyết định (Decision Tree) và rừng ngẫu nhiên (Random Forest) là hai thuật toán học máy phổ biến được sử dụng trong nhiều lĩnh vực khác nhau Dưới đây là một số sự khác biệt chính giữa chúng:
Cách hoạt động:
Cây quyết định: Là một cấu trúc cây có nhiều nhánh và nút Tại mỗi nút, thuật toán quyết định dự đoán dự báo bằng cách kiểm tra các thuộc tính của dữ liệu đầu vào.
Rừng ngẫu nhiên: Là một tập hợp nhiều cây quyết định khác nhau Khi đưa ra một dự đoán, mỗi cây trong rừng ngẫu nhiên đóng góp một phiếu bầu, và kết quả cuối cùng được quyết định dựa trên số phiếu bầu này.
Tính đa dạng:
Cây quyết định: Một cây quyết định đơn lẻ thường có tend to overfit (tập trung quá mức vào dữ liệu huấn luyện, không thể áp dụng tốt cho dữ liệu mới).
Rừng ngẫu nhiên: Bằng cách kết hợp nhiều cây quyết định, rừng ngẫu nhiên giúp giảm nguy cơ overfitting và tăng tính đa dạng trong dự đoán.
Xử lý dữ liệu nhiễu:
Cây quyết định: Nhạy cảm với dữ liệu nhiễu Cây quyết định có thể tạo ra các nhánh nhánh nhỏ quá phức tạp và dẫn đến overfitting.
Rừng ngẫu nhiên: Có khả năng xử lý dữ liệu nhiễu tốt hơn do tính đa dạng của nó Mỗi cây chỉ nhìn vào một phần nhỏ của dữ liệu, giúp giảm ảnh hưởng của dữ liệu nhiễu Tố chất dự báo:
Cây quyết định: Có thể dễ dàng diễn giải kết quả vì cây quyết định có cấu trúc hình cây.
Trang 12Rừng ngẫu nhiên: Thường có độ chính xác dự báo cao hơn và khó diễn giải hơn do phải xem xét nhiều cây.
Tố chất tính toán:
Cây quyết định: Nhanh trong việc huấn luyện, nhưng có thể tạo ra cây quá phức tạp dẫn đến overfitting.
Rừng ngẫu nhiên: Một chút chậm hơn trong việc huấn luyện do phải xây dựng nhiều cây, nhưng thường tốn ít công sức hơn để tối ưu hóa và cho kết quả tốt hơn trên dữ liệu mới Tóm lại, cây quyết định và rừng ngẫu nhiên là hai kỹ thuật học máy quan trọng và hữu ích, mỗi cái có ưu điểm và ứng dụng riêng biệt Việc chọn một trong hai phụ thuộc vào loại dữ liệu, mục tiêu của bài toán và yêu cầu cụ thể của tác vụ bạn đang thực hiện.
10