Có gói nào để tải tệp định dạng .arff vào MATLAB không? Định dạng .arff được sử dụng trong Weka để chạy thuật toán học máy.cách tải tệp định dạng .arff vào MATLAB
Trả lời
Có, có một vài giao diện MATLAB cho các tệp WEKA trên Trao đổi tệp MATLAB, tôi thường sử dụng tệp này: http://www.mathworks.com/matlabcentral/fileexchange/21204-matlab-weka-interface nơi bạn có hàm saveARFF() và loadARFF().
Searching the MATLAB Central File Exchange cho thấy một số khả năng. Đặc biệt, các kết quả từ Durga Lal Shrestha và Gerald Augusto Corzo Perez trông đầy hứa hẹn, mặc dù tôi chưa thử.
Kể từ Weka is a Java library, bạn có thể trực tiếp sử dụng API nó cho thấy để đọc file 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)
Bạn thậm chí có thể trực tiếp sử dụng chức năng của nó từ MATLAB. Một ví dụ:
%## 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()))
Cây ra quyết định C4.5:
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
Nếu bạn chỉ muốn tải một tập tin được lưu trữ ở định dạng "arff" vào Matlab, và không cần bất kỳ chức năng khác từ Weka, chỉ cần xóa phần tiêu đề của tệp "arff" (định nghĩa thuộc tính) và lưu tệp dưới dạng định dạng csv (bạn nên thay thế giá trị lớp bằng số tương đương) và sau đó sử dụng hàm "csvread" được tích hợp sẵn của Matlab. Bằng cách này, không cần phải tìm gói bên thứ ba.
M = importdata('filename.arff');
rất chậm cho các tập tin lớn, nhưng nó hoạt động (thử nghiệm trong MATLAB 2010b)
Điều này khó tin, vì tài liệu về MATLAB là http://www.mathworks.com/help/matlab/import_export/supported-file-formats.html không gọi ra arff. Trừ khi 'importdata' của MATLAB kết xuất tất cả thông tin tiêu đề/thuộc tính? – John
Nếu các phương pháp nêu trên không làm việc, và thông tin tiêu đề là cần thiết, tải các tập tin arff trong WEKA, sau đó chọn lưu dưới dạng tùy chọn và lưu dữ liệu bằng định dạng tệp csv.
Chỉ cần xóa tất cả các dòng bằng "@" khi bắt đầu arff, sau đó lưu nó ở định dạng .txt, sau tất cả những gì bạn phải làm là kéo nó vào không gian làm việc hoặc thậm chí nhập nó. nó hoạt động cho tôi mỗi khi cổ vũ
- 1. luồng truyền tải & định dạng tệp mpeg
- 2. Tải lên tệp csv có định dạng cố định
- 3. MATLAB m-file giúp định dạng
- 4. cách thêm mục vào mảng định dạng tệp json
- 5. Tải node.js để đọc tệp ở định dạng html
- 6. Tải tệp .rtf vào RichTextBox và duy trì/duy trì định dạng
- 7. Tải tệp jquery dạng tệp lên
- 8. Cách nhập tệp hình dạng vào MySQL
- 9. Định dạng tệp thêu?
- 10. Định dạng tệp SVGZ
- 11. ARFF để xử lý ngôn ngữ tự nhiên
- 12. Tệp WebClient.UploadFile tải lên tệp tải lên dưới dạng dòng
- 13. Vẽ và lưu dưới dạng Tệp trong MATLAB
- 14. Định dạng tệp không định dạng của Fortran
- 15. Lưu hình ảnh vào nhiều định dạng tệp khác nhau
- 16. Định dạng Đường dẫn Tệp
- 17. Tải lên tệp jQuery - cách nhận dạng khi tất cả các tệp đã tải lên
- 18. Làm thế nào để xác định định dạng tập tin đầu vào khi tải dữ liệu vào Hive
- 19. Vim autocmd (lưu tệp, chạy mã định dạng, tải lại tệp)
- 20. Cách hiệu quả nhất để tải các tệp nhị phân đã định dạng bằng Python
- 21. Định dạng tệp UML chuẩn
- 22. Nhúng Python vào MATLAB
- 23. Định dạng tệp MIDI XG
- 24. Cách thay đổi định dạng tệp nhật ký lỗi MySQL
- 25. Có thể tải tên trang tính Excel vào MATLAB bằng cách sử dụng 'xlsread' không?
- 26. Định dạng tệp cấu hình
- 27. Gửi tệp đã tải lên dưới dạng tệp đính kèm
- 28. Cách tải một tệp văn bản vào bảng Hive được lưu trữ dưới dạng các tệp trình tự
- 29. Triển khai Matlab: thêm tệp vào kiểm soát nguồn?
- 30. Làm cách nào để định dạng và thêm tệp vào hadoop sau khi nó bị lỗi?
bất kỳ ví dụ nào về cách sử dụng nó? –
Nếu bạn giải nén các tập tin fileexchange vào thư mục làm việc của bạn, bạn có thể sử dụng loadARFF theo cách này: data = loadARFF ('myfile.arf'). –
Tôi gặp lỗi nhưng tôi sẽ kiểm tra lại. Tôi đã giải nén nó và thêm thư mục với các thư mục con trong đường dẫn, bằng cách nhấn vào nút "set path". Nó có đúng không? Tôi có phải làm gì khác để nhập bộ công cụ không? –