Nền tảng AI

Decision Tree Là Gì?

mm
Thêm Unite.AI vào các nguồn ưu tiên của bạn trên Google

Decision Tree Là Gì?

Một decision tree là một thuật toán máy học hữu ích được sử dụng cho cả nhiệm vụ hồi quy và phân loại. Tên “decision tree” xuất phát từ thực tế rằng thuật toán liên tục chia tập dữ liệu thành các phần nhỏ hơn và nhỏ hơn cho đến khi dữ liệu đã được chia thành các trường hợp riêng lẻ, sau đó được phân loại. Nếu bạn hình dung kết quả của thuật toán, cách các thể loại được chia sẽ giống như một cây và nhiều lá.

Đây là một định nghĩa nhanh về decision tree, nhưng hãy cùng tìm hiểu sâu hơn về cách decision tree hoạt động. Việc hiểu rõ hơn về cách decision tree hoạt động, cũng như các trường hợp sử dụng của nó, sẽ giúp bạn biết khi nào nên sử dụng chúng trong các dự án máy học của mình.

Định Dạng Của Decision Tree

Một decision tree giống như một biểu đồ luồng. Để sử dụng một biểu đồ luồng, bạn bắt đầu từ điểm bắt đầu, hoặc gốc, của biểu đồ và sau đó dựa trên cách bạn trả lời các tiêu chí lọc của nút bắt đầu, bạn sẽ di chuyển đến một trong các nút tiếp theo có thể. Quá trình này được lặp lại cho đến khi đạt được một điểm kết thúc.

Decision tree hoạt động theo cách tương tự, với mỗi nút nội bộ trong cây là một số loại kiểm tra/tiêu chí lọc. Các nút ở ngoài, điểm cuối của cây, là nhãn cho điểm dữ liệu đang được hỏi và chúng được gọi là “lá”. Các nhánh dẫn từ các nút nội bộ đến nút tiếp theo là các tính năng hoặc liên kết của các tính năng. Các quy tắc được sử dụng để phân loại các điểm dữ liệu là các đường dẫn chạy từ gốc đến lá.

Thuật Toán Cho Decision Tree

Decision tree hoạt động trên một phương pháp thuật toán chia tập dữ liệu thành các điểm dữ liệu riêng lẻ dựa trên các tiêu chí khác nhau. Các chia này được thực hiện với các biến khác nhau, hoặc các tính năng khác nhau của tập dữ liệu. Ví dụ, nếu mục tiêu là xác định xem một con chó hay một con mèo đang được mô tả bởi các tính năng đầu vào, các biến mà dữ liệu được chia có thể là những thứ như “móng vuốt” và “gầm ghì”.

Vậy những thuật toán nào được sử dụng để thực sự chia dữ liệu thành các nhánh và lá? Có nhiều phương pháp có thể được sử dụng để chia một cây, nhưng phương pháp chia phổ biến nhất có lẽ là một kỹ thuật gọi là “chia nhị phân递归”. Khi thực hiện phương pháp chia này, quá trình bắt đầu từ gốc và số tính năng trong tập dữ liệu đại diện cho số lượng chia có thể. Một hàm được sử dụng để xác định mức độ chính xác mà mỗi chia có thể sẽ hy sinh, và chia được thực hiện sử dụng tiêu chí hy sinh ít nhất mức độ chính xác. Quá trình này được thực hiện递归 và các nhóm con được hình thành sử dụng chiến lược chung tương tự.

Để xác định chi phí của chia, một hàm chi phí được sử dụng. Một hàm chi phí khác được sử dụng cho nhiệm vụ hồi quy và phân loại. Mục tiêu của cả hai hàm chi phí là xác định哪 các nhánh có giá trị phản hồi tương tự nhất, hoặc các nhánh đồng nhất nhất. Hãy xem xét rằng bạn muốn dữ liệu thử nghiệm của một lớp nhất định theo các đường dẫn nhất định và điều này có ý nghĩa trực giác.

Về hàm chi phí hồi quy cho chia nhị phân递归, thuật toán được sử dụng để tính toán chi phí như sau:

tổng(y – dự đoán)^2

Dự đoán cho một nhóm điểm dữ liệu cụ thể là trung bình của phản hồi của dữ liệu đào tạo cho nhóm đó. Tất cả các điểm dữ liệu được chạy qua hàm chi phí để xác định chi phí cho tất cả các chia có thể và chia có chi phí thấp nhất được chọn.

Về hàm chi phí phân loại, hàm là như sau:

G = tổng(pk * (1 – pk))

Đây là điểm số Gini, và nó là một thước đo hiệu quả của một chia, dựa trên số lượng thể hiện của các lớp khác nhau trong các nhóm kết quả từ chia. Nói cách khác, nó lượng hóa mức độ hỗn hợp của các nhóm sau khi chia. Một chia tối ưu là khi tất cả các nhóm kết quả từ chia chỉ bao gồm đầu vào từ một lớp. Nếu một chia tối ưu đã được tạo, giá trị “pk” sẽ là 0 hoặc 1 và G sẽ bằng 0. Bạn có thể đoán được rằng chia tồi tệ nhất là khi có sự đại diện 50-50 của các lớp trong chia, trong trường hợp phân loại nhị phân. Trong trường hợp này, giá trị “pk” sẽ là 0,5 và G cũng sẽ là 0,5.

Quá trình chia được kết thúc khi tất cả các điểm dữ liệu đã được chuyển thành lá và phân loại. Tuy nhiên, bạn có thể muốn dừng sự phát triển của cây sớm. Các cây phức tạp lớn dễ bị quá拟 hợp, nhưng một số phương pháp khác nhau có thể được sử dụng để chống lại điều này. Một phương pháp giảm quá拟 hợp là chỉ định một số lượng điểm dữ liệu tối thiểu sẽ được sử dụng để tạo một lá. Một phương pháp khác để kiểm soát quá拟 hợp là hạn chế cây ở một độ sâu tối đa nhất định, điều này kiểm soát độ dài của một đường dẫn từ gốc đến một lá.

Một quá trình khác liên quan đến việc tạo decision tree là cắt tỉa. Cắt tỉa có thể giúp tăng hiệu suất của decision tree bằng cách loại bỏ các nhánh chứa các tính năng có ít sức mạnh dự đoán/little quan trọng cho mô hình. Theo cách này, độ phức tạp của cây được giảm, nó trở nên ít có khả năng quá拟 hợp, và khả năng dự đoán của mô hình được tăng.

Khi thực hiện cắt tỉa, quá trình có thể bắt đầu từ đầu cây hoặc cuối cây. Tuy nhiên, phương pháp cắt tỉa dễ nhất là bắt đầu từ lá và cố gắng loại bỏ nút chứa lớp phổ biến nhất trong lá đó. Nếu độ chính xác của mô hình không suy giảm khi điều này được thực hiện, thì thay đổi được bảo tồn. Có các kỹ thuật khác được sử dụng để thực hiện cắt tỉa, nhưng phương pháp được mô tả ở trên – cắt tỉa giảm lỗi – có lẽ là phương pháp cắt tỉa decision tree phổ biến nhất.

Các Xem Xét Khi Sử Dụng Decision Tree

Decision tree thường hữu ích khi phân loại cần được thực hiện nhưng thời gian tính toán là một ràng buộc chính. Decision tree có thể làm rõ các tính năng trong tập dữ liệu chọn có sức mạnh dự đoán lớn nhất. Hơn nữa, không giống như nhiều thuật toán máy học mà các quy tắc được sử dụng để phân loại dữ liệu có thể khó giải thích, decision tree có thể cung cấp các quy tắc giải thích được. Decision tree cũng có thể sử dụng cả biến категорi và biến liên tục, điều này có nghĩa là ít cần tiền xử lý hơn so với các thuật toán chỉ có thể xử lý một trong các loại biến này.

Decision tree thường không hoạt động tốt khi được sử dụng để xác định giá trị của các thuộc tính liên tục. Một hạn chế khác của decision tree là, khi thực hiện phân loại, nếu có ít ví dụ đào tạo nhưng nhiều lớp, decision tree có xu hướng không chính xác.

Blogger và lập trình viên với chuyên môn về Machine Learning Deep Learning topics. Daniel hy vọng giúp đỡ người khác sử dụng sức mạnh của AI cho lợi ích xã hội.