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. oracle11g开启1158,1、Oracle11g中浏览器访问不了http://localhost:1158/em的问题
  2. javascript ES6
  3. Linux下udp程序怎么运行,Linux下UDP的连接程序示例(阻塞、非阻塞)
  4. tomca7.0 mysql配置连接池_tomcat7.0+mysql连接池配置
  5. hdu3037 Saving Beans
  6. 板材开料最优算法_板材套料软件AutoNest与Tekla Structures协同工作实现设计到加工自动化...
  7. Winform中设置ZedGraph鼠标悬浮显示线上的点的坐标并自定义显示的内容
  8. python人脸识别框很小_人脸识别:从传统方法到深度学习
  9. hue迁移数据库到mysql
  10. 编写自动调试器以在测试执行期间捕获异常
  11. fzyzojP2291 -- 小添添的庄园之道路修复
  12. 【转】大厦将倾,互联网将如何变革传统行业(上)
  13. jquery验证框架validate的使用
  14. Hexo + github 打造个人博客
  15. perl亲身试验ini---使用perl读写配置文件
  16. python 车牌识别简单_简单30行Python代码让你玩转YOLO目标识别检测!
  17. Day13_定时器中断处理
  18. 【信息融合】基于BP神经网络和DS 证据理论实现不确定性信息融合问题附matlab代码
  19. 影视解说短视频如何吸引粉丝?三个要点助你吸粉引流
  20. vue第四天笔记02——axios请求

热门文章

  1. BMI指数(Body Mass Index)
  2. 【thinkphp5商城系统】01项目框架搭建
  3. 深度学习中的采样:下采样,上采样,欠采样,过采样
  4. Linux系统安装ffmpeg + h264视频编码
  5. linux ntpdate 更新时间,Linux时间同步:ntpd,ntpdate
  6. Haar特征计算的一些见解
  7. NOPI操作Excel
  8. 本质论之封装继承和多态的介绍
  9. Arcpy批量对栅格进行ZonalStatisticsAsTable
  10. 实验7 H.264码流分析仪