2016-10-07 3 views
2
package test; 

import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 
import weka.core.Instance; 
import weka.core.Instances; 
import weka.core.converters.ArffLoader.ArffReader; 

public class main { 

    public static void main(String[] args) { 
     String s = null; 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(
       new FileReader(
        "C:\\Program Files\\Weka-3-8\\data\\weather.numeric.arff" 
       ) 
      ); 
     } catch (FileNotFoundException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     ArffReader arff = null; 
     try { 
      arff = new ArffReader(reader); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     Instances data = arff.getData(); 
     data.setClassIndex(data.numAttributes() - 1); 
     System.out.println("The number of attributes is : " +data.numAttributes()); 
     for(int i= 0; i< data.numAttributes(); i++){ 
      if(data.attribute(i).isNominal()){ 
       s = data.attribute(i).name().toString(); 
       System.out.println(
        "the " + s + " attribute is nominal and takes " 
        + data.attribute(i).numValues() + " values" 
       ); 
      } 
     } 
    } 
} 

上記のコードでは、各属性について、値の数を表示していますが、値を表示したいのですが(Strings )それはかかります 私はファイルに取り組んでいますweather.numeric.arff。ここ は、ファイルの説明です:私は各属性値のインスタンスの数をwekaで表示したいjava

@relation weather 

@attribute outlook {sunny, overcast, rainy} 
@attribute temperature numeric 
@attribute humidity numeric 
@attribute windy {TRUE, FALSE} 
@attribute play {yes, no} 

@data 
sunny,85,85,FALSE,no 
sunny,80,90,TRUE,no 
overcast,83,86,FALSE,yes 
rainy,70,96,FALSE,yes 
rainy,68,80,FALSE,yes 
rainy,65,70,TRUE,no 
overcast,64,65,TRUE,yes 
sunny,72,95,FALSE,no 
sunny,69,70,FALSE,yes 
rainy,75,80,FALSE,yes 
sunny,75,70,TRUE,yes 
overcast,72,90,TRUE,yes 
overcast,81,75,FALSE,yes 
rainy,71,91,TRUE,no 
+0

あなたの出力を投稿することができますか? – xro7

+0

属性の数は次のとおりです。5. outlook属性は名目値で、3つの値をとります。 windy属性は公称値であり、2つの値をとります。再生属性は公称値であり、2つの値をとる。 – Midou

答えて

1

あなたはこれを使用して、公称の属性の文字列値を印刷することができます:attributeNoは属性の数であるとpositionはの位置を示す整数であるdata.attribute(attributeNo).value(position)

.arffファイルに定義されている公称値。

例えば data.attribute(0).value(0)属性の見通し、晴れの公称値は

関連する問題