ใช่คุณต้องใช้การปรับสภาพให้เป็นมาตรฐานเพื่อทดสอบข้อมูลหากอัลกอริทึมของคุณทำงานกับหรือต้องการข้อมูลการฝึกอบรมที่ได้มาตรฐาน *
นั่นเป็นเพราะแบบจำลองของคุณทำงานบนการแทนค่าที่กำหนดโดยเวกเตอร์อินพุตของมัน มาตราส่วนของตัวเลขเหล่านั้นเป็นส่วนหนึ่งของการแทนค่า มันเหมือนกับการแปลงระหว่างฟุตและเมตร . . รูปแบบหรือสูตรจะทำงานกับหน่วยประเภทเดียวโดยปกติ
ไม่เพียง แต่คุณต้องการการทำให้เป็นมาตรฐาน แต่คุณควรใช้การปรับขนาดเดียวกันกับข้อมูลการฝึกอบรมของคุณ นั่นหมายถึงการจัดเก็บเครื่องชั่งและการชดเชยที่ใช้กับข้อมูลการฝึกอบรมของคุณและการใช้งานนั้นอีกครั้ง ข้อผิดพลาดทั่วไปของผู้เริ่มต้นคือการทำให้ข้อมูลรถไฟและการทดสอบของคุณเป็นมาตรฐาน
ใน Python และ SKLearn คุณอาจทำให้ค่าอินพุต / X ของคุณเป็นปกติโดยใช้Standard Scalerดังนี้:
scaler = StandardScaler()
train_X = scaler.fit_transform( train_X )
test_X = scaler.transform( test_X )
โปรดสังเกตว่าการแปลงของการtrain_X
ใช้ฟังก์ชั่นที่เหมาะกับ (ตัวเลข params) แล้วปกติ ในขณะที่การtest_X
แปลงเพิ่งแปลงใช้ params เดียวกับที่ได้เรียนรู้จากข้อมูลรถไฟ
การนอร์มัลไลซ์ tf-idf ที่คุณใช้ควรทำงานในทำนองเดียวกันเนื่องจากมันเรียนรู้พารามิเตอร์บางอย่างจากชุดข้อมูลโดยรวม (ความถี่ของคำในเอกสารทั้งหมด) รวมถึงการใช้อัตราส่วนที่พบในแต่ละเอกสาร
* อัลกอริทึมบางอย่าง (เช่นที่ยึดตามต้นไม้การตัดสินใจ) ไม่จำเป็นต้องใช้อินพุตปกติและสามารถรับมือกับคุณลักษณะที่มีสเกลตามธรรมชาติแตกต่างกัน