Làm thế nào để bạn hình dung một hồi quy cây quyết định trong python?

Cây quyết định là một phương pháp rất phổ biến và quan trọng của các mô hình Học máy (ML). Khía cạnh tốt nhất của nó đến từ trực quan hóa dễ hiểu và triển khai nhanh chóng vào sản xuất. Để trực quan hóa một cây quyết định, điều rất cần thiết là phải hiểu các khái niệm liên quan đến thuật toán/mô hình cây quyết định để có thể thực hiện tốt việc phân tích cây quyết định

Biết về cây quyết định và các thành phần của trực quan hóa cây quyết định, chắc chắn sẽ giúp tạo và trực quan hóa nó một cách tốt hơn. Trực quan hóa cây quyết định tuyệt vời là thứ nói lên điều đó. Người ta phải có tất cả các yếu tố đầu vào trước khi tạo nó. Luôn luôn nên cải thiện cách vẽ sơ đồ cây quyết định cũ để có thể dễ hiểu

Cây quyết định

Cây quyết định là khối xây dựng cốt lõi của một số thuật toán nâng cao, bao gồm hai mô hình máy học phổ biến nhất cho dữ liệu có cấu trúc - XGBoost và Random Forest. Cây quyết định là một thuật toán học máy được giám sát. Nó được sử dụng trong cả thuật toán phân loại và hồi quy

Cây quyết định giống như cây có các nút. Các chi nhánh được dựa trên một số yếu tố. Nó chia dữ liệu thành các nhánh cho đến khi hoàn thành một giá trị ngưỡng. Cây quyết định bao gồm các nút gốc, nút con và nút lá. Mỗi lá trong cây quyết định chịu trách nhiệm tạo ra một dự đoán cụ thể. Cây quyết định tìm hiểu mối quan hệ hiện diện trong các quan sát trong tập huấn luyện, được biểu diễn dưới dạng vectơ đặc trưng x và giá trị đích y, bằng cách kiểm tra và cô đọng dữ liệu huấn luyện thành cây nhị phân gồm các nút bên trong và nút lá

Nhược điểm của cây quyết định là sự phân chia mà nó tạo ra ở mỗi nút sẽ được tối ưu hóa cho tập dữ liệu phù hợp với nó. Quá trình chia tách này sẽ tổng quát hóa tốt cho các dữ liệu khác. Tuy nhiên, người ta có thể tạo ra một số lượng lớn các cây quyết định này, được điều chỉnh theo những cách hơi khác nhau và kết hợp các dự đoán của chúng để tạo ra một số mô hình tốt nhất

Cây quyết định trực quan hóa là một nhiệm vụ to lớn để tìm hiểu, hiểu cách giải thích và hoạt động của các mô hình. Một trong những lợi ích lớn nhất của cây quyết định là khả năng diễn giải của chúng - sau khi điều chỉnh mô hình, nó thực sự là một bộ quy tắc hữu ích để dự đoán biến mục tiêu. Người ta không cần phải quen thuộc chút nào với các kỹ thuật ML để hiểu cây quyết định đang làm gì. Đó là lý do chính, vì có thể dễ dàng vẽ các quy tắc và hiển thị chúng cho các bên liên quan, vì vậy họ có thể dễ dàng hiểu logic cơ bản của mô hình

Chẳng hạn, tìm một thư viện trực quan hóa các nút quyết định phân chia không gian tính năng. Cũng hiếm khi các thư viện hỗ trợ trực quan hóa một vectơ đặc trưng nhất định khi nó len lỏi qua các nút quyết định của cây;

Các yếu tố cần thiết của trực quan hóa cây quyết định

Trước khi tìm hiểu sâu hơn, điều rất cần thiết là phải biết các yếu tố quan trọng nhất mà trực quan hóa cây quyết định phải làm nổi bật

  • Tính năng nút quyết định so với phân phối giá trị mục tiêu
    Nút quyết định là nơi cây phân chia theo giá trị của một số thuộc tính/tính năng của tập dữ liệu. Người ta phải hiểu về mức độ có thể phân tách của các giá trị mục tiêu tùy thuộc vào tính năng và điểm phân chia
  • Tên tính năng nút quyết định và giá trị phân chia tính năng
    Nút gốc là nút nơi diễn ra quá trình phân tách đầu tiên. Người ta phải biết tính năng nào mà mỗi nút quyết định đang thử nghiệm và vị trí trong không gian đó, các nút phân chia các quan sát
  • Độ tinh khiết của nút lá ảnh hưởng đến độ tin cậy dự đoán
    Các lá có phương sai thấp giữa các giá trị mục tiêu (hồi quy) hoặc loại mục tiêu đa số (phân loại) là những yếu tố dự báo đáng tin cậy hơn
  • Giá trị dự đoán nút lá
    Nút lá là nút cuối, dự đoán kết quả của cây quyết định. Phải có sự hiểu biết về những gì được lá dự đoán từ tập hợp các giá trị mục tiêu
  • Số lượng mẫu trong các nút quyết định
    Đôi khi chúng rất hữu ích để biết hầu hết các mẫu đang được định tuyến qua các nút quyết định ở đâu
  • Số lượng mẫu trong các nút lá
    Mục tiêu chính của cây quyết định là có lá lớn hơn và tinh khiết hơn. Các nút có ít mẫu có thể là dấu hiệu của quá khớp
  • Hiểu biết về cách một vectơ đặc trưng cụ thể chạy từ cây xuống lá
    Điều này giúp giải thích lý do tại sao một vectơ đặc trưng cụ thể nhận được dự đoán như vậy. Chẳng hạn, trong cây hồi quy dự đoán giá thuê căn hộ, người ta có thể tìm kiếm một vectơ đặc trưng được định tuyến vào lá giá dự đoán cao do nút quyết định kiểm tra nhiều hơn ba phòng ngủ

Tạo và trực quan hóa cây quyết định bằng Python

Trong khi tạo cây quyết định, điều quan trọng là chọn thuộc tính tốt nhất từ ​​​​tổng số danh sách tính năng của bộ dữ liệu cho nút gốc và cho các nút phụ. Việc lựa chọn các thuộc tính tốt nhất đang đạt được với sự trợ giúp của một kỹ thuật được gọi là Biện pháp lựa chọn thuộc tính (ASM). Bằng cách sử dụng ASM, người ta có thể nhanh chóng và dễ dàng chọn các tính năng tốt nhất cho các nút tương ứng của cây quyết định

Để tạo và trực quan hóa cây quyết định bằng Python, bộ dữ liệu iris cổ điển sẽ được sử dụng. Đây là mã có thể được sử dụng để tải

  • Dữ liệu. Bộ dữ liệu Iris
    import sklearn.datasets as datasets
    import pandas as pd
    iris=datasets.load_iris()
    df=pd.DataFrame(iris.data, columns=iris.feature_names)
    y=iris.target
    

    Sklearn sẽ tạo cây quyết định cho tập dữ liệu bằng cách sử dụng phiên bản tối ưu hóa của thuật toán Cây phân loại và hồi quy (GIỎI) trong khi chạy đoạn mã sau

    from sklearn.tree import DecisionTreeClassifier
    dtree=DecisionTreeClassifier()
    dtree.fit(df,y)
    

    Người ta cũng có thể nhập DecisionTreeRegressor từ sklearn. cây nếu họ muốn sử dụng cây quyết định để dự đoán một biến số mục tiêu

  • Người mẫu. Trình phân loại rừng ngẫu nhiên
    Ở đây, hai phiên bản được tạo - một phiên bản có độ sâu tối đa được giới hạn ở 3 và một phiên bản khác có độ sâu tối đa không giới hạn. Nếu muốn, họ có thể sử dụng một cây quyết định duy nhất cho việc này. Nhưng ở đây, hãy sử dụng một khu rừng ngẫu nhiên để lập mô hình
    from sklearn.ensemble import RandomForestClassifier
    # Limit max depth
    model = RandomForestClassifier(max_depth = 3, n_estimators=10)
    # Train
    model.fit(iris.data, iris.target)
    # Extract single tree
    estimator_limited = model.estimators_[5]
    estimator_limited
    
    DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=3,
                max_features='auto', max_leaf_nodes=None,
                min_impurity_decrease=0.0,  min_impurity_split=None,
                min_samples_leaf=1, min_samples_split=2,
                min_weight_fraction_leaf=0.0, presort=False,
                random_state=1538259045, splitter='best')
    # No max depth
    model = RandomForestClassifier(max_depth = None, n_estimators=10)
    model.fit(iris.data, iris.target)
    estimator_nonlimited = model.estimators_[5]
    
  • Tạo trực quan
    Bây giờ việc tạo cây quyết định đã xong, hãy sử dụng gói pydotplus để tạo trực quan cho nó. Người ta cần cài đặt pydotplus và graphviz. Chúng có thể được cài đặt với trình quản lý gói

    Graphviz là một công cụ được sử dụng để vẽ đồ họa; . Pydotplus là một mô-đun cho ngôn ngữ dấu chấm của graphviz. Đây là mã
    from sklearn.externals.six import StringIO  
    from IPython.display import Image  
    from sklearn.tree import export_graphviz
    import pydotplus
    
    dot_data = StringIO()
    export_graphviz(dtree, out_file=dot_data,  
                    filled=True, rounded=True,
                    special_characters=True)
    
    graph = pydotplus.graph_from_dot_data(dot_data.getvalue())  
    Image(graph.create_png())
    

    Làm thế nào để bạn hình dung một hồi quy cây quyết định trong python?

    Hàng 'giá trị' trong mỗi nút cung cấp thông tin chi tiết liên quan đến nhiều quan sát đã được sắp xếp vào nút đó, thuộc từng danh mục. Tính năng X2, đó là chiều dài cánh hoa, có thể phân biệt hoàn toàn một loài hoa (Iris-Setosa) với phần còn lại

Phần kết luận

Hình dung một cây quyết định duy nhất có thể giúp đưa ra ý tưởng về cách toàn bộ khu rừng ngẫu nhiên đưa ra dự đoán. nó không phải là ngẫu nhiên, mà là một chuỗi các bước hợp lý được sắp xếp. Các biểu đồ được tạo bằng thư viện này dễ hiểu hơn nhiều đối với những người không làm việc với ML hàng ngày và những biểu đồ này có thể giúp truyền tải logic của mô hình tới các bên liên quan

Khoa học dữ liệu công nghiệp là xây dựng cơ sở hạ tầng công ty thông minh hơn. Nó sẽ làm mờ hoặc làm mỏng ranh giới giữa quy trình vận hành và quy trình kỹ thuật số. Phân tích dữ liệu lớn cung cấp các cơ hội sáng tạo để thiết lập một quy trình hiệu quả, giảm chi phí và rủi ro, cải thiện các biện pháp an toàn, duy trì tuân thủ quy định và đưa ra quyết định tốt hơn

Làm cách nào để trực quan hóa cây quyết định từ một khu rừng ngẫu nhiên trong Python bằng Scikit learn?

Cách Điều chỉnh Mô hình Cây Quyết định bằng Scikit-Learn .
Nhập thư viện
Tải tập dữ liệu
Tách dữ liệu thành các tập huấn luyện và kiểm tra
Mô hình lập mô hình 4 bước Scikit-learning
Xuất mô hình của bạn sang tệp chấm
Cài đặt và sử dụng Graphviz
Điều chỉnh mô hình rừng ngẫu nhiên bằng Scikit-Learn
Trực quan hóa công cụ ước tính của bạn

Trực quan hóa cây quyết định là gì?

Trực quan hóa cây quyết định được dùng để minh họa cách dữ liệu cơ sở dự đoán mục tiêu đã chọn và làm nổi bật những hiểu biết chính về cây quyết định . Quy tắc quyết định dự đoán kết quả trong trường mục tiêu. Xem các quy tắc quyết định giúp bạn xác định những điều kiện nào có khả năng dẫn đến một kết quả cụ thể.

Regressor cây quyết định trong Python là gì?

Hồi quy cây quyết định quan sát các tính năng của một đối tượng và đào tạo một mô hình trong cấu trúc của cây để dự đoán dữ liệu trong tương lai nhằm tạo ra đầu ra liên tục có ý nghĩa. Continuous output means that the output/result is not discrete, i.e., it is not represented just by a discrete, known set of numbers or values.