Vahid 9 / 11

Python ilə Avtomobil Məlumatlarının Təhlili: Başdan Uca

Qazanclar:

  • Pandalarla telemetriya, sınaq və istehsal məlumatlarını yükləyən və təmizləyən təkrarlana bilən analiz iş axını qurmaq bacarığı
  • Süni intellektdən kod, atributlar və vizual yardım alarkən çıxış xəttini başa düşmək və yoxlamaq bacarığı
  • Vahid ardıcıllığı, məlumat sızması və təkrar istehsal üçün təhlil nəticələrini yoxlamaq bacarığı

Əvvəlki bölmələrdə biz süni intellektdən “məsləhətçi” kimi istifadə edirdik. Bu bölmədə biz bir addım irəli gedirik və Python istifadə edərək öz əllərimizlə avtomobil məlumatlarını təhlil edən bir iş axını qururuq. Məqsəd sizi proqram təminatı istehsalçısı etmək deyil; Süni intellektdən kod yardımı alarkən həmin kodu sətir-sətir başa düşə və yoxlaya bilən bir mühəndis etməkdir. Çünki AI tərəfindən istehsal olunan kod, AI tərəfindən istehsal olunan mətn kimi səhv ola bilər; həcmi çaşdıra bilər, məlumat sızdırır, yanlış sütunu mərkəzləşdirir. Kodu başa düşmədən işlətmək imzasız hesabat dərc etməyə bənzəyir.

Python niyə? Çünki bu, məlumatların təhlilində faktiki standartdır: siz telemetriya, sınaq və istehsal məlumatlarını pandalar (cədvəl verilənləri), numpy (rəqəmsal emal), matplotlib (süjet) və scikit-learn (maşın öyrənmə) kitabxanaları ilə asanlıqla emal edə bilərsiniz.

Təkrarlana bilən analiz üçün altı addım

Möhkəm təhlil həmişə eyni çərçivəyə uyğundur:

  1. Yüklə: Fayldan məlumatları oxuyun.
  2. Yoxlayın: Ölçü, sütunlar, məlumat növləri, itkin dəyərlər.
  3. Təmiz: Çatışmayan/xarici göstərici, vahid, vaxt damğası korreksiyası.
  4. Çıxarış xüsusiyyəti: Mənalı dəyişənlər əldə edin.
  5. Analiz/model: Statistika, vizuallaşdırma və ya model.
  6. Yoxlayın və hesabat verin: Nəticənin təmin edilməsi, həcm/sızma yoxlanışı, qeyd.
İpucu: Süni intellektdən kod istəyərkən “hər addımda nə etdiyinizi şərh edin və fərziyyələrinizi yazın” deyin. Beləliklə, kodu oxuduqca onu yoxlaya bilərsiniz.

Addım-addım nümunə: telemetriya təhlili

Aşağıdakı kod CAN/temetriya qeydini yükləyir və əsas yoxlamanı həyata keçirir. (Qeyd: kodları işə salmazdan əvvəl onları başa düşdüyünüzə əmin olun; sütun adları məlumatlarınızdan asılı olaraq dəyişir.)

pandaları pd# kimi idxal edin 1) Yükləyin: yarı nöqtəli CSV, birinci sütun timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # neçə satır, neçə sütun çapı (df.dtypes) # hər sütun nömrəsi və ya növü text)print(df.isna().sum()) # sütun başına çatışmayan dəyərlərin sayı(df.describe()) # xülasə statistikası: min, maks., orta

describe() çıxışı yoxlamaq üçün ilk imkanınızdır: əgər mühərrikin maksimal sürəti 45.000 rpm-dirsə (tipik sərnişin mühərriki ~7000 rpm), vahid və ya sensor nasazlığı var.

Audit mərhələsində ən çox istifadə edilən panda əmrləri və etdikləri:

əmr

Nə edir

Nəyi təsdiqləyir?

df.forma

Sətirlərin/sütunların sayı

Gözlənilən ölçüdür?

df.dtypes

Sütun növləri

Rəqəm sütunu mətnə çevrilib?

df.isna().sum()

Çatışmayan dəyər sayı

Nə qədər yer var?

df.describe()

Min/maksimum/orta

Fiziki cəhətdən ağlabatandırmı?

df.duplicated().sum()

dublikat sıra

İkili qeydiyyat varmı?

# 3) Təmiz: fiziki mümkün olmayan dəyərləri qeyd edin

Diqqət: kənar göstəricini dərhal silməyin; Əvvəlcə bunun niyə kənar olduğunu anlayın. Bu real hadisədirmi (qəfil istilik) və ya sensorun nasazlığı? Kor-koranə silmək əsl səhvi gizlədə bilər.

# 4) Çıxarış xüsusiyyəti: temperatur artım sürəti (törəmə)df = df.sort_values("zaman")df["sic_increase_speed"] = df["motor_sic"].diff() / df["zaman"].diff().dt.total_seconds()# 5) Sadə lotppyport kimi. pltplt.plot(df["zaman"], df["motor_sic"])plt.xlabel("Vaxt"); plt.ylabel("Mühərrik temperaturu (C)")plt.title("Mühərrik temperaturu kursu")plt.show()

Python-da məlumat sızmasının qarşısının alınması

Proqnoz modelini qurarkən ən təhlükəli səhv məlumat sızmasıdır (vahid 5): model proqnozlaşdırma zamanı məlum olmayan məlumatları gördükdə. Zaman seriyasında bunun qarşısını almaq üçün qızıl qayda: keçmişlə məşq edin, gələcəklə sınaqdan keçirin - təsadüfi qarışdırmaq olmaz.

sklearn.model_selection import train_test_split# YANLIŞ: zaman seriyasının təsadüfi bölünməsi gələcəyi sızdırır# df[df["zaman"] > hədd] # son 20% gələcək

Diqqət: train_test_split defolt olaraq məlumatları qarışdırır (qarışdırmaq=Doğru). Zaman seriyasında bu, gələcəyi təhsillə qarışdırır və yalançı yüksək nəticə verir. Süni intellekt bunu istehsal etdiyi kodda edibsə, onu düzəltməyə əmin olun.

Vahid tutarlılığı: səssiz qatil

Avtomobildəki ən məkrli səhvlər vahid xətalardır: km/saatdan m/s, Nm ilə lb-ft, bardan kPa, °C ilə K. Təhlildə hər bir sütunun vahidinin nə olduğunu lüğətin saxlanması və çevrilmələrin yazılması aydın şəkildə insanların həyatını xilas edir.

# Vahidləri açıq şəkildə sənədləşdirin = {"sürət": "km/s", "motor_sic": "C", "təzyiq": "bar"}# Lazım gələrsə, açıq çevrilmə (km/saat -> m/s)df["sürət_ms"] = df["sürət"] / 3.6

Mini keys tədqiqatları

1-ci hal - describe() ilə xəta aşkar edildi. Analitik AI kodunu işlədir və diapazonu təxmin edir; Nəticə absurd dərəcədə yüksəkdir. describe() çıxışına baxanda görürük ki, akkumulyatorun tutumu bəzi sətirlərdə Wh, digərlərində isə kWh (1000 dəfə fərq) ilə daxil edilir. Vahid vahid tipə gətirildikdə nəticə yaxşılaşır. Nəticə: Sadə bir ümumi statistika pis proqnozun qarşısını aldı.

Case 2 - Qarışıqlıq tələsi. Təcrübəçinin əyləc aşınma modeli test dəstində 98% dəqiq idi. Kod tədqiq edildikdə, train_test_split(shuffle=True) və zaman sıralarının qarışıq olduğu, yəni gələcək nöqtələrin təlimə sızdığını görmək olar. Zamana bölündükdə dəqiqlik 80%-ə düşür, lakin indi realdır. Nəticə: AI kodu işlədiyi üçün düzgün deyildi; İnsan sızıntını tutdu.

3-cü vəziyyət - kənar göstəricinin başa düşülməsi. Davamlılıq qeydində AI kodu avtomatik olaraq kənar gərginlik dəyərlərini silir. Mühəndis silinmiş nöqtələrə baxır; Testi maraqlandıran çatların başlama anları məhz bunlar idi. Silinmə silinir və pozuntular ayrıca nəzərdən keçirilir. Nəticə: "Təmizləmə" altında real siqnal silinə bilər; hər addımda sual.

operativ şablonlar

Şablon 1 - Sorğu kodu (izahı ilə):

Rol: Siz Python məlumat analitiki mentorusunuz. Tapşırıq: Telemetriya CSV-ni yükləyən və yoxlayan kodu yazın. Kontekst: Sütunlar: vaxt, sürət(km/saat), mühərrik_sic(C), inqilab(rpm). Məhdudiyyət: Hər sətri şərh edin; Hansı çekin və nə üçün edildiyini izah edin; fiziki mümkün olmayan dəyər yoxlaması əlavə edin; səssizcə heç nəyi silmə.Çıxış: Şərh edilmiş kod + hansı çıxışa baxmalıyam və niyə.

Şablon 2 - Sızma yoxlaması:

Rol: Siz maşın öyrənmə kodunu nəzərdən keçirənsiniz. Tapşırıq: Məlumat sızması üçün aşağıdakı təlim/test bölmə kodunu yoxlayın. Kontekst: Bu zaman seriyasıdır (avtomobil telemetriyası). Məhdudiyyət: Təsadüfi qarışdırma olduqda xəbərdar edin; Zamana görə bölünməyi təklif edin və əsaslandırın. Nəticə: Tapıntılar + düzəldilmiş kod + izahat.

Şablon 3 - Vahidin yoxlanılması:

Rol: Siz məlumat keyfiyyətinin auditorusunuz. Tapşırıq: DataFrame-də vahid uyğunsuzluğunu axtaran yoxlamaları təklif edin. Kontekst: Tutum bəzi cərgələrdə kVt, digərlərində isə Wh ola bilər. Çıxış: Kodu yoxlayın + şübhəli nümunəni necə tapmaq olar.

Şablon 4 - Vizuallaşdırma + şərh:

Rol: Siz məlumatların vizuallaşdırılması üzrə mütəxəssissiniz. Tapşırıq: Mühərrikin temperatur kursunu və artım sürətini göstərən kodu yazın. Məhdudiyyət: Baltaları vahidlə etiketləyin; anomaliyanı vizual olaraq qeyd edin; qrafiki şərh edərkən qəti günah iddia etməyin. Nəticə: Kod + qrafikdə nə axtarmaq lazımdır.

Zəif məlumat / Güclü göstəriş

Zəif çağırış:

Bu məlumatlarla bir model qurun.

Hansı hədəfin, hansı kupenin, hansı yoxlamanın aparıldığı bəlli deyil; Süni intellekt şifrələnmiş, sızan, vahid kor kodu çıxara bilər.

Güclü göstəriş:

Rol: Siz Python ML mentorusunuz. Tapşırıq: Əyləc yastığının aşınmasını proqnozlaşdırmaq və doğrulama tələlərini nümayiş etdirmək üçün ilkin iş axını yazın. Kontekst: Zaman sıralarının telemetriyası; hədəf: yastığın qalan qalınlığı. Məhdudiyyət: Zaman seriyasını vaxta görə ayırın (qarışdırılmır); məlumat sızması riski olan atributları qeyd etmək; sənəd vahidləri;hər bir addımı şərh etmək; Nəticə sahəyə çıxmazdan əvvəl hansı yoxlamaların tələb olunduğunu yazın. Nəticə: Şərh edilmiş kod + yoxlama siyahısı.

Ümumi səhvlər

  • Kodu başa düşmədən işlətmək. AI kodu da səhv ola bilər; Sətir-sətir oxuyun.
  • Zaman seriyasını qarışdırmaq. shuffle=True gələcəyi sızdırır və saxta hesab yaradır.
  • Kor-koranə kənarı silin. Həqiqi siqnal (nöqsan başlanğıcı) silinə bilər.
  • Vahidin sənədləşməməsi. Km/s vs m/s, Wh vs kWh kimi xətalar səssizcə artır.
  • Təsvir()/yoxlama addımını atlayın. Səhvlərin çoxu ilk ümumi statistikada görünür.

Xülasə

  • Python (pandas, numpy, matplotlib, scikit-learn) avtomobil məlumatlarının təhlilinin faktiki standartıdır.
  • Təkrarlanan analiz: yükləyin, yoxlayın, təmizləyin, xüsusiyyət verin, təhlil edin, təsdiqləyin və hesabat verin.
  • AI-nin sətir-sətir istehsal etdiyi kodu başa düşmək və yoxlamaq vacibdir; Sadəcə işlədiyi üçün onun düzgün olması demək deyil.
  • Zaman sıralarında keçmiş/gələcək fərqini saxlamaq; Təsadüfi qarışdırma məlumat sızması yaradır.
  • Vahid ardıcıllığı və kənar şərhlər səssiz, lakin kritik yoxlama nöqtələridir.

Tətbiq tapşırığı

Kiçik bir məlumat dəstini götürün (real və ya sintetik telemetriya). (1) Altı addımlı çərçivədən sonra Şablon 1 ilə yükləmə və nəzarət kodunu yaradın və hər bir sətri başa düşdüyünüzü təsdiq edin. (2) describe() çıxışında ən azı bir şübhəli dəyər tapın və bunun səbəbini araşdırın. (3) Proqnoz tapşırığında təlim/test bölgüsü vaxtını təyin edin və Şablon 2 ilə sızma riskini yoxlayın. (4) Lüğətdə istifadə etdiyiniz hər sütunun vahidini sənədləşdirin.

yoxlama siyahısı

  • [ ] Mən təhlili altı addımlı çərçivə ilə qurdum.
  • [ ] AI tərəfindən hazırlanmış kodu sətir-sətir oxudum və başa düşdüm.
  • [ ] Mən təsvir()/audit ilə şübhəli dəyərlər axtardım.
  • [ ] Mən zaman seriyasını vaxta görə bölürəm (qarışdırılmır).
  • [ ] Mən məlumat sızması riski olan atributları qeyd etdim.
  • [ ] Mən hər sütunun vahidini sənədləşdirdim və çevrilmələri açıq şəkildə yazdım.