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

Weka 从 Linux 终端“选择属性”

如何解决Weka 从 Linux 终端“选择属性”

我有兴趣在系统中包含一些来自 Weka 的结果。我试图在 Rweka 和 python 中寻找类似的函数,但我做不到,所以我认为从 Linux 终端运行该进程可以解决我的问题。在“选择属性”面板中,我选择了:

属性评估器:CfsSubsetEval -P 1 -E 1 搜索方法:MultiObjectiveEvolutionarySearch -generations 20 -population-size 100 -seed 1 -algorithm 0 -report-frequency 20 -log-file /home/aurorax/Git_repos/postdoc/QoI/to_submit/weka-3-8-5

当我运行它时,它显示以下“代码”:

=== Run information ===

Evaluator:    weka.attributeSelection.CfsSubsetEval -P 1 -E 1
Search:       weka.attributeSelection.MultiObjectiveEvolutionarySearch -generations 20 -population-size 100 -seed 1 -algorithm 0 -report-frequency 20 -log-file /home/aurorax/Git_repos/postdoc/QoI/to_submit/weka-3-8-5
Relation:     metricsAndRMSE1-weka.filters.unsupervised.instance.RemoveDuplicates
Instances:    293
Attributes:   12
              qcomp
              qpla
              qout
              qoutMean
              qoutMedian
              qprob
              qrec
              qinvMean
              qinvMedian
              qBMEmean
              qBMEmedian
              rmse1
Evaluation mode:    evaluate on all training dat

最后,它显示了我感兴趣的内容,即应该选择哪些属性

Selected attributes: 1,3,11 : 3
                     qcomp
                     qout
                     qBMEmedian

你能给我一些指导吗?我已经检查了一些文档,但找不到执行此操作的方法

非常感谢!

解决方法

是的,您可以从命令行运行评估器,但不常用。

您可以像这样查询评估者的帮助,例如CfsSubsetEval

java -cp weka.jar weka.attributeSelection.CfsSubsetEval -h

输出分为常规选项和特定于CfsSubsetEval的选项。一般的有:

General options:

-h
    display this help
-i <name of input file>
    Sets training file.
-c <class index>
    Sets the class index for supervised attribute
    selection. Default=last column.
-s <class name>
    Sets search method for subset evaluators.
-x <number of folds>
    Perform a cross validation.
-n <random number seed>
    Use in conjunction with -x.

假设您的数据集位于 /your/dataset.arff 并且 class 属性是 last 之一,您会得到以下内容:

java -cp weka.jar weka.attributeSelection.CfsSubsetEval \
  -i /your/dataset.arff \
  -c last \
  -s "SEARCH_METHOD_CLASSNAME + OPTIONS" \
  [other CfsSubsetEval options]

或者,就您而言:

java -cp weka.jar weka.attributeSelection.CfsSubsetEval \
  -i /your/dataset.arff \
  -c last \
  -s "weka.attributeSelection.MultiObjectiveEvolutionarySearch -generations 20 -population-size 100 -seed 1 -algorithm 0 -report-frequency 20 -log-file /home/aurorax/Git_repos/postdoc/QoI/to_submit/weka-3-8-5" \
  -P 1 -E 1

最后一点:注意正确转义双引号和反斜杠。如果您的搜索方法命令行应包含它们(不是您发布的情况),您需要使用反斜杠将它们转义。

例如:

weka.attributeSelection.FunkySearch -b "some option \"with nested bits\""

将作为命令行的一部分更改为:

...
-s "weka.attributeSelection.FunkySearch -b \"some option \\"with nested bits\\"\""
...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。