หน่วย
1. ความรู้เบื้องต้นเกี่ยวกับปัญญาประดิษฐ์และวินัยในการตรวจสอบในสาขาวิศวกรรมยานยนต์ 2. รองรับการออกแบบและจำลองยานพาหนะ: CAE, CFD และ FEA 3. ADAS และการขับขี่อัตโนมัติ: การตรวจจับความรู้พื้นฐาน 4. การควบคุมคุณภาพสายการผลิต: การตรวจจับข้อบกพร่องทางสายตา 5. การบำรุงรักษาเชิงคาดการณ์และการตรวจวัดระยะไกลของยานพาหนะ 6. การวิเคราะห์ข้อมูลการทดสอบและการตรวจสอบความถูกต้อง 7. การเลือกใช้วัสดุและการลดน้ำหนัก 8. การวิเคราะห์ห่วงโซ่อุปทาน อุปสงค์ และสินค้าคงคลัง 9. การวิเคราะห์ข้อมูลยานยนต์ด้วย Python: จากต้นทางถึงปลายทาง 10. ความปลอดภัยในการทำงาน, SOTIF, จริยธรรมและความเป็นส่วนตัว 11. การบูรณาการแบบ end-to-end, MLOps และความรับผิดชอบของวิศวกร
หน่วย 9 / 11

การวิเคราะห์ข้อมูลยานยนต์ด้วย Python: จากต้นทางถึงปลายทาง

กำไร:

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

ในหน่วยก่อนหน้านี้ เราใช้ปัญญาประดิษฐ์เหมือน "ที่ปรึกษา" ในหน่วยนี้ เราจะก้าวไปอีกขั้นและสร้างขั้นตอนการทำงานที่วิเคราะห์ข้อมูลยานยนต์ด้วยมือของเราเองโดยใช้ Python เป้าหมายไม่ใช่เพื่อให้คุณเป็นนักพัฒนาซอฟต์แวร์ มันคือการสร้างวิศวกรที่สามารถเข้าใจและตรวจสอบรหัสนั้นทีละบรรทัดในขณะที่รับความช่วยเหลือด้านโค้ดจาก AI เนื่องจากโค้ดที่สร้างโดย AI อาจผิดพลาดได้ เช่นเดียวกับข้อความที่สร้างโดย AI อาจทำให้ปริมาตรสับสน ข้อมูลรั่ว จัดกึ่งกลางคอลัมน์ผิด การเรียกใช้โค้ดโดยไม่เข้าใจก็เหมือนกับการเผยแพร่รายงานที่ไม่ได้ลงนาม

หลาม ทำไม? เนื่องจากเป็นมาตรฐานในการวิเคราะห์ข้อมูลโดยพฤตินัย คุณสามารถประมวลผลข้อมูลการวัดและส่งข้อมูลทางไกล การทดสอบ และข้อมูลการผลิตด้วย pandas (ข้อมูลแบบตาราง), numpy (การประมวลผลเชิงตัวเลข), matplotlib (plot) และไลบรารี scikit-learn (การเรียนรู้ของเครื่อง)

หกขั้นตอนในการวิเคราะห์ที่สามารถทำซ้ำได้

การวิเคราะห์ที่ชัดเจนจะเป็นไปตามกรอบการทำงานเดียวกันเสมอ:

  1. โหลด: อ่านข้อมูลจากไฟล์
  2. ตรวจสอบ: มิติ คอลัมน์ ประเภทข้อมูล ค่าที่ขาดหายไป
  3. สะอาด: หายไป/ผิดปกติ หน่วย การแก้ไขการประทับเวลา
  4. คุณสมบัติการแยก: รับตัวแปรที่มีความหมาย
  5. การวิเคราะห์/แบบจำลอง: สถิติ การแสดงภาพ หรือแบบจำลอง
  6. ตรวจสอบและรายงาน: การจัดหาผลลัพธ์ การตรวจสอบปริมาตร/การรั่วไหล การบันทึก
เคล็ดลับ: เมื่อขอโค้ดจาก AI ให้พูดว่า “แสดงความคิดเห็นว่าคุณกำลังทำอะไรในแต่ละขั้นตอนและเขียนสมมติฐานของคุณ” ดังนั้นคุณสามารถตรวจสอบรหัสในขณะที่คุณอ่านได้

ตัวอย่างทีละขั้นตอน: การวิเคราะห์การวัดและส่งข้อมูลทางไกล

รหัสต่อไปนี้โหลดบันทึก CAN/มาตรและทำการตรวจสอบขั้นพื้นฐาน (หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณเข้าใจโค้ดก่อนใช้งาน ชื่อคอลัมน์จะแตกต่างกันไปขึ้นอยู่กับข้อมูลของคุณ)

นำเข้าแพนด้าเป็น pd# 1) โหลด: CSV แบบกึ่งจุด, คอลัมน์แรก timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # จำนวนแถว, จำนวนคอลัมน์ print(df.dtypes) # ประเภทของแต่ละคอลัมน์ (ตัวเลขหรือข้อความ)print(df.isna().sum()) # จำนวนค่าที่หายไป ต่อ columnprint(df.describe()) # สถิติสรุป: ต่ำสุด, สูงสุด, เฉลี่ย

เอาต์พุต คำอธิบาย() เป็นโอกาสแรกของคุณในการตรวจสอบ: หากค่าความเร็วสูงสุดของเครื่องยนต์คือ 45,000 รอบต่อนาที (เครื่องยนต์โดยสารทั่วไป ~ 7,000 รอบต่อนาที) มีความผิดปกติของยูนิตหรือเซ็นเซอร์

คำสั่ง pandas ที่ใช้บ่อยที่สุดในขั้นตอนการตรวจสอบและทำหน้าที่:

คำสั่ง

ทำอะไร

มันยืนยันอะไร?

df.รูปร่าง

จำนวนแถว/คอลัมน์

มันเป็นขนาดที่คาดหวังใช่ไหม?

df.dtypes

ประเภทคอลัมน์

คอลัมน์ตัวเลขกลายเป็นข้อความหรือไม่?

df.isna().sum()

การนับมูลค่าที่ขาดหายไป

มีพื้นที่เท่าไร?

df.อธิบาย()

ต่ำสุด/สูงสุด/เฉลี่ย

มันสมเหตุสมผลทางร่างกายหรือเปล่า?

df.ซ้ำ().ผลรวม()

แถวที่ซ้ำกัน

มีการลงทะเบียนคู่หรือไม่?

# 3) ชัดเจน: ทำเครื่องหมายค่าที่เป็นไปไม่ได้ทางกายภาพ

ข้อควรระวัง: อย่าลบค่าผิดปกติทันที ก่อนอื่นให้เข้าใจว่าทำไมมันถึงผิดปกติ เป็นเหตุการณ์จริง (ความร้อนกะทันหัน) หรือเซ็นเซอร์ทำงานผิดปกติหรือไม่ การลบแบบสุ่มสี่สุ่มห้าอาจซ่อนความผิดที่แท้จริงได้

# 4) คุณสมบัติการแยก: อัตราการเพิ่มขึ้นของอุณหภูมิ (อนุพันธ์) df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) การแสดงภาพอย่างง่ายนำเข้า matplotlib.pyplot เป็น pltplt.plot(df["เวลา"], df["motor_sic"])plt.xlabel("เวลา"); plt.ylabel("อุณหภูมิเครื่องยนต์ (C)")plt.title("หลักสูตรอุณหภูมิเครื่องยนต์")plt.show()

ป้องกันข้อมูลรั่วไหลใน Python

ข้อผิดพลาดที่อันตรายที่สุดในการสร้างแบบจำลองการทำนายคือข้อมูลรั่วไหล (หน่วยที่ 5): เมื่อแบบจำลองเห็นข้อมูลที่ไม่สามารถทราบได้ในขณะที่คาดการณ์ กฎทองเพื่อหลีกเลี่ยงสิ่งนี้ในอนุกรมเวลา: ฝึกฝนกับอดีต ทดสอบกับอนาคต — ไม่มีการสับเปลี่ยนแบบสุ่ม

จาก sklearn.model_selection นำเข้า train_test_split# FALSE: การแยกอนุกรมเวลาแบบสุ่มจะรั่วไหลในอนาคต# df[df["time"] > เกณฑ์] # อนาคต 20% สุดท้าย

ข้อควรระวัง: train_test_split สับเปลี่ยนข้อมูลตามค่าเริ่มต้น (shuffle=True) ในอนุกรมเวลา สิ่งนี้สร้างความสับสนให้กับอนาคตด้วยการศึกษา และทำให้เกิดคะแนนสูงผิดๆ หาก AI ได้ทำสิ่งนี้ในโค้ดที่สร้างขึ้น อย่าลืมแก้ไขด้วย

ความสม่ำเสมอของหน่วย: นักฆ่าเงียบ

ข้อผิดพลาดที่ร้ายกาจที่สุดในยานยนต์คือข้อผิดพลาดของหน่วย: km/h ถึง m/s, Nm ถึง lb-ft, bar เป็น kPa, °C ถึง K การเก็บพจนานุกรมว่าหน่วยของแต่ละคอลัมน์อยู่ในการวิเคราะห์และจดบันทึกการแปลงไว้อย่างชัดเจนสามารถช่วยชีวิตผู้คนได้

# บันทึกหน่วยอย่างชัดเจน = {"speed": "km/h", "motor_sic": "C", "pressure": "bar"}# การแปลงอย่างชัดเจนหากจำเป็น (km/h -> m/s)df["speed_ms"] = df["speed"] / 3.6

กรณีศึกษาขนาดเล็ก

กรณีที่ 1 - ตรวจพบข้อผิดพลาดด้วย description() นักวิเคราะห์รันโค้ดจาก AI และทำการประมาณช่วง ผลลัพธ์ที่ได้ก็สูงอย่างไร้เหตุผล เมื่อเราดูที่เอาท์พุต คำอธิบาย() เราจะเห็นว่าความจุของแบตเตอรี่ถูกป้อนเป็น Wh ในบางบรรทัด และป้อนเป็น kWh ในบางบรรทัด (ต่างกัน 1,000 เท่า) เมื่อนำยูนิตไปเป็นแบบยูนิฟอร์ม ผลลัพธ์ก็จะดีขึ้น สรุป: สถิติสรุปง่ายๆ ป้องกันการคาดการณ์ที่ไม่ถูกต้อง

กรณีที่ 2 - กับดักความสับสน แบบจำลองการสึกหรอของเบรกของผู้ฝึกงานมีความแม่นยำ 98% ในชุดทดสอบ เมื่อตรวจสอบโค้ดแล้ว จะเห็นได้ว่า train_test_split(shuffle=True) และอนุกรมเวลาผสมกัน ซึ่งหมายความว่าคะแนนในอนาคตจะรั่วไหลเข้าสู่การฝึก เมื่อหารด้วยเวลาความแม่นยำจะลดลงเหลือ 80% แต่ตอนนี้มันสมจริงแล้ว สรุป: เพียงเพราะโค้ด AI ทำงานมันไม่ถูกต้อง มนุษย์จับรอยรั่วได้

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

เทมเพลตพร้อมท์

เทมเพลต 1 - รหัสคำขอ (พร้อมคำอธิบาย):

บทบาท: คุณเป็นที่ปรึกษานักวิเคราะห์ข้อมูล Python งาน: เขียนโค้ดที่โหลดและตรวจสอบ CSV การวัดและส่งข้อมูลทางไกล บริบท: คอลัมน์: เวลา, ความเร็ว (กม./ชม.), engine_sic (C), การปฏิวัติ (rpm) ข้อจำกัด: แสดงความคิดเห็นในแต่ละแถว อธิบายว่าเช็คใดที่ถูกสร้างขึ้นและเพราะเหตุใด เพิ่มการตรวจสอบมูลค่าที่เป็นไปไม่ได้ทางกายภาพ ไม่ได้ลบสิ่งใดเลยอย่างเงียบๆ เอาต์พุต: รหัสความคิดเห็น + เอาต์พุตใดที่ฉันควรดูและเพราะเหตุใด

เทมเพลต 2 - การตรวจสอบรอยรั่ว:

บทบาท: คุณเป็นผู้ตรวจสอบโค้ดการเรียนรู้ของเครื่อง งาน: ตรวจสอบโค้ดแยกการฝึกอบรม/การทดสอบต่อไปนี้เพื่อดูข้อมูลรั่วไหล บริบท: นี่คืออนุกรมเวลา (การตรวจวัดระยะไกลของยานพาหนะ) ข้อจำกัด: เตือนหากมีการสับแบบสุ่ม แนะนำและปรับการแบ่งตามเวลา ผลลัพธ์: ผลการวิจัย + รหัสที่แก้ไข + คำอธิบาย

เทมเพลต 3 - การตรวจสอบหน่วย:

บทบาท: คุณเป็นผู้ตรวจสอบคุณภาพข้อมูล งาน: แนะนำการตรวจสอบที่มองหาความไม่สอดคล้องกันของหน่วยใน DataFrame บริบท: ความจุอาจเป็น kWh ในบางแถวและ Wh ในบางแถว เอาต์พุต: ตรวจสอบโค้ด + วิธีค้นหารูปแบบที่น่าสงสัย

เทมเพลต 4 - การแสดงภาพ + ความคิดเห็น:

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

พรอมต์อ่อน / พรอมต์แข็งแกร่ง

พรอมต์ที่อ่อนแอ:

สร้างแบบจำลองด้วยข้อมูลนี้

ยังไม่ชัดเจนว่าเป้าหมายไหน ช่องไหน ตรวจสอบอะไร AI สามารถส่งออกโค้ดที่มีสัญญาณรบกวน รั่ว และมองไม่เห็นได้

พรอมต์อันทรงพลัง:

บทบาท: คุณเป็นที่ปรึกษา Python ML งาน: เขียนขั้นตอนการทำงานเบื้องต้นเพื่อคาดการณ์การสึกหรอของผ้าเบรกและสาธิตข้อผิดพลาดในการตรวจสอบ บริบท: การวัดและส่งข้อมูลทางไกลอนุกรมเวลา เป้าหมาย: ความหนาของแผ่นที่เหลืออยู่ ข้อจำกัด: แบ่งอนุกรมเวลาตามเวลา (ไม่มีการสับ); คุณลักษณะแฟล็กที่มีความเสี่ยงต่อการรั่วไหลของข้อมูล หน่วยเอกสาร ตีความแต่ละขั้นตอน จดบันทึกสิ่งที่จำเป็นต้องมีการตรวจสอบก่อนที่ผลลัพธ์จะออกสู่สนาม ผลลัพธ์: รหัสความคิดเห็น + รายการตรวจสอบการยืนยัน

ข้อผิดพลาดทั่วไป

  • รันโค้ดโดยไม่เข้าใจ รหัส AI อาจมีข้อผิดพลาดเช่นกัน อ่านทีละบรรทัด
  • อนุกรมเวลาการผสม shuffle=True รั่วไหลไปสู่อนาคตและสร้างคะแนนปลอม
  • ลบค่าผิดปกติออกไปโดยสุ่มสี่สุ่มห้า สามารถล้างสัญญาณจริง (การโจมตีผิดพลาด) ได้
  • ไม่จัดทำเอกสารหน่วย ข้อผิดพลาดเช่น km/h กับ m/s, Wh กับ kWh เติบโตอย่างเงียบๆ
  • ข้ามขั้นตอนการอธิบาย()/ตรวจสอบ ข้อผิดพลาดส่วนใหญ่ปรากฏในสถิติสรุปแรก

โดยสรุป

  • Python (pandas, numpy, matplotlib, scikit-learn) เป็นมาตรฐานในการวิเคราะห์ข้อมูลยานยนต์โดยพฤตินัย
  • การวิเคราะห์ซ้ำได้: โหลด ตรวจสอบ ทำความสะอาด นำเสนอ วิเคราะห์ ตรวจสอบ และรายงาน
  • จำเป็นต้องเข้าใจและตรวจสอบรหัสที่ AI สร้างทีละบรรทัด เพียงเพราะมันใช้ได้ผลไม่ได้หมายความว่ามันถูกต้อง
  • รักษาความแตกต่างในอดีต/อนาคตในอนุกรมเวลา การสับแบบสุ่มทำให้เกิดการรั่วไหลของข้อมูล
  • ความสอดคล้องของหน่วยและการตีความค่าผิดปกตินั้นเงียบแต่เป็นจุดสำคัญของการตรวจสอบ

งานสมัคร

ใช้ชุดข้อมูลขนาดเล็ก (การวัดและส่งข้อมูลทางไกลจริงหรือสังเคราะห์) (1) ปฏิบัติตามกรอบงานหกขั้นตอน สร้างโค้ดการโหลดและควบคุมด้วยเทมเพลต 1 และยืนยันว่าคุณเข้าใจแต่ละบรรทัด (2) ค้นหาค่าที่น่าสงสัยอย่างน้อยหนึ่งค่าในเอาต์พุต description() และตรวจสอบสาเหตุ (3) ในงานทำนาย ให้กำหนดเวลาการแบ่งการฝึกอบรม/การทดสอบ และตรวจสอบความเสี่ยงของการรั่วไหลด้วยเทมเพลต 2 (4) บันทึกหน่วยของแต่ละคอลัมน์ที่คุณใช้ในพจนานุกรม

รายการตรวจสอบ

  • [ ] ฉันตั้งค่าการวิเคราะห์ด้วยกรอบงานหกขั้นตอน
  • [ ] ฉันอ่านและเข้าใจโค้ดที่สร้างโดย AI ทีละบรรทัด
  • [ ] ฉันค้นหาค่าที่น่าสงสัยด้วย description()/audit
  • [ ] ฉันแบ่งอนุกรมเวลาตามเวลา (ไม่มีการสับเปลี่ยน)
  • [ ] ฉันทำเครื่องหมายคุณลักษณะที่มีความเสี่ยงต่อการรั่วไหลของข้อมูล
  • [ ] ฉันบันทึกหน่วยของแต่ละคอลัมน์และเขียนการแปลงอย่างชัดเจน