Analizuję algorytm k-średnich za pomocą Mahouta. Mam zamiar przeprowadzić kilka testów, obserwować wydajność i robić statystyki z uzyskanymi wynikami.Mahout: CSV do wektora i działający program
Nie mogę znaleźć sposobu na uruchomienie własnego programu w ramach Mahout. Jednak interfejs linii poleceń może wystarczyć.
Aby uruchomić program przykładowy zrobić
$ mahout seqdirectory --input uscensus --output uscensus-seq
$ mahout seq2sparse -i uscensus-seq -o uscensus-vec
$ mahout kmeans -i reuters-vec/tfidf-vectors -o uscensus-kmeans-clusters -c uscensus-kmeans-centroids -dm org.apache.mahout.common.distance.CosineDistanceMeasure -x 5 -ow -cl -k 25
Zbiór danych jest jeden duży plik CSV. Każda linia jest rekordem. Funkcje są oddzielone przecinkami. Pierwsze pole to identyfikator. Z powodu formatu wejściowego nie mogę od razu używać seqdirectory. Próbuję zaimplementować odpowiedź na to pytanie How to perform k-means clustering in mahout with vector data stored as CSV? podobny ale nadal mam 2 pytania:
- Jak przekonwertować z CSV do SeqFile? Domyślam się, że mogę napisać własny program używając Mahouta, aby dokonać tej konwersji, a następnie użyć jej wyjścia jako wejścia dla seq2parse. Chyba mogę użyć CSVIterator (https://cwiki.apache.org/confluence/display/MAHOUT/File+Format+Integrations). Jakiej klasy należy używać do czytania i pisania?
- Jak zbudować i uruchomić nowy program? Nie mogłem tego rozgryźć z książką Mahout w akcji lub z innymi pytaniami tutaj.