感谢这位作者,我找了一下午终于找到如何Ignore了
如何去除不需要参与建模的属性
code
package weka.test;
import java.io.File;
import weka.clusterers.SimpleKMeans;
import weka.core.DistanceFunction;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.Remove;
public class SimpleKmeansTest {
public static void main(String[] args){
Instances ins = null;
SimpleKMeans KM = null;
DistanceFunction disFun = null;
try {
// 读入样本数据
File file = new File("data/feature.arff");
ArffLoader loader = new ArffLoader();
loader.setFile(file);
ins = loader.getDataSet();
Remove remove=new Remove();
remove.setOptions(new String[]{"-R","1,2,3,7,8"});
remove.setInputFormat(ins); //设置remove使用的数据格式,如果不设置会报 No input instance format define 的错误
ins = Filter.useFilter(ins, remove);
// 初始化聚类器 (加载算法)
KM = new SimpleKMeans();
KM.setNumClusters(3); //设置聚类要得到的类别数量
KM.buildClusterer(ins); //开始进行聚类
System.out.println(KM.preserveInstancesOrderTipText());
// 打印聚类结果
System.out.println(KM.toString());
} catch(Exception e) {
e.printStackTrace();
}
}
}