最近发现了一个好玩的Python库,它可以将训练好的机器学习模型转换为Java、C、JavaScript、Go、Ruby,VBA 本地代码,可以让连Python和机器学习一无所知的同学也能感受预测的神奇。

先看效果哈

其实做这个小东西,感觉还能玩出别的花样,但不清楚到底有什么场景。写这篇文章的时候,我对Excel的 VBA 一无所知,百度了几个用法就开搞了。现在我也能用 VBA 写一些函数和过程了,这也许是最大的收货吧。

m2cgen

m2cgen(Model 2 Code Generator)是一个轻量级代码生成器,它可以将训练好的机器学习模型转换成无需依赖库的本地代码。

m2cgen目前支持的模型还蛮多的,常用常见的都包括了:

使用方法

m2cgen的安装非常方便,直接pip:

pip install m2cgen

使用,先用XGBClassifier训练一个模型

# import packages
import pandas as pd
import numpy as np
import os re
from random import sample
from sklearn import datasets
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import pickle
import m2cgen as m2c seed = 2020
test_size = 0.3
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed)
# fit model on training data
model = XGBClassifier()
model.fit(X_train, y_train)

将模型转为VBA

code = m2c.export_to_visual_basic(model, function_name = 'pred')

VBA的英文全称是Visual Basic for Applications,是一门标准的宏语言,通常使用来实现Excel中没有提供的功能、编写自定义函数、实现自动化功能等。VBA语言不能单独运行,只能被office软件(如:Word、Excel等)所调用。

生成的VBA长这样:

实话实话,我对VBA还是小白,也懒得深究,于是就把代码改成了过程,这里就不贴了,我把改好之后的代码放到了github。有VBA大神可以帮忙,欢迎提交 PR。

https://github.com/tjxj/excel2ml

想省事的同学直接去copy即可

Excel

点击excel菜单中的【开发工具】(如果没有开发工具选项卡,请参考:excel开发工具选项卡在哪?原来需要自己添加),然后在代码选项卡中点击【Visual Basic】 即可,也可以直接Alt + F11 唤出:

点击插入-模块,把改好的 VBA 代码贴进去即可

保存后退出,然后回到sheet页,开发工具-插入-按钮



编辑好文字后,右键指定宏,选中我们刚才保存的那个即可。



然后就一切OK了。

The End

最新文章

  1. MapReduce之单词计数
  2. 【译】html5游戏入门
  3. 关于laravel 得手动分页问题
  4. Vue-cli安装教程
  5. Echarts 中国地图(包括china.js文件)
  6. SSM-MyBatis-08:Mybatis中SqlSession的commit方法为什么会造成事物的提交
  7. 从壹开始前后端 [vue后台] 之二 || 完美实现 JWT 滑动授权刷新
  8. python之地基(一)
  9. js身份证正则
  10. Java系统高并发之Redis后端缓存优化
  11. day16 函数的用法:内置函数,匿名函数
  12. SpringBoot使用事务
  13. svn中的ignore
  14. 【有新题】OCP 12c 062出现大量新考题-14
  15. C语言版本:单链表的实现(优化版本)
  16. linux内核seq_file接口
  17. 对象不能从 DBNull 转换为其他类型
  18. ramdisk文件系统制作
  19. ConfigParser.NoSectionError: No section: 'MongoDB'
  20. 五 Python基础 数据类型和变量

热门文章

  1. Scala统计一个文件所有单词出现的次数
  2. vuecli学习01 - 环境搭建
  3. fidder无法下载证书的最佳解决办法
  4. docker daemon
  5. ApacheCN Asp.NET 译文集 20211126 更新
  6. ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.12
  7. 「Celeste-B」Say Goodbye
  8. 「ZJOI2017」树状数组
  9. (4)什么是Ribbon负载均衡
  10. JAVA多线程学习十二 - Semaphere同步工具