เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Cross-validation กับ pipeline โมเดลพยากรณ์ระยะเวลาเที่ยวบิน

โมเดลที่ผ่าน cross-validation ที่สร้างไปก่อนหน้านี้ยังเรียบง่าย โดยใช้เพียง km เพื่อพยากรณ์ duration

อีกหนึ่งตัวแปรที่สำคัญต่อระยะเวลาของเที่ยวบินคือสนามบินต้นทาง เนื่องจากเที่ยวบินจากสนามบินที่มีผู้ใช้งานหนาแน่นมักใช้เวลานานกว่าในการขึ้นบิน มาดูกันว่าการเพิ่มตัวแปรนี้จะช่วยให้โมเดลดีขึ้นหรือไม่

ในแบบฝึกหัดนี้จะเพิ่มฟิลด์ org เข้าไปในโมเดล แต่เนื่องจาก org เป็นข้อมูลเชิงหมวดหมู่ จึงต้องผ่านขั้นตอนเพิ่มเติมก่อนนำไปใช้งาน ได้แก่ การแปลงเป็น index และการทำ one-hot encoding จากนั้นจึงนำไปรวมกับ km เพื่อสร้างโมเดล regression เราจะรวบรวมขั้นตอนเหล่านี้ไว้ใน pipeline

ออบเจ็กต์ต่อไปนี้ถูกสร้างไว้แล้ว:

  • params — parameter grid เปล่า
  • evaluator — regression evaluator
  • regression — ออบเจ็กต์ LinearRegression ที่กำหนด labelCol='duration'

คลาส StringIndexer, OneHotEncoder, VectorAssembler และ CrossValidator ถูก import ไว้เรียบร้อยแล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง string indexer โดยระบุฟิลด์ input และ output เป็น org และ org_idx
  • สร้าง one-hot encoder โดยตั้งชื่อฟิลด์ output ว่า org_dummy
  • รวมฟิลด์ km และ org_dummy เข้าด้วยกันเป็นฟิลด์เดียวชื่อ features
  • สร้าง pipeline โดยใช้ขั้นตอนต่อไปนี้: string indexer, one-hot encoder, assembler และ linear regression จากนั้นนำ pipeline นี้ไปสร้าง cross-validator

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create an indexer for the org field
indexer = ____(____, ____)

# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)

# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)

# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
          estimatorParamMaps=____,
          evaluator=____)
แก้ไขและรันโค้ด