我有一个CSV文件,我正在导入Weka.所有变量都以数字形式导入.我需要将其中的3个改为名义上的.然而,当我在其上放置数字解释过滤器时 - 所有变量都会发生变化.我只想改变3.
1)有没有办法只通过过滤器更改一些2)或者你可以在导入过程中设置它.如果是这样,我也无法解决这个问题.
Wal*_*ter 15
我假设您正在使用Weka Explorer(GUI).要将过滤器应用于特定属性,请执行以下操作.
步骤1:在预处理选项卡中选择过滤器
步骤2:单击"选择"按钮右侧的框(打开一个新窗口)
步骤3:在attributeIndices框中输入您的自定义范围
如果在过滤器窗口中选择"更多"按钮,您将获得不同选项和可提供的值的说明.
在您的特定情况下,默认情况下,过滤器应用于第一个到最后一个属性.您应该更改范围以反映您的个人需求.
====编辑====
如果您使用的是Java API,以下代码将指向正确的方向.
import weka.core.Instances;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.NumericToNominal;
public class Main {
public static void main(String[] args) throws Exception
{
//load training instances
Instances originalTrain= //...load data with numeric attributes
NumericToNominal convert= new NumericToNominal();
String[] options= new String[2];
options[0]="-R";
options[1]="1-2"; //range of variables to make numeric
convert.setOptions(options);
convert.setInputFormat(originalTrain);
Instances newData=Filter.useFilter(originalTrain, convert);
System.out.println("Before");
for(int i=0; i<2; i=i+1)
{
System.out.println("Nominal? "+originalTrain.attribute(i).isNominal());
}
System.out.println("After");
for(int i=0; i<2; i=i+1)
{
System.out.println("Nominal? "+newData.attribute(i).isNominal());
}
}
} Run Code Online (Sandbox Code Playgroud)
小智 7
首先打开arff文件.在过滤器下单击"选择".在过滤树下,导航到无人监督并搜索"NumerictoNomial".单击一次,然后按应用.保存文件并重新加载.注意:确保已选中要更改的所需字段的复选框.
| 归档时间: |
|
| 查看次数: |
30258 次 |
| 最近记录: |