2016-10-29 8 views
0

私はcsvファイルに対して線形回帰を実装しようとしています。ここにはcsvファイルの内容があります。weka.core.UnassignedClassException:クラスインデックスが負(設定されていません)です!

X1; X2; X3; X4; X5; X6; X7; X8; Y1; Y2;

0.98; 514.50; 294.00; 110.25; 7.00; 2; 0.00; 0; 15.55; 21.33; 0.98; 514.50; 294.00; 110.25; 7.00; 3; 0.00; 0; 15.55; 21.33; 0.98; 514.50; 294.00; 110.25; 7.00; 4; 0.00; 0; 15.55; 21.33; 0.98; 514.50; 294.00; 110.25; 7.00; 5; 0.00; 0; 15.55; 21.33; 0.90; 563.50; 318.50; 122.50; 7.00; 2; 0.00; 0; 20.84; 28.28; 0.90; 563.50; 318.50; 122.50; 7.00; 3; 0.00; 0; 21.46; 25.38; 0.90; 563.50; 318.50; 122.50; 7.00; 4; 0.00; 0; 20.71; 25.16; 0.90; 563.50; 318.50; 122.50; 7.00; 5; 0.00; 0; 19.68; 29.60; 0.86; 588.00; 294.00; 147.00; 7.00; 2; 0.00; 0; 19.50; 27.30; 0.86; 588.00; 294.00; 147.00; 7.00; 3; 0.00; 0; 19.95; 21.97; 0.86; 588.00; 294.00; 147.00; 7.00; 4; 0.00; 0; 19.34; 23.49; 0.86; 588.00; 294.00; 147.00; 7.00; 5; 0.00; 0; 18.31; 27.87; 0.82; 612.50; 318.50; 147.00; 7.00; 2; 0.00; 0; 17.05; 23.77;

...

0.71; 710.50; 269.50; 220.50; 3.50; 2; 0.40; 5; 12.43; 15.59; 0.71; 710.50; 269.50; 220.50; 3.50; 3; 0.40; 5; 12.63; 14.58; 0.71; 710.50; 269.50; 220.50; 3.50; 4; 0.40; 5; 12.76; 15.33; 0.71; 710.50; 269.50; 220.50; 3.50; 5; 0.40; 5; 12.42; 15.31; 0.69; 735.00; 294.00; 220.50; 3.50; 2; 0.40; 5; 14.12; 16.63; 0.69; 735.00; 294.00; 220.50; 3.50; 3; 0.40; 5; 14.28; 15.87; 0.69; 735.00; 294.00; 220.50; 3.50; 4; 0.40; 5; 14.37; 16.54; 0.69; 735.00; 294.00; 220.50; 3.50; 5; 0.40; 5; 14.21; 16.74; 0.66; 759.50; 318.50; 220.50; 3.50; 2; 0.40; 5; 14.96; 17.64; 0.66; 759.50; 318.50; 220.50; 3.50; 3; 0.40; 5; 14.92; 17.79; 0.66; 759.50; 318.50; 220.50; 3.50; 4; 0.40; 5; 14.92; 17.55; 0.66; 759.50; 318.50; 220.50; 3.50; 5; 0.40; 5; 15.16; 18.06; 0.64; 784.00; 343.00; 220.50; 3.50; 2; 0.40; 5; 17.69; 20.82; 0.64; 784.00; 343.00; 220.50; 3.50; 3; 0.40; 5; 18.19; 20.21; 0.64; 784.00; 343.00; 220.50; 3.50; 4; 0.40; 5; 18.16; 20.71; 0.64; 784.00; 343.00; 220.50; 3.50; 5; 0.40; 5; 17.88; 21.40; 0.62; 808.50; 367.50; 220.50; 3.50; 2; 0.40; 5; 16.54; 16.88; 0.62; 808.50; 367.50; 220.50; 3.50; 3; 0.40; 5; 16.44; 17.11; 0.62; 808.50; 367.50; 220.50; 3.50; 4; 0.40; 5; 16.48; 16.61; 0.62; 808.50; 367.50; 220.50; 3.50; 5; 0.40; 5; 16.64; 16.03;

このcsvファイルを読み、線形回帰の実装を実装しました。ここでは、Javaのソースコードである:私はエラーを取得しています

public static void main(String[] args) throws IOException 
    { 


     String csvFile = null;  
     CSVLoader loader = null;   
     Remove remove =null;   
     Instances data =null;   
     LinearRegression model = null; 
     int numberofFeatures = 0; 

     try 
     { 

      csvFile = "C:\\Users\\Taha\\Desktop/ENB2012_data.csv";   
      loader = new CSVLoader(); 


      // load CSV  
      loader.setSource(new File(csvFile)); 
      data = loader.getDataSet(); 
      //System.out.println(data); 
      numberofFeatures = data.numAttributes(); 

      System.out.println("number of features: " + numberofFeatures); 

      data.setClassIndex(data.numAttributes() - 2); 

      //remove last attribute Y2 
      remove = new Remove();   
      remove.setOptions(new String[]{"-R", data.numAttributes()+""}); 
      remove.setInputFormat(data); 

      data = Filter.useFilter(data, remove); 

      // data.setClassIndex(data.numAttributes() - 2); 

      model = new LinearRegression(); 
      model.buildClassifier(data); 
      System.out.println(model); 

     } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
     } 

は、weka.core.UnassignedClassException:クラスインデックスが(設定されていない)負であります!model.buildClassifier(data);機能の数は1ですが、9になると予想されます。X1; X2; X3; X4; X5; X6; X7; X8; Y1; Y2何が欠けていますか? ありがとうございます。

+1

コードはOKです。 csvファイルに問題がある可能性があります。値の間にカンマを使用するか、csvをarffに変換しようとします。 – xro7

答えて

3

あなたは、ラインdata=loader.getDataSet()後に例外を解決します次の行を追加することができます。これは私のために働いた

if (data.classIndex() == -1) { 
     System.out.println("reset index..."); 
     instances.setClassIndex(data.numAttributes() - 1); 
    } 

を。

0

私はこの問題の解決策を見つけることができないため、データをOracleデータベースに配置することに決め、Oracleからデータを読み込みました。 Oracle Sql Developerにインポートユーティリティがあり、私はそれを使用しました。それは私の問題を解決します。私は同じ問題を抱えている人々のためにこの記事を書いています。 次は、weka用のOracleデータベースの接続に関する詳細情報です。

http://tahasozgen.blogspot.com.tr/2016/10/connection-to-oracle-database-in-weka.html

関連する問題