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

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第三方库


热门话题
如何表示1。。Java中的n关系   java在安卓应用程序中添加polaris viewer   Java字符串::replaceAll仅替换第一个出现(可能不正确的正则表达式)   java Tomcat/JBoss部署后脚本   如何在Heroku Java应用程序中运行发出web请求的周期进程   java如何以纳秒为单位证明算法的时间   Solaris上的java自定义ListCellRenderer(使用jre5)   java试图为我的播放器类测试块实现播放器重力(RealtutsGml平台教程)   c#消耗一个。带有java的net web服务未显示预期结果   java在KOI8\R中检索html   基于java图形的搜索与基于随机的搜索   java如何检查安卓设备上的可用空间?在SD卡上?