Tôi hiện đang sử dụng phiên bản MATLAB của máy vector hỗ trợ LIBSVM để phân loại dữ liệu của mình. Tài liệu LIBSVM đề cập đến việc mở rộng quy mô trước khi áp dụng SVM là rất quan trọng và chúng ta phải sử dụng cùng một phương pháp để mở rộng cả dữ liệu đào tạo và thử nghiệm.mở rộng dữ liệu thử nghiệm cho LIBSVM: Triển khai MATLAB
"Cùng một phương pháp chia tỷ lệ" được giải thích là: Ví dụ: giả sử chúng tôi chia tỷ lệ thuộc tính đầu tiên của dữ liệu đào tạo từ [-10, +10]
thành [-1, +1]
. Nếu thuộc tính đầu tiên của dữ liệu thử nghiệm nằm trong khoảng [-11, +8]
, chúng ta phải mở rộng các dữ liệu thử nghiệm để [-1.1, +0.8]
Scaling dữ liệu huấn luyện trong khoảng [0,1]
thể được thực hiện bằng cách sử dụng mã MATLAB sau:
(data - repmat(min(data,[],1),size(data,1),1))*spdiags(1./(max(data,[],1)-min(data,[],1))',0,size(data,2),size(data,2))
Nhưng tôi không biết làm thế nào để mở rộng dữ liệu thử nghiệm một cách chính xác.
Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn.
câu hỏi của tôi là nếu đào tạo dữ liệu trong phạm vi [a, b] được chuẩn hóa theo phạm vi [0,1], dữ liệu thử nghiệm trong phạm vi [c, d] được chuẩn hóa theo phạm vi nào? – Lily