minepy、treePlotter导包的问题

minepy包

当学习最大信息系数时我们需要导minepy,用pip install minepy 时报错

解决方法:进入官网Unofficial Windows Binaries for Python Extension Packages,这个网站包含了很多Python扩展包的非官方Windows二进制文件,根据你的windows版本和python版本选择下载对应的minepy.whl文件。将Anaconda Prompt切换到安装包当前minepy.whl所在路径,执行pip install minepy-1.2.2-cp37-cp37m-win_amd64.whl即可完成minepy的安装。其他包安装不了也可以类似操作。

treePlotter

机器学习中一些树的绘制需要用到treePlotter,一开始以为它是个包导了几次还是显示未安装,后面发现它是一系列函数组成的自定义模块。

解决方法:新建一个python包,在新建的包中的__init__文件中复制以下代码:

import matplotlib.pyplot as plt"""绘决策树的函数"""
decisionNode = dict(boxstyle="sawtooth", fc="0.8")  # 定义分支点的样式
leafNode = dict(boxstyle="round4", fc="0.8")  # 定义叶节点的样式
arrow_args = dict(arrowstyle="<-")  # 定义箭头标识样式# 计算树的叶子节点数量
def getNumLeafs(myTree):numLeafs = 0firstStr = list(myTree.keys())[0]secondDict = myTree[firstStr]for key in secondDict.keys():if type(secondDict[key]).__name__ == 'dict':numLeafs += getNumLeafs(secondDict[key])else:numLeafs += 1return numLeafs# 计算树的最大深度
def getTreeDepth(myTree):maxDepth = 0firstStr = list(myTree.keys())[0]secondDict = myTree[firstStr]for key in secondDict.keys():if type(secondDict[key]).__name__ == 'dict':thisDepth = 1 + getTreeDepth(secondDict[key])else:thisDepth = 1if thisDepth > maxDepth:maxDepth = thisDepthreturn maxDepth# 画出节点
def plotNode(nodeTxt, centerPt, parentPt, nodeType):createPlot.ax1.annotate(nodeTxt, xy=parentPt, xycoords='axes fraction', \xytext=centerPt, textcoords='axes fraction', va="center", ha="center", \bbox=nodeType, arrowprops=arrow_args)# 标箭头上的文字
def plotMidText(cntrPt, parentPt, txtString):lens = len(txtString)xMid = (parentPt[0] + cntrPt[0]) / 2.0 - lens * 0.002yMid = (parentPt[1] + cntrPt[1]) / 2.0createPlot.ax1.text(xMid, yMid, txtString)def plotTree(myTree, parentPt, nodeTxt):numLeafs = getNumLeafs(myTree)depth = getTreeDepth(myTree)firstStr = list(myTree.keys())[0]cntrPt = (plotTree.x0ff + \(1.0 + float(numLeafs)) / 2.0 / plotTree.totalW, plotTree.y0ff)plotMidText(cntrPt, parentPt, nodeTxt)plotNode(firstStr, cntrPt, parentPt, decisionNode)secondDict = myTree[firstStr]plotTree.y0ff = plotTree.y0ff - 1.0 / plotTree.totalDfor key in secondDict.keys():if type(secondDict[key]).__name__ == 'dict':plotTree(secondDict[key], cntrPt, str(key))else:plotTree.x0ff = plotTree.x0ff + 1.0 / plotTree.totalWplotNode(secondDict[key], \(plotTree.x0ff, plotTree.y0ff), cntrPt, leafNode)plotMidText((plotTree.x0ff, plotTree.y0ff) \, cntrPt, str(key))plotTree.y0ff = plotTree.y0ff + 1.0 / plotTree.totalDdef createPlot(inTree):fig = plt.figure(1, facecolor='white')fig.clf()axprops = dict(xticks=[], yticks=[])createPlot.ax1 = plt.subplot(111, frameon=False, **axprops)plotTree.totalW = float(getNumLeafs(inTree))plotTree.totalD = float(getTreeDepth(inTree))plotTree.x0ff = -0.5 / plotTree.totalWplotTree.y0ff = 1.0plotTree(inTree, (0.5, 1.0), '')plt.show()if __name__=='__main__':createPlot()

需要时直接import这个包即可。
可以参考:https://blog.csdn.net/pwc1996/article/details/52577148

minepy、treePlotter导包的问题相关推荐

  1. Android 删除无用的导包

    window 10 系统 如果项目常见很久了,每个界面的去掉可以使用 ctrl + alt + o 快捷键, 或者  code -->Optimize imports 当然这样也是比较麻烦,为了 ...

  2. java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...

    1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...

  3. RecyclerView导包

    2019独角兽企业重金招聘Python工程师标准>>> 由于RecyclerView放在support library v7包中,所以我们想要使用就必须要导包.下面就介绍下在Ecli ...

  4. Eclipse之JSON导包

    1.选中要导包的工程-–>2.右击选择创建文件夹--->3.将要导的包复制到该文件夹下--–>4.右击要导入的包-->5.选择Build path->Add to Bui ...

  5. python no module name_python导包显示No module named XXX问题

    最近用sublime text写python脚本,在导包是一直显示No module named XXX. 问题描述: 首先文件夹的目录结构如下: count.py文件,代码如下: 1 #coding ...

  6. pycharm 无法导包、无法导入模块(模块名不能含有连接符“-”)

    注意,模块的命名很重要,名字中下划线是可以接受的,但是连接符"-"就不行了,如: 将"-"改成下划线就可以了 如果已经存在导包语句后,要将被导入的模块名修改为不 ...

  7. python 导包语法 import package as name 和 from package import name 的区别

    今天在导包的时候: # from easydict import EasyDict as edict # 成功 # import easydict.EasyDict as edict # 失败 结果: ...

  8. python 如何将虚拟环境的项目的所有.py文件的import导包汇总到requirements.txt文件 (pipreqs)

    参考文章: pipreqs - Generate requirements.txt file for any project based on imports 作用: 能快速汇总所需安装的包然后批量安 ...

  9. Golang的导包和引用包的问题

    go不同文件之间的相互引用靠包来实现,包的名字类似命名空间可以用来间接访问包内声明的标识符,总结下来就是: 1,文件夹就是包,文件夹名就是包名 2,同一文件夹(包)下的所有文件可以视为同一文件,也就是 ...

最新文章

  1. oracle根据一张表更新另外一张表
  2. 【必读】2019年深度学习自然语言处理最新十大发展趋势, 附报告下载
  3. linux 26,Linux常用26条命令
  4. 【工具】更新云文档办公利器汇总,腾讯新增批量上传多文件上传,云文档对比测试报告...
  5. python argparse理解与实例
  6. 浅谈AI视频技术超分辨率
  7. react组件之间重用状态
  8. 程序员面试中遇到问题
  9. DecimalFormat 用法
  10. ckeditor内容保存后显示问题
  11. 罗永浩直播首秀开卖小米 10;微信能转账 QQ;Ruby 2.7.1 发布 | 极客头条
  12. 分布式存储系统学习笔记(二)—分布式文件系统(2)—淘宝文件系统(TFS)
  13. Canonical发布信息图:Ubuntu Linux连接一切
  14. swfupload 实例 php,文件上传之SWFUpload插件(代码)_php实例
  15. 入侵排查篇---勒索病毒自救指南
  16. ubuntu 安装dep文件
  17. 爬虫--07:MongoDB
  18. 金士顿内存条真假测试软件,金士顿内存条真伪怎么看?金士顿内存条判别真伪的几种方法...
  19. 为什么需要工作流调度系统?
  20. 魅族手机CUP浮点运算测试BUG

热门文章

  1. google colab连接谷歌云盘
  2. 【知网 下载 英文文献】
  3. 发朋友圈“真羡慕人家按时发工资”,然后被开除了?合理吗?
  4. star 序列比对2020-12-25
  5. Revit 求质心(重心点)
  6. 实例:身体质量指数BMI
  7. 查看jks证书文件内容
  8. c语言求100内素数
  9. 湖南中创教育PMP项目管理——团队管理
  10. 安装Pygame原来很简单