首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将weka属性分解为特定的时间间隔

将weka属性分解为特定的时间间隔
EN

Stack Overflow用户
提问于 2022-05-23 02:19:27
回答 1查看 161关注 0票数 0

我需要在weka中对一个列进行离散化。列名为“年龄”。它有数字属性。例如2-90之间的值。

我需要根据特定的值范围执行离散化过程,以便基于以下类别离散年龄属性。

青年: 15 -<=25,成人:>25-<=64,Senior:>64

这怎么可能在Weka?

我如何标注和调整间隔?

EN

回答 1

Stack Overflow用户

发布于 2022-05-23 23:11:50

无论是监督还是无监督版本的消散过滤器都不允许您这样做。

但是,您可以通过使用MultiFilter构建过滤器链来实现这个目标。

  1. 使用MathExpression使用嵌套ifelse表达式应用手动绑定策略。将ignoreRange设置为要转换的属性,并选择invertSelection。由于expression使用的是:ifelse(A<=25,0,ifelse(A<=64,1,2)) (25或更低将转换为0,64或更低将转换为1,其余将转换为2)。
  2. 使用NumericToNominal将生成的bin值转换为标称标签。定义要在attributeIndices中转换的属性。
  3. 最后,将数字标签0,1,2重命名为使用RenameNominalValues的更有意义的标签。指定要在selectedAttributes中更新的属性,并使用0:Youth,1:Adult,2:Senior作为valueReplacements

下面的MultiFilter设置以这种方式在dataset中转换第7个属性(只需通过右键单击菜单将其复制并粘贴到Weka中即可):

代码语言:javascript
复制
weka.filters.MultiFilter -F "weka.filters.unsupervised.attribute.MathExpression -E ifelse(A<=25,0,ifelse(A<=64,1,2)) -V -R 7" -F "weka.filters.unsupervised.attribute.NumericToNominal -R 7" -F "weka.filters.unsupervised.attribute.RenameNominalValues -R 7 -N 0:Youth,1:Adult,2:Senior" -S 1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72342649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档