คำอธิบายดังต่อไปนี้จะขึ้นอยู่กับfit_transform
การImputer
เรียน แต่ความคิดที่จะเหมือนกันสำหรับfit_transform
การเรียน scikit_learn อื่น ๆ MinMaxScaler
เช่น
transform
แทนที่ค่าที่หายไปด้วยตัวเลข โดยค่าเริ่มต้นตัวเลขนี้เป็นวิธีการของคอลัมน์ของข้อมูลบางอย่างที่คุณเลือก ลองพิจารณาตัวอย่างต่อไปนี้:
imp = Imputer()
# calculating the means
imp.fit([[1, 3], [np.nan, 2], [8, 5.5]])
ตอนนี้อิมพุทเตอร์ได้เรียนรู้การใช้ค่าเฉลี่ย (1 + 8) / 2 = 4.5 สำหรับคอลัมน์แรกและค่าเฉลี่ย (2 + 3 + 5.5) / 3 = 3.5 สำหรับคอลัมน์ที่สองเมื่อนำไปใช้กับข้อมูลสองคอลัมน์:
X = [[np.nan, 11],
[4, np.nan],
[8, 2],
[np.nan, 1]]
print(imp.transform(X))
เราได้รับ
[[4.5, 11],
[4, 3.5],
[8, 2],
[4.5, 1]]
ดังนั้นโดยfit
อิมเทอร์เตอร์คำนวณหาค่าของคอลัมน์จากข้อมูลบางส่วนและtransform
ใช้ค่าเหล่านั้นกับข้อมูลบางอย่าง (ซึ่งเป็นเพียงการแทนที่ค่าที่หายไปด้วยค่าเฉลี่ย) หากข้อมูลทั้งสองนี้จะเหมือนกัน (เช่นข้อมูลสำหรับการคำนวณวิธีการและข้อมูลที่หมายถึงการจะนำไปใช้) คุณสามารถใช้fit_transform
ซึ่งเป็นพื้นตามด้วยfit
transform
ตอนนี้คำถามของคุณ:
ทำไมเราต้องแปลงข้อมูล
"สำหรับเหตุผลต่างๆหลายชุดข้อมูลโลกแห่งความจริงมีค่าที่ขาดหายไปมักจะเข้ารหัสเป็นช่องว่างแก่นแก้วหรือตัวยึดตำแหน่งอื่น ๆ . ชุดข้อมูลดังกล่าว แต่ไม่เข้ากันกับ scikit เรียนรู้ประมาณซึ่งสมมติว่าค่าทั้งหมดในอาร์เรย์มีตัวเลข" ( แหล่งที่มา )
แบบจำลองการฟิตข้อมูลการฝึกอบรมและการแปลงเป็นข้อมูลการทดสอบหมายความว่าอย่างไร
fit
ของ imputer มีอะไรจะทำอย่างไรกับการfit
ใช้ในรูปแบบที่เหมาะสม ดังนั้นการใช้ imputer fit
ในข้อมูลการฝึกอบรมเพียงคำนวณค่าเฉลี่ยของแต่ละคอลัมน์ของข้อมูลการฝึกอบรม การใช้transform
ข้อมูลการทดสอบแล้วแทนที่ค่าที่ขาดหายไปของข้อมูลการทดสอบด้วยวิธีการที่คำนวณจากข้อมูลการฝึกอบรม