Thuật toán Random Forest tạo ra các cây quyết định trên các mẫu dữ liệu và sau đó lấy dự đoán từ mỗi cây trong số chúng và cuối cùng chọn giải pháp tốt nhất bằng cách bỏ phiếu.. Quá trìn
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
-BÁO CÁO GIỮA KÌ MÔN : KHAI PHÁ DỮ LIỆU
Đề tài : RANDOM FOREST AGRORITHSM
(Thuật toán Rừng cây ngẫu nhiên)
Nhóm SVTH: Nhóm 9 Lớp: D01
GVHD: ThS.Nguyễn Hoàng Ân
Tp Hồ Chí Minh, tháng 11 năm 2023
Trang 2Hình 2.8 Biểu đồ phân phố ố lần liên lạc (Campaign).i s 13Hình 2.9 Biểu đồ phân phố ố ngày từ ộc gọi s cu i trước đó (Pdays) 14Hình 2.10 Biểu đồ phân phố ố ngày từ i s cuộc gọi trước đó (Pdays) 14
Hình 2.13 Biểu đồ mối liên hệ giữa nghề nghiệp của Khách hàng (job) với việc
Trang 3MỤC LỤC
CHƯƠNG 1 ỚI THIỆU CHUNG VỀ GI THUẬT TOÁN RANDOM FOREST 1
1.6 Nguyên lý hoạt động của thuật toán Random Forest 41.7 Sự khác biệt giữa cây quyế ịnh và Random Forestt đ 6CHƯƠNG 2 XÂY DỰNG MỘT MÔ HÌNH PHÂN LOẠI BẰNG RANDOM
2.2 Quá trình xây dựng và đánh giá mô hình phân loạ ập dữ i t liệu 10
Trang 41
CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ THUẬT TOÁN RANDOM FOREST
1.1 Giới thiệu Thuật toán
Random Forest là một thuật toán có giám sát được sử dụng cho cả phân loại cũng như hồi quy Tuy nhiên, nó chủ yếu được sử dụng cho các bài toán phân loại
là một tập hợp của các Decision Tree, mà mỗi cây được chọn theo một thuật toán dựa vào ngẫu nhiên Thuật toán Random Forest tạo ra các cây quyết định trên các mẫu dữ liệu và sau đó lấy dự đoán từ mỗi cây trong số chúng và cuối cùng chọn giải pháp tốt nhất bằng cách bỏ phiếu Đây là một phương pháp tổng hợp tốt hơn một cây quyết định đơn lẻ vì nó làm giảm sự phù hợp quá mức bằng cách lấy trung bình kết quả
1.2 Các đặc điểm của Random Forest
✓ Tích hợp của nhiều cây quyết định
Random Forest kết hợp một số cây quyết định để tạo ra một mô hình tổng hợp Mỗi cây quyết định được huấn luyện độc lập trên một phần ngẫu nhiên của dữ liệu và sử dụng một phần ngẫu nhiên của các đặc trưng (feature) Quá trình này cho phép Random Forest tận dụng sự đa dạng trong dữ liệu và đặc trưng để tạo ra một mô hình mạnh mẽ hơn và tránh tình trạng overfitting, là hiện tượng mô hình quá phù hợp với dữ liệu huấn luyện nhưng kém trong việc dự đoán dữ liệu mới Random Forest cũng cho phép đánh giá tầm quan trọng của các đặc trưng trong việc đưa ra quyết định, giúp cải thiện khả năng diễn giải của mô hình
✓ Sự đa dạng trong các cây quyết định
Để đảm bảo tính đa dạng trong các cây quyết định, Random Forest sử dụng một kỹ thuật quan trọng được gọi là tái chọn mẫu ngẫu nhiên (bootstrap) để tạo ra
Trang 52
các tập dữ liệu con riêng biệt cho mỗi cây quyết định Trong quá trình này, một số mẫu từ tập dữ liệu gốc được lựa chọn ngẫu nhiên để tạo thành các tập con khác nhau, mỗi tập con này sẽ được sử dụng để huấn luyện một cây quyết định riêng
Kỹ thuật này giúp đảm bảo tính đa dạng trong mô hình Random Forest bằng cách đảm bảo rằng mỗi cây quyết định được huấn luyện trên một dữ liệu con khác nhau Kết quả là, mô hình tổng hợp tránh hiện tượng overfitting (quá khớp) và trở nên mạnh mẽ hơn trong việc dự đoán dữ liệu mới
✓ Tính ổn định và khả năng chống nhiễu của Random Forest:
Một ưu điểm quan trọng của Random Forest là khả năng giảm thiểu tác động của nhiễu (noise) trong dữ liệu Điều này được thực hiện thông qua việc tích hợp nhiều cây quyết định vào mô hình Khi kết hợp nhiều cây quyết định, Random Forest tạo ra một mô hình tổng hợp có tính ổn định và khả năng khái quát hóa tốt hơn.Nhờ vào việc sử dụng nhiều cây quyết định độc lập, mô hình Random Forest trở nên ít nhạy cảm đối với dữ liệu nhiễu Điều này có nghĩa là nếu có sự nhiễu trong
dữ liệu đầu vào, mô hình sẽ có khả năng tạo ra dự đoán chính xác hơn so với các mô hình đơn lẻ Điều này cải thiện tính ổn định và đáng tin cậy của mô hình trong việc
xử lý dữ liệu thực tế, nơi nhiễu thường xảy ra
1.3 Ưu điểm của Random Forest
✓ Khả năng thực hiện cả hai nhiệm vụ Phân loại và Hồi quy
có thể được sử dụng cho cả phân lớp và hồi quy
✓ Xử lý các tập dữ liệu lớn với kích thước cao: Nó có khả năng xử lý các tập
dữ liệu lớn với kích thước cao
✓ Khả năng xử lý dữ liệu bị thiếu: Random Forest có thể xử lý dữ liệu bị thiếu
và vẫn duy trì độ chính xác
✓ Không yêu cầu chuẩn hóa dữ liệu: Random Forest không yêu cầu chuẩn hóa
dữ liệu
Trang 63
✓ Giảm thiểu overfitting: Bằng cách sử dụng nhiều cây quyết định, Random
Forest giảm thiểu nguy cơ overfitting
✓ Tính năng quan trọng: Random Forest cung cấp một cách dễ dàng để đánh
giá sự quan trọng của từng tính năng
✓ Khả năng mô hình hóa tương tác tính năng: Random Forest có thể mô hình
hóa tương tác giữa các tính năng
✓ Khả năng chịu nhiễu tốt: Random Forest có khả năng chịu nhiễu tốt.
✓ Dễ dàng để điều chỉnh và tối ưu hóa: Có nhiều tham số có thể được điều
chỉnh để tối ưu hóa mô hình
✓ Khả năng mở rộng: Random Forest có thể được mở rộng để xử lý các vấn đề
phức tạp
1.4 Nhược điểm của Random Forest
Mặc dù Random Forest có thể được sử dụng cho cả nhiệm vụ phân loại và hồi quy, nó không phù hợp hơn cho các nhiệm vụ Hồi quy
✓ Phức tạp: Sự phức tạp là nhược điểm chính của các thuật toán Rừng ngẫu
nhiên Việc xây dựng Rừng ngẫu nhiên khó và tốn thời gian hơn nhiều so với cây quyết định
✓ Yêu cầu nhiều tài nguyên tính toán: Cần nhiều tài nguyên tính toán hơn để
triển khai thuật toán Rừng ngẫu nhiên
✓ Kém trực quan: Nó kém trực quan hơn trong trường hợp chúng ta có một bộ
sưu tập lớn các cây quyết định
✓ Chậm tạo dự đoán: 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 đó
1.5 Các ứng dụng của Random Forest
Random Forest có thể được sử dụng để giải quyết nhiều loại bài toán phân loại, bao gồm:
Trang 71
317 qd nhno hsx Agribank
-None
3
50 BÀI TẬP TỪ ĐỒNG NGHĨA Mức độ
Vat ly dai
cuong 94% (17)
14
Scarselli 2009 - mô hình neural network
Trang 84
• Phân loại hình ảnh: Sử dụng để phân loại các đối tượng trong hình ảnh, chẳng hạn như phân loại các đối tượng trong ảnh chụp tự động hoặc phân loại các tế bào ung thư trong ảnh chụp y tế
• Phân loại văn bản: Sử dụng để phân loại văn bản, chẳng hạn như phân loại email thành spam hoặc không spam hoặc phân loại các bài báo thành các chủ
đề khác nhau
• Phân loại dữ liệu khách hàng: Để phân loại dữ liệu khách hàng, chẳng hạn như phân loại khách hàng thành các nhóm khác nhau dựa trên hành vi mua sắm của họ hoặc phân loại khách hàng có khả năng rời bỏ công ty hay không
Một số trường hợp sử dụng cụ thể của Random Forest trong lĩnh vực Tài chính, Ngân
✓ Dự báo Rủi ro Tín dụng:
Mô hình Hồi quy Random Forest: Sử dụng để dự đoán các biến liên tục như mức độ nợ hoặc rủi ro tín dụng dựa trên các biến đầu vào như lịch sử tín dụng, tỷ lệ
nợ, và thu nhập
✓ Phân loại Giao dịch Gian lận:
Mô hình Phân loại Random Forest: Sử dụng để phân loại các giao dịch thành các lớp như "bình thường" và "nghi ngờ" dựa trên các đặc trưng như mô hình hành
vi giao dịch và số liệu thống kê
✓ Dự đoán Giá Cổ Phiếu và Thị Trường Tài chính:
Mô hình Hồi quy Random Forest: Áp dụng để dự đoán giá cổ phiếu và các chỉ
số thị trường dựa trên lịch sử giá cổ phiếu, chỉ số tài chính, và các yếu tố khác
✓ Phân loại Khách hàng và Tiếp thị Đối tượng:
Mô hình Phân loại Random Forest: Được triển khai để phân loại khách hàng thành các phân khúc dựa trên hành vi tài chính, giúp tối ưu hóa chiến lược tiếp thị và quản lý quan hệ khách hàng
1.6 Nguyên lý hoạt động của thuật toán Random Forest
English - huhuLed hiển thị 100% (3)
10
Trang 9Thuật toán hoạt động theo 4 bước cơ bản
Bước 1 Tạo ra một tập con ngẫu nhiên từ bộ dữ liệu huấn luyện bằng cách sử dụng phương pháp Bootstrap Phương pháp này giúp tạo ra các tập con có số lượng mẫu bằng với số lượng mẫu trong bộ dữ liệu gốc, nhưng có thể chứa các mẫu trùng lặp và mẫu bị bỏ sót
Bước 2 Xây dựng một cây quyết định (Decision Tree) cho mỗi tập con dữ liệu Quá trình xây dựng cây này được thực hiện bằng cách lặp lại các bước sau:
✓ Chọn ngẫu nhiên một số lượng thuộc tính từ tập hợp các thuộc tính có sẵn Số lượng thuộc tính được chọn thường nhỏ hơn tổng số thuộc tính có sẵn
✓ Tại mỗi nút của cây, sử dụng một tiêu chí để chọn thuộc tính tốt nhất để phân chia dữ liệu Tiêu chí này thường dựa trên sự tách biệt giữa các lớp dữ liệu hoặc độ sắp xếp của dữ liệu trong thuộc tính
✓ Tiếp tục chia các nút con cho đến khi đạt được điều kiện dừng, chẳng hạn như đạt đến độ sâu tối đa hoặc không còn dữ liệu hoặc không thể tách tiếp
Bước 3 Lặp lại bước 1 và bước 2 nhiều lần để tạo ra một tập hợp các cây quyết định
Số lượng cây được xác định trước thông qua tham số
Bước 4 Khi dự đoán, mỗi cây trong tập hợp sẽ đưa ra dự đoán riêng của mình Đối với bài toán phân loại, phương pháp đa số (majority voting) được sử dụng để đưa ra
dự đoán cuối cùng Đối với bài toán hồi quy, dự đoán cuối cùng là giá trị trung bình của các dự đoán từ các cây
Trang 106
Sơ đồ dưới đây giải thích hoạt động của thuật toán Random Forest:
Hình 1.1 Sơ đồ mô t ả hoạt đ ộng của Random Forest.
1.7 Sự khác biệt giữa cây quyết định và Random Forest
Tính năng Cây quyết định Rừng ngẫu nhiên
Độ chính xác Độ chính xác có thể thay đổi Độ chính xác cao
Trang 117
Bảng 1.1 Sự khác biệt giữa Cây quyế ịnh và thuật toán Random Forest t đ
CHƯƠNG 2 XÂY DỰNG MỘT MÔ HÌNH PHÂN LOẠI BẰNG RANDOM FOREST BẰNG CÁCH SỬ DỤNG THƯ VIỆN SCIKIT-LEARN.
2.1 Giới thiệu
Trong dự án này, lĩnh vực mà nhóm lựa chọn là marketing Cụ thể, Bộ dữ liệu này liên quan đến chiến dịch tiếp thị ngân hàng, với các thuộc tính như tuổi, nghề nghiệp, tình trạng hôn nhân, trình độ học vấn, Bộ dữ liệu này phản ánh nhiều khía cạnh của người tiếp thị và ngân hàng cũng như hành vi của khách hàng trong chiến dịch tiếp thị
Bộ dữ liệu có tên là bank_direct_marketing_campaign.csv, gồm 41188 phần
tử, 20 biến
Hình 2.1 Mô t ả bộ dữ liệu.
Trang 128
Hình 2.2 Mô t ả bộ dữ liệu.
Các thông tin về các biến
Thông tin về khách hàng ngân hàng:
(số)
: loại công việc (Biến phân loại:
: tình trạng hôn nhân (Biến phân loại:
"divorced","married","single","unknown"; lưu ý: "divorced" có nghĩa là đã ly hôn hoặc góa phụ)
(Biến phân loại:
: Có tín dụng mặc định không? (Biến phân loại: "no","yes","unknown"): Có khoản vay nhà không? (Biến phân loại: "no","yes","unknown"): Có khoản vay cá nhân không? (Biến phân loại: "no","yes","unknown")
Trang 139
Liên quan đến liên lạc cuối cùng trong chiến dịch hiện tại:
: Loại hình liên lạc (Biến phân loại: "cellular","telephone")
: Tháng liên lạc cuối cùng trong năm (Biến phân loại: "jan", "feb", "mar",
: ngày liên lạc cuối cùng trong tuần (Biến phân loại:
: thời lượng liên lạc cuối cùng, tính bằng giây (số) Lưu ý quan trọng: thuộc tính này ảnh hưởng lớn đến mục tiêu đầu ra (ví dụ, nếu duration=0 thì y="no") Tuy nhiên, thời lượng không biết trước khi thực hiện cuộc gọi Ngoài ra, sau khi cuộc gọi kết thúc, y là rõ ràng Do đó, biến đầu vào này chỉ nên được bao gồm cho mục đích so sánh và nên được loại bỏ nếu ý định là tạo một mô hình dự đoán thực tế.Các thuộc tính khác:
: số lần liên lạc thực hiện trong chiến dịch này và đối với khách hàng này (số, bao gồm cả liên lạc cuối cùng)
: số ngày đã trôi qua kể từ khi khách hàng được liên lạc cuối cùng từ chiến dịch trước đó (số; 999 có nghĩa là khách hàng chưa được liên lạc trước đó)
– số lần liên lạc thực hiện trước chiến dịch này và đối với khách hàng này (số)
: kết quả của chiến dịch tiếp thị trước đó (phân loại:
Các thuộc tính về ngữ cảnh xã hội và kinh tế
: tỷ lệ biến động việc làm chỉ số theo quý (số)
: chỉ số giá tiêu dùng chỉ số hàng tháng (số)
: chỉ số tin cậy của người tiêu dùng chỉ số hàng tháng (số)
Trang 1410
: tỷ lệ euribor 3 tháng chỉ số hàng ngày (số)
: số lượng nhân viên chỉ số theo quý (số)
Biến đầu ra (mục tiêu mong muốn):
Khách hàng đã đăng ký một khoản tiết kiệm không? (Nhị phân: "yes","no")
2.2 Quá trình xây dựng và đánh giá mô hình phân loại tập dữ liệu.
2.1.1 Tiền xử lý dữ liệu
Import thư viện
Sử dụng các lệnh import để đưa vào chương trình các thư viện cần thiết, bao gồm Pandas (đối với xử lý dữ liệu), NumPy (đối với tính toán số học), Matplotlib và Seaborn (đối với trực quan hóa dữ liệu), cũng như một số phần của Scikit learn (đối với tiền xử
Thống kê mô tả tập dữ liệu trong google colab
Đọc dữ liệu vào DataFrame
Hiển thị một số dòng đầu tiên của DataFrame:
Trang 1511
Sử dụng df.head() để xem một số dòng đầu tiên của DataFrame
Hình 2.3 Hiển thị mộ ố dòng đầu tiên của DataFrame t s
Thống kê mô tả:
Sử dụng df.describe() để xem các thống kê mô tả như mean, min, max, và các phần
Hình 2.4 Mô t ả dữ liệu.
Thông tin về dữ liệu:
Sử dụng df.info() để xem thông tin về dữ liệu, bao gồm số lượng giá trị không thiếu
và loại dữ liệu của từng cột
Trang 1612
Hình 2.5 Thông tin về dữ liệu.
Kiểm tra dữ liệu bị thiếu
Hình 2.6 ểm tra dữ ệu bị Ki li thiếu.
Khi kiểm tra, nhóm không phát hiện biến có dữ liệu bị thiếu
2.1.2 Trực quan hóa dữ liệu
Vẽ các biểu đồ và đ th ồ ị để hiểu rõ hơn về phân phố ủa các biế i c n.
Biểu đồ phân phối tuổi (Age)
Trang 1713
Hình 2.7 ểu đồ phân phố Bi i tu ổi (Age).
Biểu đồ phân phối số lần liên lạc (Campaign)
Hình 2.8 ểu đồ phân phố ố lần liên lạc (Campaign) Bi i s
Biểu đồ phân phối số ngày từ cuộc gọi trước đó (Pdays)
Trang 1814
Hình 2.9 ểu đồ phân phố ố ngày từ Bi i s cuộc gọi trư ớc đó (Pdays).
Hình 2.10 ểu đồ phân phố ố ngày từ ộc gọ Bi i s cu i trư ớc đó (Pdays).
Biểu đồ phân phối biến mục tiêu (Y)
Hình 2.11 Biểu đồ phân phố i bi ến mục tiêu (Y).
Trang 1915
Nhận xét: Tỷ lệ giữa các giá trị mục tiêu là no và yes là 2:1 Điều này cho thấy rằng biến mục tiêu (Y) có phân phối lệch về phía giá trị no Số lượng các khách hàng có giá trị mục tiêu là yes tương đối ít Điều này cho thấy rằng chỉ có một số lượng nhỏ các khách hàng trong tập dữ liệu là những khách hàng tiềm năng có khả năng mua
Phân tích mối quan hệ giữa các biến để tìm ra các xu hướng và mẫu.
Phân tích mối quan hệ giữa tuổi và số lần liên lạc
Hình 2.12 ểu đồ mối liên hệ giữa Age và Camppaign Bi
Nhận xét:
Phân tích mối quan hệ giữa tuổi và số lần liên lạc
Biểu đồ phân tán giữa tuổi và số lần liên lạc của khách hàng trong tập dữ liệu cho thấy mối quan hệ không tuyến tính Số lần liên lạc có xu hướng tăng khi tuổi tăng, nhưng tốc độ tăng trưởng giảm dần khi tuổi cao hơn Cụ thể, khách hàng ở độ
Trang 2016
tuổi 20 30 có khoảng 20 lần liên lạc trung bình, trong khi khách hàng ở độ tuổi 30
40 tăng lên khoảng 25 lần Đối với khách hàng ở độ tuổi 40 50, số lần liên lạc tăng lên khoảng 30 lần, nhưng cho các khách hàng trên 50 tuổi, tăng chỉ khoảng 35 lần
Có thể giải thích điều này bằng nhiều yếu tố như sự rảnh rỗi của khách hàng trẻ hoặc nhu cầu sản phẩm và dịch vụ của khách hàng lớn tuổi
mối liên hệ giữa nghề nghiệp của Khách hàng (job) với việc đăng
ký tài khoản tiết kiệm (Y)
Hình 2.13 ểu đồ mối liên hệ giữa nghề nghiệp của Khách hàng (job) với việc đăng Bi
ký tài khoản tiế t ki ệm (Y).
2.1.3 Mô hình hóa dữ liệu:
Chia tập dữ liệu thành tập huấn luyện và tập kiểm tra
Trang 2117
Hình 2.14 Chia t ập Test và tập Train.
ử dụng mô hình Random Forest để dự đoán việc đăng ký khoản tiết kiệm
Hình 2.15 Dự đoán việ c đăng ký kho ản tiết kiệ m.
Hình 2.16 Dự đoán việ c đăng ký kho ản tiết kiệ m.
Đánh giá hiệu suất sử dụng các độ đo như độ chính xác, đồng bộ, và F1 score