- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 RapidMiner Studio 9.5.1 中,我的 python 脚本完成后,我可以打印生成的数据帧,并看到它是按预期生成的,具有正确的列。 Rapidminer 处理器仍失败并显示以下消息:
Exception: com.rapidminer.operator.OperatorException
Message: Script terminated abnormally: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Stack trace:
com.rapidminer.extension.pythonscripting.operator.scripting.AbstractScriptRunner.run(AbstractScriptRunner.java:137)
com.rapidminer.extension.pythonscripting.operator.scripting.AbstractScriptingLanguageOperator.doWork(AbstractScriptingLanguageOperator.java:210)
com.rapidminer.extension.pythonscripting.operator.scripting.python.PythonScriptingOperator.doWork(PythonScriptingOperator.java:434)
com.rapidminer.operator.Operator.execute(Operator.java:1032)
com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:77)
com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:812)
com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:807)
java.security.AccessController.doPrivileged(Native Method)
com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:807)
com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:423)
com.rapidminer.operator.Operator.execute(Operator.java:1032)
com.rapidminer.Process.executeRoot(Process.java:1378)
com.rapidminer.Process.lambda$executeRootInPool$5(Process.java:1357)
com.rapidminer.studio.concurrency.internal.AbstractConcurrencyContext$AdaptedCallable.exec(AbstractConcurrencyContext.java:328)
java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
没有提供任何其他见解,也没有引用脚本中我的代码中的一行。我已经更新了 numpy 库,以防它与旧版本存在兼容性问题,但仍然没有解决方案。
numpy 1.14.5 pypi_0 pypi
numpy-base 1.16.4 py36hc3f5095_0 defaults
numpydoc 0.9.1 py_0 defaults
pandas 0.25.3 py36ha925a31_0 defaults
此外,当检查 python 环境是否正常(Anaconda env)时,从 RapidMiner 中的“设置”>“首选项”>“Python 脚本”检查,所有测试均成功通过。
.rmp 文件中的处理器 xml 为:
<operator activated="true" class="python_scripting:execute_python" compatibility="9.5.000" expanded="true" height="103" name="Execute Python" width="90" x="313" y="34">
<parameter key="script" value="import pandas # rm_main is a mandatory function, # the number of arguments has to be the number of input ports (can be none) def rm_main(data): print('Hello, world!') # output can be found in Log View print(type(data)) #your code goes here #for example: data2 = pandas.DataFrame([3,5,77,8]) # connect 2 output ports to see the results return data, data2"/>
<parameter key="script_file" value="%{ResourcePath}\detect_aggressive_language.py"/>
<parameter key="notebook_cell_tag_filter" value=""/>
<parameter key="use_default_python" value="true"/>
<parameter key="package_manager" value="conda (anaconda)"/>
<description align="center" color="transparent" colored="false" width="126">Detect Script</description>
</operator>
到目前为止,我已经尝试过:
1. 使用我的计算列更新初始 DataFrame(数据)并返回它。
2. 使用我的列创建一个新的 DataFrame 并单独返回或作为数据后的第二个参数返回。
3. 创建一个方法(在脚本内),该方法接受初始 DataFrame 数据作为参数,对其进行修改,然后返回它。
4. Pickle新的DataFrame,保存,加载并返回。
所有这些尝试都导致了上面提到的相同错误。
我的猜测是,RapidMiner 使用产生上述错误的代码对处理器的完成情况进行某种检查,因此它失败并且处理器终止。
是否有一种特殊的正确方法来处理和返回RapidMiner中的DataFrame来绕过错误,或者是否有其他我可以检查的内容来找出问题所在?
最佳答案
为了进一步调试问题,我开始将新列一一添加到生成的 DataFrame 中。这让我有了以下发现:
当 DataFrame 包含一个列 (pandas.DataFrame.Series),其元素是 numpy.ndarrays 或列表,其元素全部为零(整数或 float )时,就会出现问题。当“执行Python”处理器返回时,RapidMiner 尝试确定 DataFrame 的每个单元格是否以 Null 返回或具有值。为此,基于异常堆栈跟踪,代码必须检查单元格的内容是否为 None,当元素是列表或 numpy ndarray 时,这不是进行此检查的有效方法。因此,异常消息告诉我们,当数组中存在多个元素时,即使它们全部为零,也无法确定真值(或者是否为 None)。
因此,在这种情况下,解决方案是确保当返回的 DataFrame 具有包含列表或数组的列时,它们的实例不包含全零。人们还可以避免将列表或数组放入返回的 DataFrame 中。另一件可行的事情是在代码中进行正确的无效检查(使用 array.all()),并且当找到包含所有零元素的数组或列表时,整个单元格的内容将替换为 None 或另一个值结果的接收者将解释为 null。当然,人们也可以等待RapidMiner Studio的下一版本,它可能会以正确的方式进行检查。
关于python - 从 RapidMiner Studio 中的执行 Python 处理器返回 pandas DataFrame 时出现 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59847830/
我需要在 Rapidminer 中使用先验算法创建关联规则,但我似乎无法让它工作。我正在使用 5.3.1 weka 扩展。 我已经使用内置的 FP-Growth 和 Create Associatio
我需要将数据传递给神经网络运算符。一些属性是二项式的,神经网络不接受二项式数据类型,但它接受整数。 没有二项式到整数(数值)类型转换运算符。那么我该如何转换呢? 感谢您的回答 最佳答案 您可以使用“N
我想将第二张图片中的数据插入数据库。我该怎么办? home page process result of performance operator 最佳答案 您需要将性能运算符的输出转换为常规示例集。
一般来说,我对 rapidminer 和数据挖掘还很陌生,但我试图粗略地搜索一下 rapidminer 决策树参数中所有参数的含义,但没有找到。我知道叶子是什么,节点是什么,我正准备了解一些参数,但如
我正在努力帮助我的团队简化占用大量时间的数据摄取流程。我们接收多种格式的数据,并且属性排列不同。有没有一种方法可以使用 RapidMiner 创建一个流程: 按计划处理放入文件夹中的文件(这一个我想我
我有一组分类为正面或负面的短信,这些短信保存在 WEKA 中生成的 ARFF 文件中。我想将这些数据转移到 RapidMiner 进行分类和处理。 作为 RapidMiner 的新手,有人有关于如何为
我是第一次使用RapidMiner。我有一个数据集(.xlsx 格式),我想在其上运行神经网络算法。我收到此错误; The operator NeuralNet does not have suffi
在Rapidminer v.5.3013中我想实现以下目标: 从数据库表中读取 1500 万条记录 - 仅一个属性,但最多 4096 个字符 该数据集的正则表达式替换 根据朴素贝叶斯分类 将结果(也是
我已经在我的系统上安装了java 7(也尝试了java 8),然后在我的系统上安装了Rapidminer 6。所有安装都很好。现在,当我尝试启动 Rapidminer Studio 时,它给了我错误,
我是在 Java 应用程序中集成 Rapid miner 的新手,目前我在 rapidminer.init() 中遇到异常。据我所知,这是因为存储库。但我不知道该怎么办。我做了一些研究,但仍然无法解决
我有一个保存在数据库内的 MYSQL 表中的 TFIDF 向量,该表具有以下架构: id | docid | word | weight | class/label | timestamp 1
我使用 Excel 文件,其中包含几个句子。我想生成新属性(我使用“生成属性”运算符),如果句子包含一些数字之间有空格(例如 234 45 56),则返回(“true 或 false”)。我使用了函数
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我正在处理一个相当大的数据集(770K 条记录,2K 属性,几乎所有这些属性都是二项式但为整数形式), 我想通过 10 倍交叉验证对数据应用决策树,但我遇到了一些问题: 1.为什么决策树(例如深度为1
如果在快速矿工上发布问题的地方不对,我深表歉意。我发帖只是为了碰碰运气以获得答案。 我是rapidminer的新手,我能够在rapid miner中成功实现几个R模型(C5,rpart)。现在我尝试使
我有一个包含许多属性(2k)的数据集,其中一些(大约10)不是二进制的,其余的是二进制的(0,1),我想将这些二进制属性的值类型从整数更改为二项式,因为特征的名称不固定,我想根据它们的值来做! (即将
我在 RapidMiner 中有一个文本分类过程。它从指定的excel ssheet中读取测试数据并进行分类。我还有一个小型 Java 应用程序,它正在运行这个进程。现在我想在我的应用程序中制作文件输
我正在尝试为 RapidMiner 编写一个数据源,其中包含我公司开发多年的 API 连接器库。 代码没问题,但无法实例化某些类。我正在寻找原因,但 RapidMiner 似乎抑制了第 3 方 lib
我需要在 Java 中运行 RapidMiner 进程。就像这个链接中解释的那样:Integration of RapidMiner in Java application, import com.r
我需要将 fp-growth 关联规则从 RapidMiner 导出到 MySQL 数据库。该表包含以下列:premises、conclusion、support 和 confidence。 我应该使
我是一名优秀的程序员,十分优秀!