问题标签 [pmml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2272 浏览

hadoop - 如何在 jpmml 级联中传递 Hadoop 作业队列名称?

我正在尝试使用此项目中提供的 jpmml 级联库中的级联框架执行 pmml 模型https://github.com/jpmml/jpmml-cascading

我已按照所有步骤操作,并且能够使用 mvn clean install 命令生成example-1.2-SNAPSHOT-job.jar 。

但是,当我使用以下命令执行相同的 jar 时:

我没有权限在默认队列上提交作业,因为我们的 hadoop 集群中的默认队列仅出于管理目的而被阻止,普通用户在不提供队列名称的情况下无法运行 hadoop 作业。

我无法看到在存储库中的何处提供 hadoop 作业队列。

谁能建议我如何传递 hadoop 作业队列名称?

笔记:

  1. 我试图通过属性 mapred.job.queue.name 传递队列名称,但作业仍然通过命令行和代码本身显示相同的错误。

  2. 我还尝试使用 oozie shell 操作节点运行该作业并在应用程序工作流中传递队列名称,但我相信这仅适用于 oozie 作业,不适用于通过 shell 操作节点执行的 hadoop 作业。

0 投票
1 回答
180 浏览

machine-learning - PMML 阅读器如何解释预测值的类型?

您好我有一个使用 R 为逻辑回归模型生成的 PMML,如下所示。此处仅显示 pmml 的第一部分。

此处不存在 OutputField 数据类型。如果是这样,PMMl 阅读器如何解释它的类型?

我检查了 PMML 规范,它说并不总是需要 OutputField 的 dataType。我正在写一个 pmml 阅读器,我需要知道如何对这样的 pmml 进行解释。

0 投票
1 回答
967 浏览

java - 如何设置一个系统来读取我使用 R 创建的 PMML 文件?

在过去的几天里,我一直在尝试传递一个带有 .xml 扩展名的 PMML 文件,该文件是我使用Rpmml打包创建的。创建iris.xmlPMML 文件后,我无处可去,实际上我不知道要查找什么。然后我在这里看到了 Alex Guazzelli 的视频,他告诉我们使用 Zementis 的 ADAPA 来运行从 R 创建的 PMML 文件。

我从视频中得到的是,

  1. 我想做一些类似的事情,比如在某个地方上传我的 PMML 文件并经常输入我的测试文件以获得相应的预测值。
  2. ADAPA 看起来很棒,但看起来也需要一些钱。所以我想寻找一个替代方案,它可能不像 ADAPA 那样用户友好。
  3. 然后我找到了作者说的这个页面

所以第一步是让引擎运转起来。我遇到了一些小问题,但 Scott 很快修复了它们,并提供了一个新的 war 文件,可以在 tomcat 中部署。可以在http://code.google.com/p/openscoring/下获得。如果你仍然遇到一些问题,你也可以试试我的 war 文件。它是用 java 版本“1.6.0_26”构建的,并在 tomcat 7 下测试。使用管理控制台安装 war 文件后,您可以通过发送 XML 格式的 POST 请求到 '<a href="http: //localhost:8080/OpenScoring/Scoring" rel="nofollow">http://localhost:8080/OpenScoring/Scoring'</p>

然后我找到了 jpmml。这里的问题是软件包名称非常混乱,我不知道该安装哪个。事实上,我不知道如何安装它们。我有 Java 的基本知识,显然它在当前场景中没有帮助。

非常期待任何形式的帮助。

0 投票
1 回答
1318 浏览

python - 在 Python 中使用 PMML 和 Augustus 对回归模型进行评分

我有一个从我同事的 R 线性模型生成的 PMML 文件(如下),用于根据 5 个特征预测项目的成本。我正在尝试使用 Python 中的 Augustus 来使用这个模型并做出这些预测。我已成功获取 Augustus 加载的 PMML 文件,但未能获得预测值。

我已经浏览了很多来自 Augustus 的模型抽象的例子,并通过搜索 Stack 和 Google,但我还没有找到任何成功使用线性回归的例子。之前有人问过一个类似的问题,但从未正确回答。我还尝试了其他具有类似结果的示例回归 PMML 文件。

如何在 Python 中使用 Augustus(或其他库)运行回归并获得预测?

PMML 代码: linear_model.xml

蟒蛇代码:

(输出)

从表中可以看出,仅显示输入值,没有“成本”值。我如何获得要预测的成本?

我正在使用 Python 2.7、Augustus 0.6(也尝试过 0.5)、OS X 10.11

0 投票
1 回答
741 浏览

java - 解决 SparkException:导入 PMML 模型时任务不可序列化

我想导入一个 PMML 模型,以使用 Spark 计算分数。当我不使用火花时一切正常,但我不能在映射器中使用我的方法。

问题是我需要一个来自 org.jpmml.evaluator.Evaluator 的评估对象,它似乎不是可序列化的。因此,我尝试使用以下课程使其成为可串行化:

我还使我所有的类都可序列化。

这是我的代码示例:

但我不认为我的代码会帮助你解决我的问题,这很清楚(见日志:)

org.apache.spark.SparkException:在 org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:158) 的 org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:166) 任务不可序列化) 在 org.apache.spark.SparkContext.clean(SparkContext.scala:1623) 在 org.apache.spark.rdd.RDD.map(RDD.scala:286) 在 org.apache.spark.api.java.JavaRDDLike$ class.map(JavaRDDLike.scala:89) 在 org.apache.spark.api.java.AbstractJavaRDDLike.map(JavaRDDLike.scala:46) 在 score.acv.AppWithSpark.main(AppWithSpark.java:117) 在 sun.reflect .NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:497) 在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:577)在 org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:174) 在 org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:197) 在 org.apache.spark.deploy。 SparkSubmit$.main(SparkSubmit.scala:112) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)197) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)197) 在 org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112) 在 org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

引起:java.io.NotSerializableException:org.xml.sax.helpers.LocatorImpl 序列化堆栈:

0 投票
1 回答
572 浏览

r - 将 R 模型转换为 pmml 时出错

当我尝试从 RI 中的模型中获取 PMML 代码时,出现以下错误:

这是给出错误的代码:

这是没有给出任何错误的示例代码:

我在哪里做错了?错误是由于数据大小引起的吗?请帮忙

更新:

在看了@Laterow 和@Tridi 的建议后,我想我应该看看火车组,我看到了一个字符向量,

然后我将该字符向量转换为整数。然后 pmml 工作正常,

0 投票
0 回答
381 浏览

java - MATLAB SVM 分类器到 Java 或 PMML

我在 MATLAB (CompactClassificationSVM) 中有一个训练有素的 SVM 分类器,包括它的所有设置和支持向量等。但是,我需要在 Android 平板电脑上执行预测,所以我更喜欢在 Java 中完全重现模型。我没有可用的训练数据。

最简单的方法是 MATLAB 允许将模型导出到 PMML 文件中,但我找不到任何方法。

另一种选择是使用支持向量机的库,但我看不到在不首先使用该库实际训练的情况下获得训练模型的方法。如果该库支持导出到 PMML,则该库不必使用 Java。

有人对如何将经过 MATLAB SVM 训练的分类器导出到 PMML 或将其移植到 Java 有任何建议吗?

0 投票
1 回答
111 浏览

pmml - 使用 jpmml 时的树大小限制

将树模型与 jpmml(版本 1.1.16)一起使用时是否有大小限制?

当我有一些输入的超大树(PMML 大小为数百 MB,数百万个叶子)时,我得到了这个异常:

java.lang.NullPointerException at org.jpmml.evaluator.PredicateUtil.evaluateSimplePredicate(PredicateUtil.java:79) at org.jpmml.evaluator.PredicateUtil.evaluate(PredicateUtil.java:54) at org.jpmml.evaluator.TreeModelEvaluator.evaluateNode( TreeModelEvaluator.java:171) at org.jpmml.evaluator.TreeModelEvaluator.handleTrue(TreeModelEvaluator.java:186) at org.jpmml.evaluator.TreeModelEvaluator.handleTrue(TreeModelEvaluator.java:197) at org.jpmml.evaluator.TreeModelEvaluator.handleTrue (TreeModelEvaluator.java:197) 在 org.jpmml.evaluator.evaluator.TreeModelEvaluator.evaluateTree(TreeModelEvaluator.java:139) 在 org.jpmml.evaluator.TreeModelEvaluator.evaluateRegression(TreeModelEvaluator.java:94) 在 org.jpmml.evaluator.TreeModelEvaluator。评估(TreeModelEvaluator.java:77) 在 org.jpmml.evaluator.MiningModelEvaluator.evaluateRegression(MiningModelEvaluator.java:149) 在 org.jpmml.evaluator.MiningModelEvaluator.evaluate(MiningModelEvaluator.java:463) 在 org.jpmml.evaluator.MiningModelEvaluator.evaluateSegmentation(MiningModelEvaluator.java:463) :130) 在 org.jpmml.evaluator.MiningModelEvaluator.evaluate(MiningModelEvaluator.java:106) 在 org.jpmml.evaluator.ModelEvaluator.evaluate(ModelEvaluator.java:263) 在 org.openscoring.service.ModelResource.evaluate(ModelResource. java:550) 在 org.openscoring.service.ModelResource.doEvaluate(ModelResource.java:404) 在 org.openscoring.service.ModelResource.doEvaluateCsv(ModelResource.java:339) 在 org.openscoring.service.ModelResource.evaluateCsv(ModelResource .java:299) 在 sun.reflect。Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 的 NativeMethodAccessorImpl.invoke0(Native Method) org.glassfish 的 java.lang.reflect.Method.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)。 jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) 在 org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:143) 在 org.glassfish.jersey。 server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:160) 在 org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker。doDispatch(JavaResourceMethodDispatcherProvider.java:158) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:97) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java: 389)在 org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)在 org.glassfish.jersey .server.ServerRuntime$2.run(ServerRuntime.java:303) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors. java:267) 在 org.glassfish.jersey.internal.Errors.process(Errors.java:315) 在 org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope( RequestScope.java:317) 在 org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:286) 在 org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1072) 在 org.glassfish.jersey .servlet.WebComponent.service(WebComponent.java:399) 在 org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) 在 org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344 ) 在 org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) at org.eclipse.jetty.ServletHandler.doHandle(ServletHandler.java:587) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty .servlet.ServletHandler.doScope(ServletHandler.java:515) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler .java:141) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 在 org. eclipse.jetty.server.Server.handle(Server.java:497) 在 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 在 org.eclipse.jetty.server。org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 处的 HttpConnection.onFillable(HttpConnection.java:257) org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) ) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 在 java.lang.Thread.run(Unknown Source)

0 投票
1 回答
591 浏览

android - 将 JPMML 导入我的 Android Studio 项目

如何将 jpmml ( https://github.com/jpmml/jpmml ) 添加到我的 Android Studio 项目中?我尝试使用 pom.xml 文件,但没有帮助。请给我一些建议。

0 投票
2 回答
1871 浏览

r - 如何在 R 中使用 pmml 文件进行预测

我使用 R 中 pmml 库中的 pmml 函数创建了一个 xml 文件。

之后,在第一行训练模型,我找到了训练数据的相应概率。

现在我想使用这个 xml 文件来生成对一组数据的预测(基本上又是训练集)。我如何在 R 中做到这一点?我看到在java和spark中,我们可以加载由pmml函数生成的xml文件,然后有一些函数可以进行预测。

基本上,我正在寻找 R 中的一个函数,它可以将此 xml 文件作为输入,然后返回一个对象,该对象又将一些数据点作为输入并返回它们具有标签 0 和 1 的概率。

我找到了一个链接: 可以在 R 中读取 PMML 模型吗?

但这无济于事