Czy jest jakiś pakiet do załadowania pliku formatu .arff do Matlaba? Format .arff jest używany w Weka do uruchamiania algorytmu uczenia maszynowego.jak załadować plik w formacie .arff do matlab
Odpowiedz
Tak, istnieje kilka interfejsów MATLAB dla plików WEKA na MATLAB File Exchange, zwykle używam tego: http://www.mathworks.com/matlabcentral/fileexchange/21204-matlab-weka-interface, gdzie masz funkcje saveARFF() i loadARFF().
ujawnia pewne możliwości. W szczególności wyniki z Durga Lal Shrestha i Gerald Augusto Corzo Perez wyglądają obiecująco, chociaż nie próbowałem.
Od Weka is a Java library można bezpośrednio użyć API to naraża odczytać pliki ARFF:
%## paths
WEKA_HOME = 'C:\Program Files\Weka-3-7';
javaaddpath([WEKA_HOME '\weka.jar']);
fName = [WEKA_HOME '\data\iris.arff'];
%## read file
loader = weka.core.converters.ArffLoader();
loader.setFile(java.io.File(fName));
D = loader.getDataSet();
D.setClassIndex(D.numAttributes()-1);
%## dataset
relationName = char(D.relationName);
numAttr = D.numAttributes;
numInst = D.numInstances;
%## attributes
%# attribute names
attributeNames = arrayfun(@(k) char(D.attribute(k).name), 0:numAttr-1, 'Uni',false);
%# attribute types
types = {'numeric' 'nominal' 'string' 'date' 'relational'};
attributeTypes = arrayfun(@(k) D.attribute(k-1).type, 1:numAttr);
attributeTypes = types(attributeTypes+1);
%# nominal attribute values
nominalValues = cell(numAttr,1);
for i=1:numAttr
if strcmpi(attributeTypes{i},'nominal')
nominalValues{i} = arrayfun(@(k) char(D.attribute(i-1).value(k-1)), 1:D.attribute(i-1).numValues, 'Uni',false);
end
end
%## instances
data = zeros(numInst,numAttr);
for i=1:numAttr
data(:,i) = D.attributeToDoubleArray(i-1);
end
%## visualize data
parallelcoords(data(:,1:end-1), ...
'Group',nominalValues{end}(data(:,end)+1), ...
'Labels',attributeNames(1:end-1))
title(relationName)
nawet bezpośrednio można użyć jego funkcjonalności z MATLAB. Przykład:
%## classification
classifier = weka.classifiers.trees.J48();
classifier.buildClassifier(D);
fprintf('Classifier: %s %s\n%s', ...
char(classifier.getClass().getName()), ...
char(weka.core.Utils.joinOptions(classifier.getOptions())), ...
char(classifier.toString()))
Drzewo decyzyjne C4.5 wyjściowa:
Classifier: weka.classifiers.trees.J48 -C 0.25 -M 2
J48 pruned tree
------------------
petalwidth <= 0.6: Iris-setosa (50.0)
petalwidth > 0.6
| petalwidth <= 1.7
| | petallength <= 4.9: Iris-versicolor (48.0/1.0)
| | petallength > 4.9
| | | petalwidth <= 1.5: Iris-virginica (3.0)
| | | petalwidth > 1.5: Iris-versicolor (3.0/1.0)
| petalwidth > 1.7: Iris-virginica (46.0/1.0)
Number of Leaves : 5
Size of the tree : 9
Jeśli chcesz tylko załadować plik zapisany w formacie „arff” w Matlab, i nie potrzebują żadnych innych funkcji od Weka, po prostu usuń część nagłówkową pliku "arff" (te definicje atrybutów) i zapisz plik w formacie csv (powinieneś zastąpić wartości klas odpowiednikami numerycznymi), a następnie użyj wbudowanej funkcji "csvread" z Matlab. W ten sposób nie ma potrzeby szukania paczki trzeciej.
M = importdata('filename.arff');
bardzo powolne dla dużych plików, ale działa (testowane w Matlab 2010b)
Trudno w to uwierzyć, ponieważ dokumentacja matlab http://www.mathworks.com/help/matlab/import_export/supported-file-formats.html nie wywołuje arff. O ile matlab 'importdata' nie zrzuci wszystkich informacji nagłówka/atrybutu? – John
Jeżeli metody wymienione powyżej nie działają, i jest wymagany nagłówek, załaduj plik arff w WEKA, a następnie wybierz zapisz jako opcję i zapisz dane, używając formatu pliku csv.
Po prostu usuń wszystkie wiersze z "@" na początku arff, a następnie zapisz w formacie .txt, po tym wszystkim, co musisz zrobić, to przeciągnąć go do obszaru roboczego lub nawet zaimportować. to działa dla mnie za każdym razem Pozdrawiam
- 1. Jak odczytać plik .arff z R?
- 2. ARFF do przetwarzania języka naturalnego
- 3. Jak załadować lokalny plik html do Jsoup?
- 4. Jak załadować plik scala do konsoli sbt?
- 5. Jak mogę załadować plik PHP do zmiennej?
- 6. Jak załadować plik przeceny do komponentu reagowania?
- 7. Jak ponownie załadować plik QML do QQuickView
- 8. Jak nagrać plik audio w formacie .mp3?
- 9. Jak mogę załadować duże pliki (~ 150 MB) w MATLAB?
- 10. SVN - Jak załadować pojedynczy plik?
- 11. Wyświetl plik w formacie binarnym
- 12. Jak napisać plik tekstowy w formacie JavaScript
- 13. Jak wstępnie załadować plik konfiguracyjny w angular2
- 14. W Matlab, jak odczytać plik pikla python?
- 15. Jak załadować plik w odniesieniu do ścieżki modułu?
- 16. Jak załadować i wyświetlić obraz PNG w MATLAB?
- 17. . Pliki .arff z scikit-learn?
- 18. plik danych matlab do pand DataFrame
- 19. MATLAB: wydrukuj rysunek w formacie PDF jako rysunek pokazany w MATLAB
- 20. Jak odświeżyć/załadować ponownie plik aplikacji/pdf?
- 21. Ruby: Jak załadować plik do interaktywnej konsoli ruby (IRB)?
- 22. Jak załadować plik javascript do DOM przy użyciu selenu?
- 23. jak załadować plik schematu do Cassandra z cqlsh
- 24. Jak załadować plik javascript lub css do szablonu BottlePy?
- 25. Gradle: Jak załadować niestandardowy plik JAR do repozytorium Maven
- 26. Jak załadować plik mysql dump do bazy danych hsqldb?
- 27. Jak ponownie załadować/odświeżyć plik app.config?
- 28. Symfony2: Jak załadować plik bez Doctrine?
- 29. Napisz plik w formacie hdf z Javą
- 30. Plik w formacie schematu XML: pain.008.002.02
wszelkie przykłady na temat sposobu użycia? –
Po rozpakowaniu plików wymiany plików do katalogu roboczego można użyć metody loadARFF w następujący sposób: data = loadARFF ("myfile.arf"). –
Wystąpił błąd, ale sprawdzę ponownie. Rozpakowałem go i dodałem folder z podfolderami na ścieżce, klikając przycisk "ustaw ścieżkę". Czy to jest poprawne? Czy muszę zrobić cokolwiek innego, aby zaimportować zestaw narzędzi? –