2012-04-06 30 views
17

Tôi đã tạo tập dữ liệu chứa +/- 13000 hàng có +/- 50 đối tượng địa lý. Tôi biết cách xuất kết quả phân loại: dự đoán và thực tế, nhưng tôi muốn có thể xuất ra một số loại ID với các kết quả đó. Vì vậy, tôi đã thêm một cột ID vào tập dữ liệu của tôi nhưng tôi không biết làm thế nào bỏ qua ID khi phân loại trong khi vẫn có thể xuất ID với mọi kết quả dự đoán. Tôi biết cách chọn các tính năng để xuất với mọi dự đoán.Bỏ qua đối tượng địa lý khi phân loại, nhưng hiển thị đối tượng địa lý ở đầu ra

Trả lời

11

Sử dụng Bộ lọc phân loại. Xem thisthis.

+3

Là một bộ lọc, sử dụng 'weka.filters. unsupervised.attribute.Remove' – drevicko

2

Hãy nói rằng follwoing là các thuộc tính trong bbcsport.arff mà bạn muốn loại bỏ và đang trong một dòng tập tin attributes.txt bởi dòng ..

serena
phục vụ
dịch vụ
bộ
nổi bật
quần vợt
tiebreak
giải đấu
wimbledon
..
Dưới đây là cách bạn có thể bao gồm hoặc loại trừ các thuộc tính bằng cách đặt đúng hoặc sai. (Đôi bên cùng khó nắm bắt) remove.setInvertSelection (sai)

BufferedReader datafile = new BufferedReader(new FileReader("bbcsport.arff")); 
BufferedReader attrfile = new BufferedReader(new FileReader("attributes.txt")); 

Instances data = new Instances(datafile); 
List<Integer> myList = new ArrayList<Integer>(); 
String line; 

while ((line = attrfile.readLine()) != null) { 
    for (n = 0; n < data.numAttributes(); n++) { 
    if (data.attribute(n).name().equalsIgnoreCase(line)) { 
     if(!myList.contains(n)) 
     myList.add(n); 
    } 
    } 
} 

int[] attrs = myList.stream().mapToInt(i -> i).toArray(); 
Remove remove = new Remove(); 
remove.setAttributeIndicesArray(attrs); 
remove.setInvertSelection(false); 
remove.setInputFormat(data); // init filter 

Instances filtered = Filter.useFilter(data, remove); 

'lọc' có các thuộc tính cuối cùng ..

Blog của tôi .. http://ojaslabs.com/include-exclude-attributes-in-weka

Các vấn đề liên quan