Chúng ta có nên áp dụng chuẩn hóa để kiểm tra dữ liệu không?


17

Tôi đang làm một dự án về vấn đề nhận dạng tác giả. Tôi đã áp dụng chuẩn hóa tf-idf để đào tạo dữ liệu và sau đó đào tạo một Svm về dữ liệu đó.

Bây giờ khi sử dụng trình phân loại tôi cũng nên bình thường hóa dữ liệu thử nghiệm. Tôi cảm thấy rằng mục đích cơ bản của chuẩn hóa là làm cho thuật toán học tập tăng thêm trọng lượng cho các tính năng quan trọng hơn trong khi học. Vì vậy, một khi nó đã được đào tạo, nó đã biết những tính năng nào quan trọng, cái nào không. Vì vậy, có cần phải áp dụng chuẩn hóa để kiểm tra dữ liệu không?

Tôi mới đến lĩnh vực này. Vì vậy, xin vui lòng bỏ qua nếu câu hỏi xuất hiện ngớ ngẩn?


4
Dữ liệu kiểm tra của bạn nên có cùng tỷ lệ với dữ liệu đào tạo của bạn.
Jon

Câu trả lời:


35

Có, bạn cần áp dụng chuẩn hóa để kiểm tra dữ liệu, nếu thuật toán của bạn hoạt động với hoặc cần dữ liệu đào tạo chuẩn hóa *.

Đó là bởi vì mô hình của bạn hoạt động trên biểu diễn được đưa ra bởi các vectơ đầu vào của nó. Quy mô của những con số đó là một phần của đại diện. Điều này hơi giống như chuyển đổi giữa feet và mét. . . một mô hình hoặc công thức sẽ hoạt động chỉ với một loại đơn vị.

Bạn không chỉ cần chuẩn hóa, mà bạn nên áp dụng tỷ lệ chính xác tương tự như đối với dữ liệu đào tạo của bạn. Điều đó có nghĩa là lưu trữ tỷ lệ và bù được sử dụng với dữ liệu đào tạo của bạn và sử dụng lại tỷ lệ đó. Một lỗi phổ biến cho người mới bắt đầu là bình thường hóa dữ liệu thử nghiệm và xe lửa của bạn.

Trong Python và SKLearn, bạn có thể bình thường hóa các giá trị đầu vào / X của mình bằng cách sử dụng Bộ mở rộng tiêu chuẩn như thế này:

scaler = StandardScaler()
train_X = scaler.fit_transform( train_X )
test_X = scaler.transform( test_X )

Lưu ý cách chuyển đổi train_Xsử dụng một chức năng phù hợp (tìm ra các thông số) sau đó bình thường hóa. Trong khitest_X chuyển đổi chỉ biến đổi, sử dụng cùng thông số mà nó đã học được từ dữ liệu xe lửa.

Chuẩn hóa tf-idf bạn đang áp dụng sẽ hoạt động tương tự, vì nó học một số tham số từ toàn bộ dữ liệu (tần suất của các từ trong tất cả các tài liệu), cũng như sử dụng các tỷ lệ được tìm thấy trong mỗi tài liệu.


* Một số thuật toán (chẳng hạn như các thuật toán dựa trên cây quyết định) không cần đầu vào chuẩn hóa và có thể đối phó với các tính năng có quy mô vốn có khác nhau.


+1 để giải thích rằng các tham số chuẩn hóa cho thử nghiệm phải giống với các tham số được xác định từ khóa đào tạo. Theo hiểu biết của tôi thì logic này cũng mở rộng cho bất kỳ bộ xác nhận nào.
Greenstick

@Greenstick: Có tất nhiên, nó mở rộng để xử lý tất cả dữ liệu được đưa vào mô hình. Bao gồm dữ liệu mới nếu một mô hình sẽ được sử dụng để suy luận trong sản xuất. Tôi nghĩ rằng câu trả lời là đủ dài mà không bao gồm tất cả những điều đó, và điểm bạn tách ra dữ liệu xác nhận thay đổi rất nhiều (nhiều mô hình được tích hợp sẵn trong bước đào tạo này), vì vậy không thể hiển thị ví dụ mã.
Neil Slater

2
Bạn có nên chia tỷ lệ (fit_transform) dữ liệu thử nghiệm VỚI dữ liệu đào tạo không? Hoặc làm riêng nó bằng cách sử dụng cùng một thang đo (scaler.transform)?
Bob Ebert

2
@BobEbert: Bạn có thể làm một trong hai. Về mặt kỹ thuật, bạn có thể bị rò rỉ một lượng nhỏ thông tin từ kiểm tra đến đào tạo, nếu bạn phù hợp với một bộ chia tỷ lệ cho tập dữ liệu kết hợp - vì vậy phiên bản "chính thức" có thể chỉ phù hợp với bộ chia tỷ lệ để đào tạo dữ liệu và áp dụng nó cho tất cả các thông tin khác bộ dữ liệu sau đó. Tuy nhiên, rò rỉ này là rất nhỏ và tôi chưa bao giờ thấy nó gây ra vấn đề trong thực tế nếu bạn lắp bộ chia tỷ lệ cho tất cả dữ liệu bạn có.
Neil Slater

6

Chắc chắn bạn nên bình thường hóa dữ liệu của bạn. Bạn bình thường hóa dữ liệu cho các mục tiêu sau:

  • Để có các tính năng khác nhau trong cùng một quy mô, đó là để tăng tốc quá trình học tập.

  • Đối với việc chăm sóc các tính năng khác nhau một cách công bằng mà không cần quan tâm đến quy mô.

Sau khi đào tạo, thuật toán học tập của bạn đã học cách xử lý dữ liệu ở dạng tỷ lệ, do đó bạn phải chuẩn hóa dữ liệu kiểm tra của mình với các tham số chuẩn hóa được sử dụng cho dữ liệu đào tạo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.