由于要修改决策树分裂算法进行修改,所以为了省事想要直接使用sklearn里现场的代码。

首先说明一下,sklearn为了提升程序运行效率所以将关键代码通过Cython编译成了.pyd文件运行。生成.pxd文件的流程是通过.pyx文件编译为c然后将编译为可执行文件.pyd(win平台下是.pyd文件,linux下是.so文件),.pyd文件可以被作为包引用到python代码中,从而实现将关键代码使用c编写。

想要修改.pyd文件就需要获取原始的.pyx文件。正常安装scikit-learn是不会有这个文件的,正确的获取该文件需要通过github的scikit-learn项目下载。下载方式随意。

github的项目中包含了全部.pyx文件。首先修改你想要修改的pyd对应的pyx文件。然后在命令行中将目录移动到你下载的scikit-learn文件下,执行以下命令(建议在anaconda中新建一个虚拟环境,不要直接使用原始的环境)。

pip install --no-build-isolation --editable .

之后等待编译结束即可。

Obtaining file:///D:/school/github/scikit-learnPreparing wheel metadata ... done
Requirement already satisfied: joblib>=0.11 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (1.0.1)
Requirement already satisfied: scipy>=0.19.1 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (1.6.2)
Requirement already satisfied: numpy>=1.13.3 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (1.20.2)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\anaconda3\envs\sklearndev\lib\site-packages (from scikit-learn==1.0.dev0) (2.1.0)
Installing collected packages: scikit-learnAttempting uninstall: scikit-learnFound existing installation: scikit-learn 1.0.dev0Uninstalling scikit-learn-1.0.dev0:Successfully uninstalled scikit-learn-1.0.dev0Running setup.py develop for scikit-learn
Successfully installed scikit-learn

如果出错的话就按照错误提示进行操作,一般是缺少环境或者是代码语法错误。缺少环境使用pip install XXXX进行安装(如果使用的anaconda的话用conda install XXXX),语法问题会提示你具体位置,自行解决。

另外说一下,如果要系统的对scikit-learn文件进行修改,推荐看一下参考文献中的sklearn官方的文档。

参考文献:Cython官方文档

scikit-learn官网贡献指南

对sklearn文件pyd文件进行修改的方法相关推荐

  1. python文件式_python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  2. Python如何导入自己编写的py文件(.pyx文件 .pyd文件)

    一. 想要实现的效果 新建文件夹将自编模块集中管理 可在其它py文件内import 自编模块,像import第三方库一样 二. 实现的方法 步骤1:将编号的模块 *.py放入文件夹,在我计算机中是:F ...

  3. 【Springboot项目中pom文件parent报错的解决方法】~ ~ 详细教程

    目录 (一)问题说明 (二)解决方法 (1)配置maven环境 (2)修改settings.xml文件 (3)修改的方法 (4)配置maven信息 (5)选中修改的文件 (6)update maven ...

  4. python调用pyd_Python生成pyd文件

    Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...

  5. python隐藏源码,生成pyd文件并调用的完整过程

    目录 ​pyd 特点及生成方式​ 首先需要在 ​demo.py 同目录下新建个 setup.py 文件,具体代码如下 在生成之前或许我们需要先做一个事情,那就是安装vs_buildtools 在命令行 ...

  6. pybind11学习 | 在Python中构建编译生成pyd文件

    文章目录 0 准备 1. setuptools 2. pybind11.setup_helpers 3. cppimport 总结 0 准备 项目文件夹结构树如下: pybind11_setup_de ...

  7. C# .Net通过pythonnet调用python pyd文件

    开发环境:windows, python310, dotnet 6.0 说明:python文件编译成pyd. 1.新建控制台应用程序 2.添加nuget包 3.C#调用代码 using Python. ...

  8. python import文件pyd_Python生成pyd文件

    Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...

  9. python的pyd文件_Python 加密之 生成pyd文件

    混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Python有py.pyc.pyw.pyo.pyd等文件格式. 其中,pyc是二进制文件.但很容易被反编译. pyw也不行,只是隐藏 ...

最新文章

  1. 十三、进程互斥的软件实现方法
  2. Science揭示:身体如何应对细菌的“群体感应”
  3. jQuery的end()方法使用详解
  4. was这么做的负载均衡_中间件(WAS、WMQ)运维 9个常见难点解析
  5. 一个成功的Git分支模型
  6. Java性能问题定位
  7. Android探索之旅 | 面向对象和Java基础
  8. mysql生产环境加索引_【生产篇】_MySQL环境下如何查看基于表的索引定义
  9. 高效的半同步/半异步模式的实现
  10. 《scikit-learn》数据预处理与特征工程(二)数值转换
  11. 中消协:要选择优质电子显示产品 OLED屏整体上略胜一筹
  12. hashchange
  13. vfp中写入文本文件_VFP中操作多种文件
  14. Intent简单介绍
  15. 【阅读笔记】量子信息
  16. Excel中如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表
  17. 乐动手环app下载安装_乐动健康下载app_新版本手机乐动健康手环软件下载安装 安卓版 V2.08 - 罐头安卓网...
  18. 华中科技大学计算机叶磊,叶磊-华中科技大学公共卫生学院
  19. Hadoop学习(一)
  20. 笔记本Ubuntu安装失败的一般原因

热门文章

  1. iOS完整学习路线图
  2. 2021秋招总结(内含笔试面试攻略)
  3. 上海居转户 计算机中级职称,上海居转户中级经济师申请条件
  4. 网吧XP无盘系统集成优化及母盘封装
  5. 编码——永不退色的计算机科学经典著作
  6. php调扫描仪,扫描仪使用技巧
  7. js小数点有0的话就去掉,保留两位小数
  8. Linux 环境下部署Hexagon SDK 开发环境
  9. CSS全科教程——第一部分:CSS基础
  10. position属性absolute与relative 详解 不为人知的(fixed)绝对定位(fixed相对于浏览器窗口=不动的div)