zoukankan      html  css  js  c++  java
  • 教你在windows10环境下如何安装minepy并成功运行!

    在学习使用sklearn做单机特征工程这篇文章时,发现在计算互信息时from minepy import MINE代码运行出错ModuleNotFoundError: No module named 'minepy'

    原文部分如下:

    3.1.4 互信息法

    经典的互信息也是评价定性自变量定性因变量的相关性的,互信息计算公式如下:

    为了处理定量数据,最大信息系数法被提出,使用feature_selection库的SelectKBest类结合最大信息系数法来选择特征的代码如下:

    from sklearn.feature_selection import SelectKBest
    from minepy import MINE
    
    #由于MINE的设计不是函数式的,定义mic方法将其为函数式的,返回一个二元组,二元组的第2项设置成固定的P值0.5
    def mic(x, y):
        m = MINE()
        m.compute_score(x, y)
        return (m.mic(), 0.5)
    
    #选择K个最好的特征,返回特征选择后的数据
    SelectKBest(lambda X, Y: array(map(lambda x:mic(x, Y), X.T)).T, k=2).fit_transform(iris.data, iris.target)
    

    运行结果

    • 错误1:
    ModuleNotFoundError: No module named 'minepy'
    
    • 错误2:

    先解决错误1

    根据ModuleNotFoundError: No module named 'minepy'提示,缺少minepy模块,于是到Anaconda(或者cmd)下执行命令pip3 install minepy


    发现又缺少编译器——Visual C++ Build Tools(注:这个是微软为 Python 3.5 提供的编译器),看出错结果显示:

    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    好嘛,为了安装minepy竟然还要安装Visual C++ Build Tools,麻不麻烦啊?

    机智的我赶紧去Unofficial Windows Binaries for Python Extension Packages找找看,这个网站包含了很多Python扩展包的非官方Windows二进制文件,还真有minepy

    把它下载下来后,我把它拷贝到了E:Python3.6Scripts文件夹里面,在该路径运行cmd命令pip3 install minepy-1.2.2-cp36-cp36m-win_amd64.whl,成功安装。

    在Anaconda的Prompt中直接用命令:pip3 install E:Python3.6Scriptsminepy-1.2.2-cp36-cp36m-win_amd64.whl,也成功安装。

    注意:下载的minepy-1.2.2-cp36-cp36m-win_amd64.whl可以保存到任何文件夹地方,只需要在该路径下运行cmd,然后运行pip3 install minepy-1.2.2-cp36-cp36m-win_amd64.whl,一样可以成功安装。

    参考资料:

    再解决错误2

    • 只要改成:SelectKBest(lambda X, Y: list(array([pearsonr(x, Y) for x in X.T]).T), k=2).fit_transform(iris.data, iris.target)即可
    from sklearn.feature_selection import SelectKBest
    from minepy import MINE
    
    #由于MINE的设计不是函数式的,定义mic方法将其为函数式的,返回一个二元组,二元组的第2项设置成固定的P值0.5
    def mic(x, y):
        m = MINE()
        m.compute_score(x, y)
        return (m.mic(), 0.5)
    '''
    compute_score(x, y)
    Computes the maximum normalized mutual information scores between x and y.
    计算x和y之间的最大标准化互信息分数。
    '''
    #选择K个最好的特征,返回特征选择后的数据
    SelectKBest(lambda X, Y: list(array([pearsonr(x, Y) for x in X.T]).T), k=2).fit_transform(iris.data, iris.target)
    # 或 SelectKBest(lambda X, Y: array(list(map(lambda x:mic(x, Y), X.T))).T[0], k=2).fit_transform(iris.data, iris.target)
    
    • 运行结果:

    运行成功,全部搞定!

  • 相关阅读:
    Laravel 集成 laravel Scout + Elasticsearch
    Vim Tab to Space and other configurations
    Gitlab To Gitlab 进行项目迁移
    win10 程序管理员权限读写文件和界面无法拖入的情况解决
    4.5 RNN循环神经网络(recurrent neural network)
    mumpy,h5py和tensorflow版本不匹配导致报错
    tensorflow预定义经典卷积神经网络和数据集tf.keras.applications
    QT失去focus后自动隐藏界面
    4.3CNN卷积神经网络最详细最容易理解--tensorflow源码MLP对比
    4.2tensorflow多层感知器MLP识别手写数字最易懂实例代码
  • 原文地址:https://www.cnblogs.com/HongjianChen/p/9660529.html
Copyright © 2011-2022 走看看