ฉันกำลังสร้างเวิร์กโฟลว์สำหรับการสร้างแบบจำลองการเรียนรู้ของเครื่อง (ในกรณีของฉันโดยใช้ Python pandas
และsklearn
แพ็คเกจ) จากข้อมูลที่ดึงมาจากฐานข้อมูลขนาดใหญ่มาก (ที่นี่ Vertica ด้วยวิธี SQL และpyodbc
) และขั้นตอนสำคัญในกระบวนการนั้น ค่าของผู้ทำนาย สิ่งนี้ตรงไปตรงมาในแพลตฟอร์มการวิเคราะห์หรือสถิติเดียวไม่ว่าจะเป็น Python, R, Stata และอื่น ๆ --- แต่ฉันอยากรู้ว่าจะหาขั้นตอนนี้ได้ดีที่สุดในเวิร์กโฟลว์แบบหลายแพลตฟอร์มได้อย่างไร
มันง่ายพอที่จะทำสิ่งนี้ใน Python ไม่ว่าจะเป็นsklearn.preprocessing.Imputer
คลาสใช้pandas.DataFrame.fillna
วิธีการหรือด้วยมือ (ขึ้นอยู่กับความซับซ้อนของวิธีการใส่ความคิดที่ใช้) แต่เนื่องจากฉันจะใช้คอลัมน์นี้หลายสิบหรือหลายร้อยคอลัมน์ในหลายร้อยล้านระเบียนฉันสงสัยว่ามีวิธีที่มีประสิทธิภาพมากกว่าในการทำสิ่งนี้โดยตรงผ่าน SQL ล่วงหน้าหรือไม่ นอกเหนือจากประสิทธิภาพที่เป็นไปได้ของการทำเช่นนี้ในแพลตฟอร์มแบบกระจายเช่น Vertica สิ่งนี้จะมีประโยชน์เพิ่มเติมที่ช่วยให้เราสามารถสร้างไปป์ไลน์อัตโนมัติสำหรับการสร้างตารางเวอร์ชัน "สมบูรณ์" ดังนั้นเราจึงไม่จำเป็นต้องกรอกชุดใหม่ ของค่าที่หายไปตั้งแต่เริ่มต้นทุกครั้งที่เราต้องการเรียกใช้แบบจำลอง
ฉันไม่สามารถหาคำแนะนำมากมายเกี่ยวกับสิ่งนี้ แต่ฉันคิดว่าเราจะทำได้:
- สร้างตารางค่าทดแทน (เช่นค่าเฉลี่ย / มัธยฐาน / โหมดโดยรวมหรือตามกลุ่ม) สำหรับแต่ละคอลัมน์ที่ไม่สมบูรณ์
- เข้าร่วมตารางค่าทดแทนกับตารางเดิมเพื่อกำหนดค่าทดแทนสำหรับแต่ละแถวและคอลัมน์ที่ไม่สมบูรณ์
- ใช้ชุดคำสั่ง case เพื่อรับค่าดั้งเดิมหากมีและค่าทดแทนเป็นอย่างอื่น
สิ่งนี้เป็นสิ่งที่สมเหตุสมผลที่ต้องทำใน Vertica / SQL หรือมีเหตุผลที่ดีที่จะไม่รบกวนและเพียงจัดการกับ Python แทน? และถ้าหลังมีกรณีที่แข็งแกร่งสำหรับการทำเช่นนี้ในหมีแพนด้ามากกว่า sklearn หรือกลับกัน? ขอบคุณ!