Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào cây quyết định có thể được sử dụng để xây dựng một bộ phân loại trong Python?

Cây quyết định là khối xây dựng cơ bản của thuật toán rừng ngẫu nhiên. Nó được coi là một trong những thuật toán phổ biến nhất trong học máy và được sử dụng cho mục đích phân loại. Chúng cực kỳ phổ biến vì dễ hiểu.

Quyết định được đưa ra bởi cây quyết định có thể được sử dụng để giải thích tại sao một dự đoán nhất định được đưa ra. Điều này có nghĩa là quá trình vào và ra sẽ rõ ràng cho người dùng, chúng cũng là nền tảng cho các phương pháp tổng hợp như đóng bao, rừng ngẫu nhiên và tăng độ dốc. Chúng còn được gọi là CART, tức là Cây phân loại và cây hồi quy. Nó có thể được hình dung như một cây nhị phân (cây được nghiên cứu trong cấu trúc dữ liệu và thuật toán).

Mỗi nút trong cây đại diện cho một biến đầu vào duy nhất và các nút lá (còn được gọi là nút đầu cuối) chứa biến đầu ra. Các nút lá này được sử dụng để thực hiện dự đoán trên nút. Khi một cây quyết định đang được tạo, ý tưởng cơ bản là không gian đã cho đang được chia thành nhiều phần. Tất cả các giá trị được đưa ra và thử các cách phân chia khác nhau để đạt được ít chi phí hơn và giá trị dự đoán tốt nhất. Các giá trị này được chọn một cách tham lam.

Việc tách các nút này tiếp tục diễn ra cho đến khi đạt đến độ sâu tối đa của cây. Ý tưởng đằng sau việc sử dụng cây quyết định là chia tập dữ liệu đầu vào thành tập dữ liệu nhỏ hơn dựa trên giá trị tính năng cụ thể cho đến khi mọi biến mục tiêu thuộc một danh mục duy nhất. Sự phân chia này được thực hiện để thu được thông tin tối đa cho mỗi bước.

Mọi cây quyết định đều bắt đầu bằng một gốc, và đây là nơi thực hiện lần phân tách đầu tiên. Nên nghĩ ra một cách hiệu quả để đảm bảo rằng các nút được xác định.

Đây là lúc giá trị Gini đi vào hình ảnh. Gini được coi là một trong những phép đo phổ biến nhất được sử dụng để đo lường sự bất bình đẳng. Bất đẳng thức đề cập đến lớp đích (đầu ra) mà mọi tập con trong một nút đều có thể thuộc về.

Do đó, giá trị Gini được tính sau mỗi lần chia. Dựa trên giá trị Gini / giá trị bất bình đẳng, có thể xác định mức tăng thông tin.

DecisionTreeClassifier được sử dụng để thực hiện phân loại đa lớp.

Dưới đây là cú pháp tương tự.

class sklearn.tree.DecisionTreeClassifier(*, criterion='gini',…)

Sau đây là ví dụ -

Ví dụ

from sklearn import tree
from sklearn.model_selection import train_test_split
my_data = [[16,19],[17,32],[13,3],[14,5],[141,28],[13,34],[186,2],[126,25],[176,28],
[131,32],[166,6],[128,32],[79,110],[12,38],[19,91],[71,136],[116,25],[17,200], [15,25], [14,32],[13,35]]
target_vals =['Man','Woman','Man','Woman',
'Woman','Man','Woman','Woman',
'Woman','Woman','Woman','Man','Man',
'Man','Woman', 'Woman', 'Woman',
'Woman','Man','Woman','Woman']
data_feature_names = ['Feature_1','Feature_2']
X_train, X_test, y_train, y_test = train_test_split(my_data, target_vals, test_size = 0.2, random_state = 1)
clf = tree.DecisionTreeClassifier()
print("The decision tree classifier is being called")
DTclf = clf.fit(my_data,target_vals)
prediction = DTclf.predict([[135,29]])
print("The predicted value is ")
print(prediction)

Đầu ra

The decision tree classifier is being called
The predicted value is
['Woman']

Giải thích

  • Các gói bắt buộc được nhập vào môi trường.
  • Mã được sử dụng để phân loại các giá trị của giá trị mục tiêu dựa trên các giá trị của tính năng.
  • Các giá trị mục tiêu và vectơ đặc trưng đã được xác định.
  • Dữ liệu được chia thành tập huấn luyện và thử nghiệm với sự trợ giúp của hàm ‘train_test_split’.
  • Công cụ phân loại quyết định được gọi và dữ liệu phù hợp với mô hình.
  • Hàm "dự đoán" được sử dụng để dự đoán giá trị cho các giá trị của đối tượng địa lý.
  • Kết quả đầu ra được hiển thị trên bảng điều khiển.