- Cây quyết định mô hình hóa các dự đoán thông qua các phép phân tách đệ quy được lựa chọn để giảm thiểu sự không thuần khiết, sử dụng các thước đo như Gini, entropy hoặc phương sai.
- Information Gain hướng dẫn việc lựa chọn đặc trưng và ngưỡng tại mỗi nút, cho phép cây quyết định cả việc xử lý hồi quy và phân loại.
- Các siêu tham số như max_depth, min_samples_split và min_information_gain kiểm soát hiện tượng quá khớp và độ phức tạp của cây quyết định.
- Hiểu rõ cơ chế hoạt động của cây đơn là điều cần thiết trước khi chuyển sang các thuật toán kết hợp như rừng ngẫu nhiên, vốn giúp ổn định và nâng cao hiệu suất.
Xây dựng mô hình hồi quy cây quyết định từ đầu là một trong những bài tập bổ ích nhất nếu bạn muốn thực sự hiểu cách các mô hình dựa trên cây suy nghĩ và tại sao chúng lại phổ biến trong học máy. Thay vì coi cây quyết định như một hộp đen bí ẩn, bạn sẽ thấy cách mỗi nhánh được chọn, cách đo lường độ không thuần khiết và cách tạo ra các dự đoán số tại các lá, cho cả bài toán hồi quy và phân loại.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu những ý tưởng cốt lõi đằng sau cây quyết định, các hàm chi phí mà chúng sử dụng, cách chúng tìm kiếm các điểm phân chia tốt nhất và cách lập trình một cây cơ bản hỗ trợ cả hồi quy và phân loại, chỉ sử dụng các khái niệm cơ bản như vòng lặp, điều kiện và thống kê đơn giản. Trong quá trình này, chúng ta sẽ so sánh cây hồi quy với cây phân loại, kết nối lý thuyết với các triển khai thực tế trong các công cụ như Python và R (ví dụ: với rpart và tree), và đặt cây quyết định vào vị trí của các hệ thống tổng hợp lớn hơn như rừng ngẫu nhiên.
Cây quyết định là gì và tại sao nó lại trực quan đến vậy?
Về bản chất, cây quyết định là một chuỗi các câu hỏi có/không (hoặc các quy tắc đơn giản) hướng dẫn bạn từ quyết định gốc đến dự đoán cuối cùng ở nút lá. Trong một thiết lập học có giám sát điển hình, mục tiêu là dự đoán một biến mục tiêu. Y Sử dụng nhiều biến dự đoán (đặc trưng, biến đồng biến), cây quyết định sẽ học một chuỗi các câu hỏi như “cân nặng có nhỏ hơn hoặc bằng 103 không?” hoặc “quốc gia có thuộc {Mỹ, Anh, Canada} không?” để dần dần phân chia dữ liệu thành các nhóm đồng nhất hơn.
Để dễ hình dung hơn, hãy tưởng tượng bạn muốn dự đoán xem ai đó có béo phì hay không chỉ dựa trên chiều cao và cân nặng, và bạn có một tập dữ liệu được dán nhãn cho biết ai béo phì và ai không. Một thuật toán cây có thể phát hiện ra một quy tắc như “nếu cân nặng > 100 kg, dự đoán là béo phì”, nhưng quy tắc đó sẽ không hoàn hảo: một số người trên 100 kg sẽ không bị béo phì, và một số người dưới ngưỡng đó sẽ bị béo phì. Sau đó, thuật toán cây tiếp tục thêm nhiều câu hỏi hơn (phân nhánh nhỏ), ví dụ như về chiều cao hoặc ngưỡng cân nặng được tinh chỉnh, để “tinh chỉnh” những dự đoán sơ bộ ban đầu đó.
Mỗi nút bên trong cây tương ứng với một quy tắc quyết định, mỗi nhánh tương ứng với một kết quả của quy tắc đó, và mỗi nút lá tương ứng với một vùng trong không gian đặc trưng nơi các dự đoán là không đổi. Trong phân loại, một nút lá trả về nhãn lớp (hoặc phân bố xác suất trên các nhãn); trong hồi quy, một nút lá thường trả về giá trị trung bình của các giá trị mục tiêu nằm trong vùng đó.
Một trong những ưu điểm chính của cây quyết định là chúng xử lý cả hồi quy và phân loại một cách tự nhiên, dễ hiểu và hoạt động với cả các biến dự báo định lượng và định tính (phân loại) mà không cần xử lý sơ bộ phức tạp. Bạn không cần phải giả định bất kỳ phân bố cụ thể nào cho các đặc trưng hoặc mục tiêu của mình, điều này làm cho cây quyết định trở nên rất hấp dẫn trong các tình huống thực tế, nơi các giả định tuyến tính cổ điển thường bị vi phạm.
Cây phân loại so với cây hồi quy
Mặc dù cấu trúc của cây phân loại và cây hồi quy là giống nhau, nhưng bản chất của biến phản hồi Y và hàm chi phí được sử dụng để phân chia lại khác nhau giữa hai loại này. Khi Y là biến định lượng (ví dụ: doanh số bán hàng, tuổi thọ, mức tiêu thụ nhiên liệu), chúng ta nói về cây hồi quy; khi Y là biến định tính hoặc biến phân loại (ví dụ: sống sót so với không sống sót, béo phì so với không béo phì), chúng ta nói về cây phân loại.
Trong cây hồi quy, mục tiêu thông thường là phân chia không gian đặc trưng thành các vùng mà tại đó biến phản hồi có thể được xấp xỉ bằng một hằng số, thường là giá trị trung bình của các quan sát trong vùng đó. Các quy tắc quyết định điển hình có dạng “là xk ≤ c?”, trong đó xk là một trong các biến độc lập và c là ngưỡng; các quy tắc này liên tục chia không gian thành các siêu hình chữ nhật, và tất cả các điểm trong cùng một siêu hình chữ nhật đều có cùng giá trị dự đoán ŷ.
Trong cây phân loại, các phép chia vẫn là "đặc trưng ≤ ngưỡng?" hoặc "danh mục thuộc tập S?", nhưng chất lượng của một phép chia được đo bằng mức độ thuần khiết của các nút con thu được về mặt nhãn lớp. Dự đoán lá thường là lớp chiếm đa số bên trong nút đó, và mô hình cố gắng tạo ra các lá càng gần với việc chỉ chứa một lớp duy nhất càng tốt.
Bất chấp những khác biệt về loại mục tiêu, từ góc độ lập trình, bạn có thể triển khai một cấu trúc cây tổng quát duy nhất và chỉ cần thay thế các thước đo độ không thuần khiết hoặc tổn thất khác nhau tùy thuộc vào việc bạn đang thực hiện hồi quy hay phân loại. Sau này, khi tính toán Thông tin Tăng (Information Gain), bạn sẽ thấy rằng các công thức phân loại (dựa trên entropy) và hồi quy (dựa trên phương sai) có sự tương đồng về mặt nguyên tắc.
Hàm tạp chất và chi phí trong cây quyết định
Cốt lõi của bất kỳ thuật toán cây quyết định nào đều nằm ở hàm chi phí, đánh giá mức độ hiệu quả của một phép chia cụ thể trong việc phân tách dữ liệu thành các nhóm có ý nghĩa. Hàm chi phí này được biểu thị theo độ không thuần khiết: một nút được coi là thuần khiết nếu tất cả các mẫu của nó thuộc cùng một lớp (đối với phân loại) hoặc có giá trị số gần như nhau (đối với hồi quy).
Mỗi khi bạn chọn một phân vùng ứng viên trên một thuộc tính, thuật toán sẽ xem xét các nút con mà nó tạo ra và hỏi: “Các nhãn (hoặc giá trị) trong mỗi nút con được trộn lẫn như thế nào?” Một phép chia tốt là phép chia tạo ra các nút con ít tạp chất hơn nhiều so với nút cha, điều đó có nghĩa là dữ liệu bên trong mỗi nút con đồng nhất hơn về mặt dữ liệu mục tiêu.
Trong cây phân loại, độ không thuần khiết thường được đo bằng các tiêu chí như chỉ số Gini hoặc entropy, cả hai đều thể hiện mức độ khả năng một quan sát được chọn ngẫu nhiên trong nút đó bị phân loại sai nếu ta chỉ đơn giản dự đoán lớp chiếm đa số. Trong cây hồi quy, độ không thuần khiết thường được đo bằng bình phương sai số hoặc phương sai, phản ánh mức độ phân tán của các giá trị mục tiêu trong nút.
Chỉ số Gini: đo lường độ tạp chất trong cây phân loại
Chỉ số Gini là một trong những thước đo độ không thuần khiết được sử dụng phổ biến nhất cho cây phân loại vì nó dễ tính toán và hoạt động tốt trong thực tế. Về mặt khái niệm, nó đo lường xác suất một quan sát được chọn ngẫu nhiên từ nút đó sẽ bị phân loại sai nếu nhãn của nó được dự đoán theo phân bố nhãn trong nút đó.
Nếu một nút chứa các lớp có xác suất P1, P2, …, PnChỉ số Gini được tính như sau: Gini = 1 − Σ (Pi)XNUMX. Khi một nút hoàn toàn thuần khiết (tất cả các quan sát thuộc cùng một lớp), một trong các xác suất bằng 1 và các xác suất còn lại bằng 0, do đó tổng bình phương bằng 1 và chỉ số Gini bằng 0, cho thấy độ thuần khiết hoàn toàn.
Mặt khác, chỉ số Gini đạt giá trị tối đa khi các lớp được phân bố đều bên trong nút, ví dụ như trong bài toán nhị phân với P.1 = P2 = 0.5, từ đó suy ra Gini = 1 − (0.5² + 0.5²) = 0.5. Trong trường hợp đó, việc dự đoán lớp chiếm đa số là điều tồi tệ nhất có thể đối với phân bố đó vì nút đó chứa một nửa số lượng của mỗi lớp.
Khi bạn triển khai Gini trong mã, bạn thường lấy vectơ nhãn cho nút, tính tần suất của mỗi lớp, chuyển đổi tần suất thành xác suất, và sau đó áp dụng công thức 1 − Σ p². Nếu bạn thực hiện điều này cho nhiều phương án phân chia tiềm năng, bạn có thể so sánh phương án nào tạo ra các nhánh con có độ tạp Gini trung bình có trọng số thấp hơn, đây chính xác là điều mà cây quyết định phân vùng tốt nhất dựa trên thông tin thu được.
Entropy: một góc nhìn khác về sự không thuần khiết trong phân loại
Entropy là một thước đo độ không thuần khiết thay thế được sử dụng rộng rãi trong lý thuyết thông tin và trong các thuật toán cây đời đầu như ID3 và C4.5, và nó thể hiện mức độ ngẫu nhiên hoặc không chắc chắn trong phân bố lớp của nút. Trong khi Gini tập trung vào xác suất phân loại sai, entropy định lượng "sự bất ngờ" liên quan đến việc quan sát một lớp cụ thể khi phân bố hỗn hợp.
Xác suất lớp p đã cho1, …, Pc Đối với một nút S, entropy của nó được định nghĩa là E(S) = − Σ pi log₂(pi). Nếu nút là thuần túy, một trong các xác suất là 1 và tất cả các xác suất khác là 0, điều này làm cho tổng bằng không (vì log₂(1) = 0), do đó entropy bằng 0, cho thấy không có sự không chắc chắn.
Khi nút chứa sự phân bố đồng đều các lớp, entropy đạt mức tối đa; đối với bài toán nhị phân với p1 =p2 = 0.5, entropy là 1 bit, đây là giá trị cao nhất có thể cho hai lớp. Giá trị này tương ứng với độ bất định tối đa, có nghĩa là nút đó có độ tạp chất cao nhất có thể theo phân bố đó.
Mặc dù chỉ số Gini và entropy sử dụng các công thức khác nhau và có phạm vi giá trị số khác nhau (Gini từ 0 đến 0.5 cho hai lớp, entropy từ 0 đến 1), cả hai đều đo lường về cơ bản cùng một khái niệm, vì vậy trên thực tế chúng thường dẫn đến các cây rất giống nhau. Khi bạn tính toán cả hai trên cùng một nút, bạn sẽ thấy rằng chỉ số Gini cao tương ứng với entropy cao và ngược lại, đó là lý do tại sao nhiều thư viện cho phép bạn chọn một trong hai mà không làm thay đổi hiệu năng một cách đáng kể.
Thu thập thông tin và lựa chọn cách phân chia tối ưu nhất
Để chọn ra cách phân chia tốt nhất trong số nhiều ứng cử viên, thuật toán cây sử dụng một chỉ số gọi là Lợi ích Thông tin (Information Gain), đo lường mức độ giảm tạp chất khi ta chia một nút thành các nút con của nó. Theo trực giác, một phép chia có độ lợi thông tin cao nếu các tập con thuần khiết hơn nhiều so với tập cha, có nghĩa là quy tắc đã phân tách dữ liệu thành công thành các nhóm có ý nghĩa hơn.
Đối với cây phân loại sử dụng entropy, độ lợi thông tin của một phép chia được định nghĩa là IG.phân loại = E(parent) − Σ (|Strẻ em| / |Scha mẹ|) · E(Strẻ em). Đầu tiên, bạn tính entropy của nút cha, sau đó trừ đi entropy trung bình có trọng số của các nút con, trong đó trọng số là kích thước tương đối của chúng.
Đối với cây hồi quy, một khái niệm tương tự sử dụng phương sai hoặc sai số bình phương trung bình làm thước đo độ không thuần khiết, cho IGhồi quy = Var(parent) − Σ (|Strẻ em| / |Scha mẹ|) · Var(Strẻ em). Trong bối cảnh này, một sự phân chia tốt là sự phân chia giúp giảm đáng kể sự biến động của các giá trị mục tiêu bên trong mỗi đứa trẻ.
Thuật toán huấn luyện cây quyết định đánh giá Lợi ích Thông tin này cho mọi điểm phân tách khả thi trên mỗi đặc trưng, sau đó chọn điểm phân tách có lợi ích cao nhất, miễn là nó vượt qua một ngưỡng tối thiểu nào đó để tránh tạo ra những cải tiến nhỏ, vô ích. Quá trình này sau đó được lặp lại một cách đệ quy trên mỗi nút con cho đến khi đạt được một số tiêu chí dừng nhất định.
Cách tìm kiếm cách phân chia tối ưu nhất cho từng tính năng
Việc tìm ra cách phân chia tối ưu nhất dựa trên một đặc trưng duy nhất phụ thuộc vào việc đặc trưng đó là dạng số hay dạng phân loại, nhưng ý tưởng cơ bản luôn giống nhau: liệt kê các phân vùng tiềm năng và tính toán Lợi ích Thông tin (Information Gain) của chúng. Đối với các đặc trưng số, sự phân vùng được xác định bởi một ngưỡng; đối với các đặc trưng phân loại, nó được xác định bằng cách nhóm các mức thành các tập con.
Đối với bộ dự đoán số, chiến lược thông thường là xem xét tất cả các giá trị duy nhất mà thuộc tính đó nhận được trong nút hiện tại, sắp xếp chúng, và sau đó xem xét các ngưỡng ứng cử viên giữa các giá trị liên tiếp. Với mỗi ngưỡng ứng viên c, bạn tạo hai nhóm (x ≤ c và x > c), tính độ không thuần khiết của mỗi nhóm, sau đó tính Lợi ích Thông tin; ngưỡng mang lại lợi ích cao nhất là sự phân chia số học tốt nhất của bạn trên đặc điểm đó.
Khi xử lý các biến dự báo phân loại, không gian tìm kiếm phức tạp hơn vì về nguyên tắc, bất kỳ tập hợp con nào của các danh mục đều có thể tạo thành một phía của phép phân chia, với phần bù ở phía còn lại. Trong một tính năng có K danh mục, có rất nhiều tập con khả thi (2K−1 − 1 phân vùng không tầm thường), vì vậy trên thực tế, các triển khai thường hạn chế tìm kiếm này hoặc sử dụng các phương pháp phỏng đoán, đặc biệt khi K lớn.
Sau khi tính toán được cách phân chia tối ưu nhất cho từng đặc điểm, bạn so sánh độ lợi thông tin (Information Gain) của chúng và chọn đặc điểm cùng ngưỡng (hoặc tập con của danh mục) tương ứng với độ lợi tối đa. Sự phân chia được chọn này trở thành quyết định tại nút hiện tại, và quá trình huấn luyện sau đó sẽ lặp lại trên từng nút con với tập con quan sát tương ứng.
Kiểm soát sự phát triển của cây bằng siêu tham số
Nếu bạn cho phép cây quyết định phát triển mà không có bất kỳ ràng buộc nào, nó sẽ tiếp tục phân nhánh cho đến khi mọi nhánh lá đều hoàn toàn thuần khiết hoặc chứa rất ít quan sát, điều này hầu như luôn dẫn đến hiện tượng quá khớp nghiêm trọng.trang bị quá mức và trang bị thiếu). Để tránh điều này, bạn thiết lập một tập hợp các siêu tham số kiểm soát độ sâu và độ phức tạp của cây.
Một siêu tham số phổ biến là max_depth, giới hạn số lượng cấp tối đa mà cây có thể phát triển từ gốc đến bất kỳ lá nào. Nếu max_depth được đặt thành None (hoặc một số rất lớn), cây có thể tiếp tục phát triển miễn là các ràng buộc khác được thỏa mãn; nếu nó nhỏ, cây sẽ vẫn nông và dễ hiểu hơn nhưng có thể bị thiếu khớp.
Một siêu tham số quan trọng khác là min_samples_split, quy định số lượng quan sát tối thiểu mà một nút phải chứa trước khi được phép chia tách. Nếu một nút có số lượng mẫu ít hơn ngưỡng này, nó sẽ được chuyển thành nút lá, ngăn mô hình đuổi theo nhiễu trong các tập dữ liệu con rất nhỏ.
Bạn cũng có thể thiết lập mức tăng thông tin tối thiểu (min_information_gain) để thuật toán chỉ thực hiện việc chia tách nếu nó tạo ra sự cải thiện đáng kể trong việc giảm tạp chất. Điều này giúp tránh tạo ra các nhánh không cần thiết, hầu như không thay đổi dự đoán và chỉ làm phức tạp thêm cấu trúc cây.
Xây dựng cây quyết định từ đầu bằng mã lập trình.
Việc xây dựng một cây quyết định từ đầu thường xoay quanh một tập hợp nhỏ các hàm cốt lõi được gọi đệ quy. Mặc dù các thư viện như scikit-learn hoặc rpart thực hiện tất cả những việc này ở phía sau, việc tự mình viết mã cho các bước này sẽ giúp logic trở nên rõ ràng hơn nhiều.logic lập trình) và cho phép bạn kiểm soát hoàn toàn hành vi đó.
Đầu tiên, bạn cần một quy trình, dựa trên dữ liệu hiện có tại một nút, để đánh giá mọi đặc trưng và mọi điểm phân tách tiềm năng nhằm tìm ra điểm có độ lợi thông tin cao nhất. Hàm này trả về thuộc tính đã chọn, quy tắc phân tách (ngưỡng hoặc tập hợp con của các danh mục), giá trị độ lợi và mặt nạ boolean hoặc các tập chỉ mục xác định mẫu nào đi sang trái và mẫu nào đi sang phải.
Thứ hai, bạn cần một hàm dự đoán cho các nút lá, hàm này chuyển đổi tập hợp các giá trị mục tiêu trong nút đó thành một dự đoán duy nhất. Đối với hồi quy, đây thường là giá trị trung bình của y tại nút đó; đối với phân loại, bạn thường lấy giá trị phổ biến nhất (lớp xuất hiện thường xuyên nhất), có thể lưu trữ cả xác suất của lớp nếu bạn muốn có kết quả đầu ra dạng xác suất.
Thứ ba, bạn tạo một hàm huấn luyện đệ quy kiểm tra các tiêu chí dừng, tìm kiếm điểm phân chia tốt nhất nếu được cho phép, và sau đó xây dựng các nút con bằng cách gọi chính nó trên các tập con bên trái và bên phải. Nếu các điều kiện về kích thước mẫu tối thiểu, độ sâu tối đa hoặc độ lợi tối thiểu không được đáp ứng, hàm sẽ ngừng phân tách và lưu trữ dự đoán của nhánh lá thay vì các nhánh tiếp theo.
Cơ chế dự đoán hoạt động như thế nào trong cây quyết định đã được huấn luyện?
Sau khi cây quyết định của bạn đã được huấn luyện và bạn đã lưu trữ tất cả các quy tắc phân nhánh và dự đoán của lá, việc đưa ra dự đoán cho một quan sát mới chỉ đơn giản là việc duyệt từ gốc xuống lá của cây. Tại mỗi nút bên trong, bạn kiểm tra đặc điểm cần thiết và thử xem kết quả quan sát có thỏa mãn điều kiện của nút đó hay không.
Nếu quy tắc phân tách là số, bạn kiểm tra xem giá trị thuộc tính có nhỏ hơn hoặc bằng ngưỡng hay không; nếu quy tắc phân tách là phân loại, bạn kiểm tra xem danh mục có nằm trong một tập con cụ thể hay không. Tùy thuộc vào kết quả, bạn sẽ đi theo nhánh tương ứng (ví dụ: “có” sang trái, “không” sang phải) và lặp lại quy trình này ở nút tiếp theo.
Bạn tiếp tục đi xuống cây cho đến khi đến một nút không có con, đó là một nút lá lưu trữ giá trị đầu ra không đổi hoặc nhãn lớp. Đối với cây hồi quy, dự đoán sẽ là một con số như tuổi thọ ước tính hoặc hiệu suất nhiên liệu; đối với cây phân loại, đầu ra sẽ là một hạng mục dự đoán như "sống sót" hoặc "không sống sót".
Nếu bạn thử nghiệm phương pháp này trên cùng tập dữ liệu đã dùng để huấn luyện, bạn thường sẽ thấy độ chính xác phân loại khá cao (ví dụ: khoảng 85% trong một số ví dụ đơn giản về béo phì hoặc các sự kiện kiểu Titanic), nhưng hiệu suất đó có thể giảm trên dữ liệu chưa từng thấy nếu cây quyết định của bạn quá sâu. Đây chính là lý do tại sao việc kiểm soát độ sâu và kích thước của cây quyết định lại quan trọng đến vậy, và tại sao các thuật toán kết hợp như rừng ngẫu nhiên được phát minh ra để ổn định các dự đoán của cây.
Ứng dụng cây hồi quy trong thực tiễn
Cây hồi quy đặc biệt hữu ích khi mối quan hệ giữa các biến dự đoán và biến phản hồi có tính phi tuyến mạnh và liên quan đến các tương tác khó mô hình hóa bằng hồi quy tuyến tính cổ điển. Thay vì cố gắng áp dụng một phương trình toàn cục duy nhất, cây quyết định phân chia không gian đặc trưng thành các vùng và áp dụng một mô hình hằng số đơn giản trong mỗi vùng.
Trong R, các gói phổ biến như rpart và tree giúp dễ dàng xây dựng cây hồi quy chỉ với một lệnh gọi hàm duy nhất, chỉ định công thức như y ~ x1 + x2 + … + x11. Các gói phần mềm này chịu ảnh hưởng từ phương pháp CART ban đầu được mô tả bởi Breiman và các đồng nghiệp, và chúng triển khai nhiều ý tưởng phân tách và cắt tỉa tiêu chuẩn trong mô hình hóa dựa trên cây hiện đại.
Ví dụ, bạn có thể sử dụng gói rpart để mô hình hóa biến phản hồi y dựa trên mười một biến độc lập x1 đến x11, làm sạch dữ liệu bằng cách loại bỏ các giá trị thiếu, và sau đó trực quan hóa cây kết quả bằng các hàm hỗ trợ như prp từ gói rpart.plot. Các nút cuối cùng hiển thị giá trị y dự đoán cho mỗi vùng, bạn có thể sử dụng trực tiếp giá trị này cho các quan sát mới.
Với một cây hồi quy đã được huấn luyện, bạn có thể đưa các giá trị biến độc lập mới như x9 = 70, x2 = 100 hoặc x9 = 60, x2 = 150 vào hàm dự đoán để thu được các giá trị ước tính ŷ (ví dụ: khoảng 20 hoặc 28 trong ví dụ về mức tiêu thụ nhiên liệu). Việc so sánh các dự đoán này với các giá trị quan sát được, ví dụ như thông qua hệ số tương quan giữa y và ŷ, sẽ giúp bạn nhanh chóng đánh giá mức độ chính xác của cây quyết định trong việc nắm bắt mô hình cơ bản, ngay cả khi tập dữ liệu khá nhỏ.
Từ những cây đơn lẻ đến những khu rừng ngẫu nhiên.
Một cây quyết định đơn lẻ rất mạnh mẽ nhưng cũng nổi tiếng là nhạy cảm với những đặc điểm riêng của dữ liệu huấn luyện, điều này có thể dẫn đến phương sai cao (thiên vị và phương saivà hiện tượng quá khớp dữ liệu. Để khắc phục điều này, thuật toán rừng ngẫu nhiên xây dựng nhiều cây dựa trên các mẫu dữ liệu được lấy ngẫu nhiên (bootstrapped samples) và tổng hợp các dự đoán của chúng, tạo ra một mô hình ổn định hơn và thường chính xác hơn.
Trong rừng ngẫu nhiên, mỗi cây được huấn luyện trên một mẫu bootstrap, có nghĩa là một tập dữ liệu mới có cùng kích thước được lấy ngẫu nhiên từ tập dữ liệu huấn luyện ban đầu bằng phương pháp có hoàn trả. Quá trình lấy mẫu này khiến mỗi cây quyết định nhìn thấy một tập dữ liệu hơi khác nhau, do đó sai số của chúng ít tương quan hơn và có thể triệt tiêu lẫn nhau khi được tổng hợp.
Ngoài ra, rừng ngẫu nhiên đưa yếu tố ngẫu nhiên vào quá trình lựa chọn đặc trưng bằng cách chỉ xem xét một tập con ngẫu nhiên các biến dự đoán tại mỗi lần phân tách thay vì tất cả các biến dự đoán. Điều này giúp giảm thiểu sự tương quan giữa các cây, tăng cường tính đa dạng trong rừng và có xu hướng giảm phương sai mà không làm tăng quá nhiều độ lệch.
Sự kết hợp giữa phương pháp bootstrapping và tổng hợp các dự đoán được gọi là bagging, và trong rừng ngẫu nhiên, bạn cũng nhận được ước tính nội bộ về lỗi của mô hình bằng cách đánh giá từng cây trên các điểm dữ liệu không được bao gồm trong mẫu bootstrap của nó (còn gọi là các quan sát ngoài bagging). Lỗi ngoài tập dữ liệu này cung cấp một cách thuận tiện để đánh giá hiệu suất mà không cần đến một tập dữ liệu kiểm định riêng biệt.
Mặc dù bài viết này tập trung vào việc xây dựng một cây quyết định duy nhất từ đầu, nhưng việc hiểu cách thức hoạt động của thành phần cơ bản đó sẽ giúp dễ dàng nắm bắt hơn cách các thuật toán kết hợp như rừng ngẫu nhiên, tăng cường gradient và các phương pháp dựa trên cây khác xây dựng dựa trên cùng các nguyên tắc để đạt được kết quả tiên tiến trong nhiều bài toán ứng dụng.
Tóm lại, việc xây dựng mô hình hồi quy cây quyết định từ đầu cho thấy cách một tập hợp các quy tắc đơn giản, hàm chi phí và các phép phân tách đệ quy có thể mô hình hóa các mối quan hệ phức tạp, cho dù bạn đang dự đoán kết quả nhị phân như khả năng sống sót, nhãn phân loại như tình trạng béo phì, hay mục tiêu số như tuổi thọ hoặc mức tiêu thụ nhiên liệu. Sự hiểu biết sâu sắc này trở thành nền tảng vững chắc để sử dụng các kỹ thuật dựa trên cây tiên tiến hơn trong thực tế.