SVD không được sử dụng để chuẩn hóa dữ liệu, nhưng để loại bỏ dữ liệu dư thừa, tức là giảm kích thước. Ví dụ, nếu bạn có hai biến, một là chỉ số độ ẩm và một là xác suất mưa, thì tương quan của chúng quá cao, thứ hai không đóng góp bất kỳ thông tin bổ sung nào hữu ích cho nhiệm vụ phân loại hoặc hồi quy. Các giá trị riêng trong SVD giúp bạn xác định các biến nào mang tính thông tin nhất và những biến nào bạn có thể làm mà không có.
Cách hoạt động rất đơn giản. Bạn thực hiện SVD trên dữ liệu đào tạo của bạn (gọi nó là ma trận A), để có được U, S và V *. Sau đó, đặt thành 0 tất cả các giá trị của S nhỏ hơn ngưỡng tùy ý nhất định (ví dụ: 0,1), gọi ma trận mới này là S '. Sau đó lấy A '= US'V * và sử dụng A' làm dữ liệu đào tạo mới của bạn. Một số tính năng của bạn hiện được đặt thành 0 và có thể bị xóa, đôi khi không có bất kỳ hình phạt hiệu suất nào (tùy thuộc vào dữ liệu của bạn và ngưỡng được chọn). Điều này được gọi là k SVD rút gọn.
SVD không giúp bạn với sự khan hiếm, chỉ giúp bạn khi các tính năng dư thừa. Hai tính năng có thể vừa đủ vừa thông tin (có liên quan) cho một tác vụ dự đoán, do đó bạn không thể xóa một trong hai tính năng này.
Sử dụng SVD, bạn đi từ n tính năng để k tính năng, trong đó mỗi một sẽ là một sự kết hợp tuyến tính của các gốc n
. Đó là một bước giảm kích thước, giống như lựa chọn tính năng. Tuy nhiên, khi có các tính năng dự phòng, thuật toán lựa chọn tính năng có thể dẫn đến hiệu suất phân loại tốt hơn SVD tùy thuộc vào tập dữ liệu của bạn (ví dụ, lựa chọn tính năng entropy tối đa). Weka đi kèm với một bó của chúng.
Xem: http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Dimensionality_Reduction/Singular_Value_Decomposition
https://stats.stackexchange.com/questions/33142/what-happens-when-you-apply-svd-to-a-collaborative-filtering-problem-what-is-th
Bằng "hiệu suất", bạn có ý là tốc độ hoặc độ chính xác không? –
@larsmans Hi .. Tôi có nghĩa là chính xác – Fraz