Ya, Anda perlu menerapkan normalisasi untuk menguji data, jika algoritme Anda berfungsi atau membutuhkan data pelatihan yang dinormalisasi *.
Itu karena model Anda bekerja pada representasi yang diberikan oleh vektor inputnya. Skala angka-angka itu adalah bagian dari representasi. Ini agak seperti mengkonversi antara kaki dan meter. . . suatu model atau formula akan bekerja hanya dengan satu jenis unit secara normal.
Anda tidak hanya membutuhkan normalisasi, tetapi Anda harus menerapkan penskalaan yang sama persis seperti untuk data pelatihan Anda. Itu berarti menyimpan skala dan offset yang digunakan dengan data pelatihan Anda, dan menggunakannya lagi. Kesalahan pemula yang umum adalah menormalkan data kereta dan tes Anda secara terpisah.
Dalam Python dan SKLearn, Anda dapat menormalkan nilai input / X Anda menggunakan Standard Scaler seperti ini:
scaler = StandardScaler()
train_X = scaler.fit_transform( train_X )
test_X = scaler.transform( test_X )
Perhatikan bagaimana konversi train_X
menggunakan fungsi yang sesuai (mencari tahu params) kemudian menjadi normal. Sementara test_X
konversi hanya bertransformasi, menggunakan param yang sama yang dipelajari dari data kereta.
Normalisasi tf-idf yang Anda terapkan harus bekerja dengan cara yang sama, karena mempelajari beberapa parameter dari kumpulan data secara keseluruhan (frekuensi kata dalam semua dokumen), serta menggunakan rasio yang ditemukan di setiap dokumen.
* Beberapa algoritma (seperti yang didasarkan pada pohon keputusan) tidak memerlukan input yang dinormalisasi, dan dapat mengatasi fitur yang memiliki skala inheren yang berbeda.