用Excel玩机器学习!

简介: 用Excel玩机器学习!

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


先看效果哈


640.gif


输入特征数据,点击开始预测,即可输出类别概率


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


m2cgen


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


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


640.png

使用方法


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长这样:


640.png


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


https://github.com/tjxj/excel2ml


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

640.png


Excel


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


640.png


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


640.png


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

640.png


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


640.png


然后就一切OK了。


640.gif


The End



相关文章
|
机器学习/深度学习 编解码 监控
机器学习测试笔记(3)——Matplotlib
机器学习测试笔记(3)——Matplotlib
191 0
机器学习测试笔记(3)——Matplotlib
|
机器学习/深度学习 数据采集 监控
机器学习测试笔记(6)——数据清洗和准备(下)
机器学习测试笔记(6)——数据清洗和准备(下)
97 0
|
数据采集 机器学习/深度学习 测试技术
机器学习测试笔记(6)——数据清洗和准备(上)
机器学习测试笔记(6)——数据清洗和准备(上)
78 0
|
机器学习/深度学习 存储 算法
数据挖掘系列(4)_Excel的数据挖掘插件_预测
使用预测向导可以预测时序中的值。 预测向导使用 Microsoft 时序算法,该算法是一个用于预测连续列(例如产品销售)的回归算法。
数据挖掘系列(4)_Excel的数据挖掘插件_预测
|
机器学习/深度学习 SQL 算法
数据挖掘系列(3)_Excel的数据挖掘插件_估计分析
本篇博客使用SQL Server的数据挖掘客户端插件来在Excel上面进行估计分析。
数据挖掘系列(3)_Excel的数据挖掘插件_估计分析
|
机器学习/深度学习 数据可视化
《机器学习与R语言(原书第2版)》一2.3 探索和理解数据
在收集数据并把它们载入R数据结构以后,机器学习的下一个步骤是仔细检查数据。在这个步骤中,你将开始探索数据的特征和案例,并且找到数据的独特之处。你对数据的理解越深刻,你将会更好地让机器学习模型匹配你的学习问题。
1524 0
|
存储 机器学习/深度学习
《机器学习与R语言(原书第2版)》一2.2 用R管理数据
当处理大量数据集时,面临的挑战包括收集、准备和管理来自各种不同来源的数据。尽管通过学习后面章节中的真实世界的机器学习任务,我们会深入地涉及数据准备、数据清理和数据管理,但本节重点讲述基本的R数据导入和导出功能。
1719 0