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