กำหนดละติจูดและลองจิจูดให้กับแบบจำลองราคาบ้าน

Aug 15 2020

ฉันเพิ่งเริ่มใช้แมชชีนเลิร์นนิงและฉันกำลังพยายามทำความเข้าใจว่าคุณเพิ่มประสิทธิภาพข้อมูลสำหรับโมเดลอย่างไร ฉันติดตามบทช่วยสอน Kaggle อย่างเป็นทางการซึ่งสอนพื้นฐานของการเรียนรู้ของเครื่องผ่านการทำนายราคาบ้าน พวกเขาใช้แผนผังการตัดสินใจ แต่ฉันพบว่ามันแปลกซึ่งคุณสมบัติที่พวกเขาป้อนเข้าไปในแบบจำลองเพื่อทำนายราคาของบ้าน:

house_price_features = ['Rooms', 'Bathroom', 'Landsize', 'Latitude', 'Longitude']

ห้องห้องน้ำและขนาดพื้นที่ทั้งหมดมีความหมายสำหรับฉัน - แต่ละติจูดและลองจิจูด? เห็นได้ชัดว่ามีความสัมพันธ์ระหว่างสถานที่และราคา แต่จะไม่เป็นไปตามเส้นโค้งที่ดี บางครั้งการขึ้นบล็อกจะทำให้ราคาบ้านเพิ่มขึ้นสองเท่า บางครั้งมันจะไม่มีผลเลย โดยสัญชาตญาณฉันรู้สึกว่าโมเดลทั้งหมดสามารถทำได้ด้วยคุณสมบัติเหล่านั้นในการทำนายราคานั้นเกินพอดี ดังนั้นคำถามของฉันจึงเป็นสองเท่า:

  1. พวกเขาถูกต้องหรือไม่ในการให้ละติจูดและลองจิจูดของโมเดลนี้ในการทำนายราคาหรือข้อมูลที่ไม่เกี่ยวข้องนี้สามารถทำร้ายโมเดลได้เท่านั้น ทำไม?
  2. หากคำตอบข้างต้นคือ "ไม่" จะมีการเปลี่ยนแปลงข้อมูลละติจูดและลองจิจูด (เช่นเป็นรหัสย่าน) ที่จะทำให้ข้อมูลมีประโยชน์มากขึ้นหรือไม่

คำตอบ

9 MichaelM Aug 15 2020 at 23:56

คำตอบคือใช่เพราะสถานที่ตั้งมักเป็นตัวขับเคลื่อนราคาบ้านต่อตารางฟุต การลดลงจะทำให้ประสิทธิภาพของโมเดลลดลงอย่างมาก

ตาม lat / lon วิธีการแบบต้นไม้แบ่งแผนที่เป็นชิ้นสี่เหลี่ยม ยิ่งเอฟเฟกต์แรงขึ้นและข้อมูลในบางพื้นที่ก็จะยิ่งมีขนาดเล็กลง ในพื้นที่ที่มีความหนาแน่นน้อยชิ้นส่วนจะไม่เล็กเกินไป

คุณจะไม่เพิ่มมันเป็นเอฟเฟกต์เชิงเส้นในการถดถอยเชิงเส้น คุณจะต้องพิจารณาแนวทางต่างๆ วิธีง่ายๆก็คือการแทน lat / lon แต่ละอันด้วยลูกบาศก์ spline และเพิ่มเงื่อนไขการโต้ตอบระหว่างกัน