Weka中是否有任何现有的Class可以将实例从名义转换为二进制,并具有以下输入和输出格式。

输入实例格式和数据

 |Fruits|Test|Price|
 ------------------------------
 |Apple |0   |5    |
 |Banana|1   |7    |
 |Orange|1   |4    |


输出实例格式和数据

 |Apple|Banana|Orange|Test|Price|
 ------------------------------
 | 1   |  0   | 0    |0   |5    |
 | 0   |  1   | 0    |1   |7    |
 | 0   |  0   | 1    |1   |4    |


否则我必须编写自己的代码。最简单的方法是什么?我猜想Weka中的NominalToBinary类不适合这种情况。

最佳答案

实际上,NominalToBinary过滤器正是执行此操作的过滤器:

Instances instances = null; // Your Instances object
NominalToBinary nominalToBinary = new NominalToBinary();
nominalToBinary.setInputFormat(instances);
String[] options = {"-R", "15"}; // the index(es) of the nominal feature(s)
nominalToBinary.setOptions(options);
Instances newInstances = Filter.useFilter(instances, nominalToBinary);

08-19 20:22