2012-10-20 4 views
5

Mam plik CSV pobrany z http://yann.lecun.com/exdb/mnist/index.html. Muszę przekonwertować go do formatu pliku arff.Konwersja Weka CSV na Arff: IllegalArgumentException: nazwy atrybutów nie są unikalne

Próbowałem uruchomiony

java weka.core.converters.CSVLoader /home/saket/Documents/Assignment/NIST7000 > /home/saket/Documents/Myfile.arff 

ale to daje następujący błąd

java.lang.IllegalArgumentException: Attribute names are not unique! Causes: '0' '0' '0' '0' '0' '0' '0' 

Potem próbowałem za pomocą http://weka.wikispaces.com/Converting+CSV+to+ARFF kod Java. Wciąż przyszedł ten sam błąd.

Czy ktoś mógłby sugerować, co robię źle

Odpowiedz

5

Nie było pola nagłówka w pliku CSV. Stworzyłem więc skrypt i dodałem kolumnę0, kolumnę1, ..., klasę w pierwszym wierszu pliku Csv. Następnie otworzyłem wygenerowany plik csv w Weka.

+0

Powinieneś być w stanie używać plików CSV bez nagłówka za pomocą opcji '-H', np.' Loader.setOptions (new String [] {"-H"}); ' –

+0

Nowa wersja również wydaje się mieć'. loader.setNoHeaderRowPresent (true) '... –

2

Napotkano ten sam wyjątek, ale z innego powodu. Użyłem "class" jako nazwy atrybutu, ale to słowo pojawiło się również w moich danych jako ciąg znaków (po @ datach), a Weka nie poprawnie rozdzieliła atrybut i dane. Rozwiązano, po prostu zmieniając nazwę atrybutu "klasa" na coś innego, jak "s_label".