基于分类属性包的可视化决策树

p-decision-tree的Python项目详细描述


基于分类属性的可视化决策树


如您所知,python中的“scikit learn”库无法基于分类数据生成决策树,您必须将分类数据转换为数字,然后才能将它们传递给分类器方法。另外,得到的决策树是二叉树,而决策树不需要是二叉树。

在这里,我们提供了一个库,它能够生成一个基于分类数据的可视化决策树。您可以阅读更多关于决策树的信息。

功能


使用的主要算法是id3,具有以下功能:

  • 基于entropy
  • 的信息增益
  • 基于gini
  • 的信息增益
  • 一些修剪功能,如:
    • 最小样本数
    • 最小信息增益
  • 生成的树不是二进制的

要求


您可以在“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))

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用哪个地图/集合?   bluej Java:计算税   由于性能问题,java双精度字符串替代方案   java Eclipse CDT生成设置因重新启动而丢失   如何在java控制台中显示字节流值   java获取url地址,其中是包含我的页面的iframe   java 403禁止的spring启动API调用错误?   如果一个方法返回true,java将停止计时器   使用JavaNIO获取文件创建日期   在Java中从整数转换为二进制时保留整个字节的字符串   java AspectJ&Maven警告:“未应用……中定义的建议?”   java为什么我得到3,我不应该得到+7   java当一个方法包含多个返回的if语句时,如何从该方法中获取返回值?   在运行时循环java(scan.nextLine()!="$")   java配置休眠。cfg。春天的xml   java使用HtmlUnit模拟用户,错误   java CLI如何持续检查更改   java最大素因子(返回)