我正在使用Weka来训练分类器。但是,问题是我的特征空间非常大,并且使用Weka创建Instance
非常慢。我认为我的代码效率很低,而且可能有更好的方法来使用Weka。
以下是测试用例的代码示例(尝试运行它并查看速度有多慢):
int numb_features = 20000;
FastVector features = new FastVector(numb_features + 1);
List<String> plainFeatures = new ArrayList<String>();
for ( Integer i = 0; i < numb_features; i++ ) {
features.addElement( new Attribute(i.toString()) );
plainFeatures.add(i.toString());
}
Instances data = new Instances("", features, 100);
int number_of_samples = 10;
for ( int i = 0; i < number_of_samples; i++ ) {
System.out.println( "Adding a sample!" );
Instance instance = new Instance( numb_features );
Attribute att;
for ( String feature : plainFeatures ) {
att = data.attribute(feature);
instance.setValue(att, 0);
}
Instance sparseInstance = new SparseInstance(instance);
sparseInstance.setDataset(data);
}
我的问题:
我使用Weka导致创建实例的速度有什么问题?以及如何改进它?