基于分类属性包的可视化决策树
p-decision-tree的Python项目详细描述
基于分类属性的可视化决策树
如您所知,python中的“scikit learn”库无法基于分类数据生成决策树,您必须将分类数据转换为数字,然后才能将它们传递给分类器方法。另外,得到的决策树是二叉树,而决策树不需要是二叉树。
在这里,我们提供了一个库,它能够生成一个基于分类数据的可视化决策树。您可以阅读更多关于决策树的信息。
功能
使用的主要算法是id3,具有以下功能:
要求
您可以在“requirements.txt”文件中找到所有要求,并且可以通过以下命令轻松安装:
- pip install-r requirements.txt
为了能够看到可视化树,还需要安装graphviz包。Here您可以找到与操作系统相关的正确包。
用法
fromp_decision_tree.DecisionTreeimportDecisionTreeimportpandasaspd#Reading CSV file as data set by Pandasdata=pd.read_csv('playtennis.csv')columns=data.columns#All columns except the last one are descriptive by defaultdescriptive_features=columns[:-1]#The last column is considered as labellabel=columns[-1]#Converting all the columns to stringforcolumnincolumns:data[column]=data[column].astype(str)data_descriptive=data[descriptive_features].valuesdata_label=data[label].values#Calling DecisionTree constructor (the last parameter is criterion which can also be "gini")decisionTree=DecisionTree(data_descriptive.tolist(),descriptive_features.tolist(),data_label.tolist(),"entropy")#Here you can pass pruning features (gain_threshold and minimum_samples)decisionTree.id3(0,0)#Visualizing decision tree by Graphvizdot=decisionTree.print_visualTree(render=True)# When using Jupyter#display( dot )print("System entropy: ",format(decisionTree.entropy))print("System gini: ",format(decisionTree.gini))