来自 Linux 终端的 Weka "select attributes"
Weka "select attributes" from Linux terminal
我有兴趣在系统中包含一些来自 Weka 的结果。我试图在 Rweka 和 python 中寻找类似的函数,但我不能,所以我认为 运行 从 Linux 终端中处理该过程可以解决我的问题。在“select 属性”面板中,我选择了:
属性评估器: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 的属性:
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]
为了确保正确加载所有包,您应该使用 weka.Run
class 来启动您的属性选择。这给了我们:
java -cp weka.jar weka.Run \
weka.attributeSelection.CfsSubsetEval \
-i /your/dataset.arff \
-c last \
-s "SEARCH_METHOD_CLASSNAME + OPTIONS" \
[other CfsSubsetEval options]
或者,在您的情况下:
java -cp weka.jar weka.Run \
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\"\""
...
我有兴趣在系统中包含一些来自 Weka 的结果。我试图在 Rweka 和 python 中寻找类似的函数,但我不能,所以我认为 运行 从 Linux 终端中处理该过程可以解决我的问题。在“select 属性”面板中,我选择了:
属性评估器: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 的属性:
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]
为了确保正确加载所有包,您应该使用 weka.Run
class 来启动您的属性选择。这给了我们:
java -cp weka.jar weka.Run \
weka.attributeSelection.CfsSubsetEval \
-i /your/dataset.arff \
-c last \
-s "SEARCH_METHOD_CLASSNAME + OPTIONS" \
[other CfsSubsetEval options]
或者,在您的情况下:
java -cp weka.jar weka.Run \
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\"\""
...