微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Rapidminer 中将 ArrayList 转换为 ExampleSet?

如何解决如何在 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 举报,一经查实,本站将立刻删除。