如何将R中的随机森林模型导出为Excel VBA使用,且无需API调用

问题:

我在R中训练了一个随机森林模型。我需要将这个模型部署在一个独立的Excel工具中,该工具将被销售网络中的350人使用,用于根据用户在电子表格中输入的数据进行实时预测。

我该如何做到这一点?

限制条件:

  • 不能要求用户在本地计算机上安装R。

  • 不能使用服务器(物理或云端)提供评分API。

我已经做了什么?

1. PMML

我可以将模型导出为PMML格式(XML结构)。通过研究,我发现Python和Java中有用于加载和执行PMML输入的库。然而,我没有找到在VBA/VB中实现的任何东西。

2. Zementis

我调查了一种名为Zementis的解决方案,它提供了一个Excel插件来部署PMML模型。然而据我了解,这需要对云服务器(例如AWS)进行Web服务调用,实际的模型执行发生在那里。我的IT安全部门不会允许这样做。

3. 其他

最常见的建议似乎是调用R来加载模型并运行预测函数。如上所述,这不是一个可行的选项。

详细背景:

随机森林模型在R中训练,包含约30个变量。该模型用于在销售过程中推荐“个性化”的产品价格。

模型需要分发给销售网络,约有350名用户。业务的偏好是将模型集成到销售团队当前用于计算交易盈利能力的现有电子表格工具中。

这意味着我需要以一种可以实现到Excel VBA中的方式导出模型。

鉴于时间限制,实施需要是自包含的,不需要IT基础设施或额外的应用程序安装。我们正在与组织的IT团队合作开发基于服务器的解决方案,但他们的部署时间表是12个月以上,这意味着我们短期内需要一个战术解决方案。


回答:

这里是一种获取树“规则”的方法(使用mtcars数据集的示例)

install.packages("randomForest")library(randomForest)head(mtcars)set.seed(1)fit <- randomForest(mpg ~ ., data=mtcars, importance=TRUE, proximity=TRUE)print(fit)## 查看变量重要性:importance(fit)# 打印森林中每棵树的规则install.packages("rattle")library(rattle)printRandomForests(fit)

使用500棵树的规则可能不现实,但也许你可以在VBA中实现100棵树,然后对结果取平均值(对于连续响应)或预测在所有树中得票最多的类别(对于分类响应)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注