如何解决如何在 Rapidminer 中将 ArrayList 转换为 ExampleSet?
我正在使用 java 创建一个 rapidminer 扩展。我有一个 Example 类型的元素数组,我需要将它转换为 ExampleSet 类型的数据集。
rapidminer 的 ExampleSet 定义如下所示:
-> context.Configuration.ProxyCreationEnabled = false;
using (var context = new BDPuntoDeVenta())
{
context.Configuration.ProxyCreationEnabled = false;
return context.FacturaDetalle.Where(x => x.ID_Factura == _ID_Factura && x.Devuelto != true).ToList();
}
我需要从数据集中选择某些元素并将其发送回,仍然作为 ExampleSet,但是转换不起作用,我不能简单地创建新的 ExampleSet 对象,因为它是一个接口。
public interface ExampleSet extends ResultObject,Cloneable,Iterable<Example>
解决方法
您需要的不仅仅是简单的显式转换。
在 RapidMiner 中,ExampleSet
不仅仅是 Example
的集合。它包含更复杂的信息和逻辑。
因此,您需要另一种方法来处理 ExampleSet
。就像你已经说过的,它只是界面,它引导我们选择正确的子类型。
对于初学者来说,(自:7.3 起)只需使用 ExampleSets
类的方法之一。
您还需要定义此 Attribute
将具有的每个 ExampleSet
,即列。
下面,我用一个名为 First
的Attribute
创建了一个
Attribute attributeFirst = AttributeFactory.createAttribute("First",Ontology.POLYNOMINAL);
ExampleSetBuilder builder = ExampleSets.from(attributeFirst);
builder.addDataRow(example.getDataRow());
ExampleSet result = builder.build();
您还可以使用更通用的方式获取属性:
Attribute[] attributes = example.getAttributes().createRegularAttributeArray();
ExampleSetBuilder builder = ExampleSets.from(attributes);
...
如果您有很多情况需要创建或更改 ExampleSet,我鼓励您编写自己的 ExampleSetBuilder
,因为原始实现有很多缺点。
您也可以尝试搜索其他扩展程序,这些扩展程序可能已经满足您的要求,而且您不需要创建自己的扩展程序(相信我,这不是无痛人流)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。