用Excel玩機器學(xué)習(xí)!
↑↑↑點擊上方藍字,回復(fù)資料,10個G的驚喜
最近發(fā)現(xiàn)了一個好玩的Python庫,它可以將訓(xùn)練好的機器學(xué)習(xí)模型轉(zhuǎn)換為Java、C、JavaScript、Go、Ruby,VBA 本地代碼,可以讓連Python和機器學(xué)習(xí)一無所知的同學(xué)也能感受預(yù)測的神奇。
先看效果哈

這個小東西,感覺還能玩出別的花樣,但不清楚到底有什么場景。寫這篇文章的時候,我對Excel的 VBA 一無所知,百度了幾個用法就開搞了。現(xiàn)在我也能用 VBA 寫一些函數(shù)和過程了,這也許是最大的收貨吧。
m2cgen
m2cgen(Model 2 Code Generator)是一個輕量級代碼生成器,它可以將訓(xùn)練好的機器學(xué)習(xí)模型轉(zhuǎn)換成無需依賴庫的本地代碼。
m2cgen目前支持的模型還蠻多的,常用常見的都包括了:
使用方法
m2cgen的安裝非常方便,直接pip:
pip?install?m2cgen
使用,先用XGBClassifier訓(xùn)練一個模型
#?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)
將模型轉(zhuǎn)為VBA
code?=?m2c.export_to_visual_basic(model,?function_name?=?'pred')
VBA的英文全稱是Visual Basic for Applications,是一門標(biāo)準(zhǔn)的宏語言,通常使用來實現(xiàn)Excel中沒有提供的功能、編寫自定義函數(shù)、實現(xiàn)自動化功能等。VBA語言不能單獨運行,只能被office軟件(如:Word、Excel等)所調(diào)用。
生成的VBA長這樣:

實話實話,我對VBA還是小白,也懶得深究,于是就把代碼改成了過程,這里就不貼了,我把改好之后的代碼放到了github。有VBA大神可以幫忙,歡迎提交 PR。
https://github.com/tjxj/excel2ml
想省事的同學(xué)直接去copy即可

Excel
點擊excel菜單中的【開發(fā)工具】(如果沒有開發(fā)工具選項卡,請參考:excel開發(fā)工具選項卡在哪?原來需要自己添加),然后在代碼選項卡中點擊【Visual Basic】 即可,也可以直接Alt + F11 喚出:

點擊插入-模塊,把改好的 VBA 代碼貼進去即可
保存后退出,然后回到sheet頁,開發(fā)工具-插入-按鈕
編輯好文字后,右鍵指定宏,選中我們剛才保存的那個即可。
然后就一切OK了。
The End
