问题描述
我正在尝试计算 .arff
文件中特定属性的实例数。虽然,我似乎只能从它出现的数据中选择属性而不是值。
在本例中,我尝试选择 Wins 在数据中出现的次数,但是,代码仅选择属性中的值 Wins
。
这是我正在使用的:
//create the class to load the data
package weka;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
public class DatasetLoading {
public static Instances loadData(String location) {
try {
return DataSource.read(location);
}
catch (Exception e) {
System.err.println("Failed to load data from: " + location);
e.printstacktrace();
return null;
}
}
public static void main(String[] args) {
String dataLocation = "C:/Users/Emil/Downloads/Week 1/Arsenal_TRAIN1.arff";
Instances train = loadData(dataLocation);
System.out.println(train);
}
}
//select for counts of values that appear in the data
public class test_learning {
public static void main(String[] args) throws Exception {
String arff = "C:/Users/Emil/Downloads/Week 1/Arsenal_TRAIN1.arff";
Instances data = DatasetLoading.loadData(arff);
System.out.print("Num of Wins = " + data.attribute(2).value(2));
预期:
数据文件示例:
@relation Arsenal-weka.filters.unsupervised.attribute.Remove-R3
@attribute Leno {0,1}
@attribute Tierney {0,1}
@attribute class {Loss,Draw,Win}
@data
1,Loss
1,Loss
0,1,Draw
1,Draw
0,Win
0,Win
1,Win
解决方法
您可以使用 Instances.attributeStats(int)
方法 (Javadoc) 获取第三个属性 ({{ 3}}).