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);