簡體   English   中英

了解export_graphviz的決策樹輸出

[英]Understanding decision tree output from export_graphviz

問題設置:我的數據集不平衡,其中98%的數據屬於A類,而2%的數據屬於B類。我訓練了DecisionTreeClassifier(來自sklearn),將class_weights設置為使用以下設置進行平衡:

dtc_settings = {
    'criterion': 'entropy',
    'min_samples_split': 100,
    'min_samples_leaf': 100,
    'max_features': 'auto',
    'max_depth': 5,
    'class_weight': 'balanced'
}

我沒有理由將標准設置為熵(而不是基尼)。 我只是在玩這些設置。

我使用了樹的export_graphviz來獲得下面的決策樹圖。 這是我使用的代碼:

dot_data = tree.export_graphviz(dtc, out_file=None, feature_names=feature_col, proportion=False)
graph = pydot.graph_from_dot_data(dot_data)  
graph.write_pdf("test.pdf")

我對下圖中的值列表輸出感到困惑:

在此處輸入圖片說明

值列表變量是否意味着兩個類的權重相等? 如果是這樣,如何為樹中的后續節點計算值列表?

這是另一個示例,其中我在export_graphviz中將比例設置為True: 在此處輸入圖片說明

我不知道如何解釋值列表。 是條目類的權重嗎? 這是否意味着分類器將這些權重分別應用於每個類別,以確定要在下一個節點中使用的下一個閾值?

該列表表示已到達該節點的每個類中的記錄數。 根據您組織目標變量的方式,第一個值表示到達該節點的類型A的記錄數,第二個值表示到達該節點的B類型的記錄數(反之亦然)。

當比例設置為True時,現在是到達該節點的每個類的記錄的一部分

決策樹的工作方式是嘗試找到最能隔離類別的決策。 因此,它更喜歡會導致類似[0, 100] 0,100]的決策而不是會導致[50, 50]決策。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM