为什么Replace操作符只接受标称值?

Christos_KarapapasChristos_Karapapas 成员职位:25因素二世
2019年11月编辑 帮助
我要做的一般概念是,我已经训练了一个模型,现在我想把它应用到一个例子上。

我的原始数据集有太多的属性,所以我想,为了不手工编写所有这些值,只是在训练期间存储其中的一部分,然后通过范围1-1检索和过滤以获得单个示例。

然后替换它的一些属性的值,看看预测结果。

因此,当我使用Replace操作符替换一个标称属性的值时,一切正常。

但是,当我用它来代替一个整数属性的值,我得到以下错误“错误的值类型属性的值类型整数,应该是标称”。

是否有一种方法可以避免将非标称属性的类型更改为标称,只是为了执行替换操作,然后将它们更改回原始类型?

我正在尝试的工作是在替换之前从数值转换为多项式,然后在替换之后从标称转换为数值,对于那些特定的属性。然而,这在Apply模型期间给了我一个错误,即“输入的ExampleSet不匹配训练的ExampleSet”。不适应环境的属性:myIntegerAttribute”。

最佳答案

答案

  • sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
    @chris_skg好吧,我想我明白你的意思了。所以Replace只适用于名义/多名义属性的原因是,用另一个数字替换一个数字通常不会有很多数学意义。如果属性是标签/目标,那么您就遇到了回归问题。如果它不是标签/目标,那么模型将毫无问题地使用这些值。

    因此,我想说的是,如果你真的想减少一个数值属性中唯一值的数量,更典型的方法是使用分组。在操作面板的清洗->分类文件夹中查看“离散”操作符的整个系列。

    这有帮助吗?

    斯科特

  • Christos_KarapapasChristos_Karapapas 成员职位:25因素二世
    我不确定我百分之百地理解了,我需要研究这个方法,然后才能告诉你它对这个特殊情况是否有用。

    因此,如果我理解正确的话,我将使用其中一个离散操作符将属性的非标称值转换为标称值的特定范围,以便进行替换。但是,在替换之后,我不会再次绊倒同样的错误“输入ExampleSet不匹配训练ExampleSet。不适应环境的属性……”?
登录注册置评。