[英]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.