决策树仅绘制连续变量

时间:2019-04-01 03:27:30

标签: python machine-learning decision-tree pydot

我正在使用python的pydot和graphviz软件包来绘制决策树。就像在R中,我们可以使用离散值来显示绘图,但是在这里我正在解决连续变量问题。是否还有其他软件包可以帮助我获得相似的绘图像R中那样,在节点中具有离散值而不是连续的分类变量。

使用分类变量构建具有10个自变量和目标变量的决策树,我将所有分类变量进行装仓并使用一种热编码将其转换为数值变量,然后使用pydot和graphviz绘制树。我需要它像R一样,而不是在连续数据上拆分显示/完成的节点,我希望它是在我创建的列中的离散值上完成的。 到现在为止。是否有其他方法可以解决该绘图问题。

装订部分

def weight_bin(x):
    if x>50:
     type="Greaterthan50"
    elif 35< x <= 50:
        type="Between 35-50"

    elif 20< x <=35:
        type="Between 20-35"

    elif 0<x<=20:
        type="Less than 20"

    else:
        type="Ignore"
    return type

list_name1=list(map(weight_bin,data.WEIGHT_KG))


data['Weight_Bin']=list_name1
情节部分
feature_cols = ['ISO_COUNTRY_CODE', 'NAS_GT_2', 'INFEED_NAME', 'PRODUCT_CODE_PNL_new','Barcode_Read','Barcode_Valid','EDI_Available','Scanning Method','Sorting_Type','Weight_Bin','NO_ADDED_SERVICES_new']
X = data_subset[feature_cols] # Features
y = data_subset.Rejection_Flag # Target variable


dtree=DecisionTreeClassifier(criterion = "gini", random_state = 100,
max_depth=8, min_samples_leaf=4)

one_hot_data = pd.get_dummies(X,drop_first=True)
clf =dtree.fit(one_hot_data, y)
target_names=list(data_subset.Rejection_Flag.unique())

dot_data = tree.export_graphviz(clf, out_file=None, 
                                feature_names=one_hot_data.columns,  
                                class_names=target_names)

# Draw graph
graph = pydotplus.graph_from_dot_data(`enter code here`dot_data)  

# Show graph
Image(graph.create_png())

graph.write_png("tree5.png")

0 个答案:

没有答案