Một thực tiễn tốt phổ biến trong Machine Learning là thực hiện tính năng chuẩn hóa hoặc chuẩn hóa dữ liệu của các biến dự đoán, đó là, tập trung vào dữ liệu trừ giá trị trung bình và chuẩn hóa nó chia cho phương sai (hoặc độ lệch chuẩn). Để tự ngăn chặn và theo sự hiểu biết của tôi, chúng tôi làm điều này để đạt được hai điều chính:
- Tránh trọng lượng mô hình nhỏ thêm cho mục đích ổn định số.
- Đảm bảo sự hội tụ nhanh chóng của các thuật toán tối ưu hóa, ví dụ như Conjugate Gradient sao cho độ lớn của một kích thước dự đoán sẽ không dẫn đến sự hội tụ chậm.
Chúng tôi thường chia dữ liệu thành các bộ đào tạo, xác nhận và thử nghiệm. Trong tài liệu chúng ta thường thấy rằng để thực hiện tính năng chuẩn hóa, chúng lấy giá trị trung bình và phương sai (hoặc độ lệch chuẩn) trên toàn bộ tập hợp các biến dự đoán. Lỗ hổng lớn tôi thấy ở đây là nếu bạn làm điều đó, trên thực tế bạn đang giới thiệu thông tin trong tương lai vào các biến dự đoán đào tạo, cụ thể là thông tin tương lai chứa trong giá trị trung bình và phương sai.
Do đó, tôi thực hiện tính năng chuẩn hóa trên dữ liệu huấn luyện và lưu giá trị trung bình và phương sai. Sau đó, tôi áp dụng chuẩn hóa tính năng cho các biến dự đoán của các bộ dữ liệu kiểm tra và xác thực bằng cách sử dụng giá trị trung bình và phương sai huấn luyện. Có bất kỳ sai sót cơ bản với điều này? bất cứ ai có thể đề nghị một sự thay thế tốt hơn?