Mga nadagdag:
- Kakayahang magtatag ng isang paulit-ulit na daloy ng trabaho sa pagsusuri na naglo-load at naglilinis ng data ng telemetry, pagsubok at produksyon gamit ang mga panda
- Kakayahang maunawaan at i-verify ang output linya sa pamamagitan ng linya habang tumatanggap ng code, mga katangian at tulong sa visualization mula sa artificial intelligence
- Kakayahang mag-audit ng mga resulta ng pagsusuri para sa pagkakapare-pareho ng unit, pagtagas ng data at muling paggawa
Sa mga nakaraang unit, gumamit kami ng artificial intelligence tulad ng isang "advisor". Sa unit na ito, lumayo tayo ng isang hakbang at magtatag ng workflow na nagsusuri ng automotive data gamit ang sarili nating mga kamay, gamit ang Python. Ang layunin ay hindi gawin kang isang software developer; Ito ay upang makagawa ng isang inhinyero na makakaunawa at makakapag-verify ng code na iyon sa bawat linya habang kumukuha ng tulong sa code mula sa AI. Dahil ang code na ginawa ng AI ay maaaring may sira, tulad ng text na ginawa ng AI; maaaring malito ang volume, tumagas ang data, maling column ang gitna. Ang pagpapatakbo ng code nang hindi nauunawaan ay tulad ng pag-publish ng isang hindi nalagdaan na ulat.
Python bakit? Dahil ito ang de facto na pamantayan sa pagsusuri ng data: madali mong maproseso ang data ng telemetry, pagsubok at produksyon gamit ang mga pandas (tabular data), numpy (numerical processing), matplotlib (plot) at scikit-learn (machine learning) na mga library.
Anim na hakbang sa reproducible analysis
Ang isang matatag na pagsusuri ay palaging sumusunod sa parehong balangkas:
- Mag-load: Basahin ang data mula sa file.
- Siyasatin: Dimensyon, mga column, mga uri ng data, mga nawawalang value.
- Malinis: Nawawala/outlier, unit, pagwawasto ng timestamp.
- I-extract ang feature: Kumuha ng mga makabuluhang variable.
- Pagsusuri/modelo: Mga istatistika, visualization, o modelo.
- I-verify at iulat: Probisyon ng resulta, pagsusuri ng volume/leak, pagre-record.
Tip: Kapag humihingi ng code sa AI, sabihin ang "komento kung ano ang iyong ginagawa sa bawat hakbang at isulat ang iyong mga pagpapalagay." Para ma-verify mo ang code habang binabasa mo ito.
Hakbang-hakbang na halimbawa: pagsusuri ng telemetry
Ang sumusunod na code ay naglo-load ng CAN/telemetry record at gumagawa ng pangunahing pagsusuri. (Tandaan: tiyaking nauunawaan mo ang mga code bago patakbuhin ang mga ito; iba-iba ang mga pangalan ng column depende sa iyong data.)
mag-import ng mga pandas bilang pd# 1) Mag-load: semi-dotted na CSV, unang column timestampdf = pd.read_csv("telemetry.csv", parse_dates=["oras"])# 2) Checkprint(df.shape) # kung ilang row, ilang columnsprint(df.dtypes) # type ng bawat column (df.dtypes) # type ng bawat column (df.dtypes) # type ng bawat column (df. nawawalang mga halaga sa bawat columnprint(df.describe()) # buod na istatistika: min, max, average
Ang describe() na output ay ang iyong unang pagkakataon na mag-verify: kung ang max na halaga ng bilis ng engine ay 45,000 rpm (karaniwang pampasaherong engine ~7,000 rpm), mayroong isang unit o sensor fault.
Ang pinakamadalas na ginagamit na mga command ng pandas sa hakbang sa pag-audit at kung ano ang ginagawa ng mga ito:
utos
Ano ang ginagawa
Ano ang kinukumpirma nito?
df.hugis
Bilang ng mga row/column
Ito ba ang inaasahang sukat?
df.dtypes
Mga uri ng column
Naging teksto ba ang column ng numero?
df.isna().sum()
Nawawalang bilang ng halaga
Magkano ang espasyo?
df.describe()
Min/max/average
Ito ba ay pisikal na makatwiran?
df.duplicated().sum()
dobleng hilera
Mayroon bang dual registration?
# 3) Malinaw: markahan ang mga pisikal na imposibleng halaga
Babala: Huwag tanggalin kaagad ang outlier; Unawain muna kung bakit ito ay isang outlier. Ito ba ay isang tunay na kaganapan (biglaang pag-init) o pagkabigo ng sensor? Ang bulag na pagtanggal ay maaaring itago ang tunay na kasalanan.
# 4) Extract feature: rate ng pagtaas ng temperatura (derivative)df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) Simple visualizationimport matplotlib.pytplot(pltplot) df["motor_sic"])plt.xlabel("Oras"); plt.ylabel("Temperatura ng makina (C)") plt.title("kurso ng temperatura ng makina")plt.show()
Pag-iwas sa pagtagas ng data sa Python
Ang pinaka-mapanganib na pagkakamali kapag gumagawa ng modelo ng hula ay ang pagtagas ng data (unit 5): kapag nakakita ang modelo ng impormasyon na hindi malalaman sa oras ng hula. Ang ginintuang tuntunin upang maiwasan ito sa serye ng oras: sanayin ang nakaraan, subukan ang hinaharap — walang random na pagbabalasa.
mula sa sklearn.model_selection import train_test_split# FALSE: ang random na paghahati sa serye ng oras ay tumagas sa hinaharap# df[df["time"] > threshold] # huling 20% sa hinaharap
Babala: sina-shuffle ng train_test_split ang data bilang default (shuffle=True). Sa serye ng oras, nalilito nito ang hinaharap sa edukasyon at nagbubunga ng maling mataas na marka. Kung nagawa ito ng AI sa code na ginagawa nito, siguraduhing ayusin ito.
Unit consistency: silent killer
Ang pinaka-mapanlalang mga error sa automotive ay mga unit error: km/h hanggang m/s, Nm hanggang lb-ft, bar hanggang kPa, °C hanggang K. Ang pagpapanatiling isang diksyunaryo ng kung ano ang unit ng bawat column sa pagsusuri at pagsusulat ng mga conversion ay malinaw na nagliligtas ng mga buhay.
# Idokumento ang mga unit nang tahasan = {"speed": "km/h", "motor_sic": "C", "pressure": "bar"}# Explicit conversion kung kinakailangan (km/h -> m/s)df["speed_ms"] = df["speed"] / 3.6
Mini case study
Case 1 - Nahuli ang error sa describe(). Ang isang analyst ay nagpapatakbo ng code mula sa AI at gumagawa ng isang pagtatantya ng saklaw; Ang resulta ay walang katotohanan na mataas. Kung titingnan natin ang describe() na output, makikita natin na ang kapasidad ng baterya ay ipinasok sa Wh sa ilang linya at sa kWh sa iba (1000 beses na pagkakaiba). Kapag ang yunit ay dinala sa isang pare-parehong uri, ang resulta ay nagpapabuti. Konklusyon: Ang isang simpleng istatistika ng buod ay humadlang sa isang masamang hula.
Case 2 - Confusion trap. Ang modelo ng pagsusuot ng preno ng isang intern ay 98% tumpak sa set ng pagsubok. Kapag napagmasdan ang code, makikita na ang train_test_split(shuffle=True) at ang time series ay magkakahalo, ibig sabihin, ang mga hinaharap na puntos ay tumutulo sa pagsasanay. Kapag hinati sa oras, bumababa ang katumpakan sa 80%, ngunit ito ay makatotohanan na ngayon. Konklusyon: Dahil lang sa gumana ang AI code, hindi ito tama; Nahuli ng tao ang pagtagas.
Case 3 - Pag-unawa sa outlier. Sa isang talaan ng tibay, awtomatikong tinatanggal ng AI code ang mga outlier na halaga ng strain. Tinitingnan ng inhinyero ang mga tinanggal na puntos; Ito ang eksaktong mga sandali ng pagsisimula ng crack kung saan interesado ang pagsubok. Aalisin ang pagtanggal at ang mga paglabag ay isasaalang-alang sa hiwalay na pagsusuri. Resulta: Sa ilalim ng "Paglilinis" ang totoong signal ay maaaring tanggalin; tanong sa bawat hakbang.
agarang mga template
Template 1 - Request code (may paliwanag):
Tungkulin: Isa kang tagapayo ng data analyst ng Python.Gawain: Sumulat ng code na naglo-load at nagsusuri ng telemetry CSV.Konteksto: Mga Column: oras, bilis(km/h), engine_sic(C), revolution(rpm).Constraint: Magkomento sa bawat row; Ipaliwanag kung aling tseke ang ginawa at bakit; magdagdag ng pisikal na imposibleng pagsusuri ng halaga; tahimik na tinatanggal ang wala.Output: Nagkomento ng code + kung aling output ang dapat kong tingnan at bakit.
Template 2 - Pag-inspeksyon sa pagtagas:
Tungkulin: Isa kang machine learning code reviewer. Gawain: Suriin ang sumusunod na training/test split code para sa data leaks. Konteksto: Ito ay isang serye ng oras (telemetry ng sasakyan). Constraint: Magbabala kung mayroong random shuffling; Magmungkahi at bigyang-katwiran ang paghahati ayon sa oras. Output: Mga natuklasan + naitama ang code + paliwanag.
Template 3 - Pagpapatunay ng unit:
Tungkulin: Isa kang auditor ng kalidad ng data.Gawain: Magmungkahi ng mga pagsusuri na naghahanap ng hindi pagkakapare-pareho ng unit sa isang DataFrame.Konteksto: Maaaring kWh ang kapasidad sa ilang row at Wh sa iba.Output: Suriin ang code + kung paano hanapin ang kahina-hinalang pattern.
Template 4 - Visualization + komento:
Tungkulin: Isa kang eksperto sa visualization ng data. Gawain: Sumulat ng code na naglalarawan sa kurso ng temperatura ng engine at rate ng pagtaas. Constraint: Lagyan ng label ang mga axes ng unit; biswal na markahan ang anomalya; huwag mag-claim ng tiyak na pagkakamali kapag binibigyang-kahulugan ang graph. Output: Code + kung ano ang hahanapin sa graph.
Mahinang prompt / Malakas na prompt
Mahinang prompt:
Bumuo ng isang modelo gamit ang data na ito.
Hindi malinaw kung aling target, aling compartment, aling pag-verify; Maaaring mag-output ang AI ng scrambled, leaky, unit-blind code.
Napakahusay na prompt:
Tungkulin: Isa kang Python ML mentor. Gawain: Sumulat ng isang paunang daloy ng trabaho upang mahulaan ang pagkasuot ng brake pad at ipakita ang mga pitfall sa pagpapatunay. Konteksto: Telemetry ng serye ng oras; target: natitirang kapal ng pad.Constraint: Hatiin ang serye ng oras ayon sa oras (walang shuffling); i-flag ang mga katangian sa panganib ng pagtagas ng data; mga yunit ng dokumento; bigyang-kahulugan ang bawat hakbang; Isulat kung anong mga tseke ang kinakailangan bago lumabas ang resulta sa field. Output: Nagkomento ng code + checklist ng pag-verify.
Mga karaniwang pagkakamali
- Pagpapatakbo ng code nang hindi nauunawaan ito. Maaaring may sira din ang AI code; Basahin ang bawat linya.
- Paghahalo ng time series. shuffle=True leaks ang hinaharap at naglalabas ng pekeng marka.
- Blindly tanggalin ang outlier. Maaaring i-clear ang aktwal na signal (fault onset).
- Hindi pagdodokumento ng unit. Ang mga error tulad ng km/h vs m/s, Wh vs kWh ay tahimik na lumalaki.
- Nilaktawan ang describe()/check na hakbang. Lumilitaw ang karamihan sa mga error sa unang istatistika ng buod.
Sa buod
- Ang Python (pandas, numpy, matplotlib, scikit-learn) ay ang de facto na pamantayan ng automotive data analysis.
- Paulit-ulit na pagsusuri: i-load, siyasatin, linisin, itampok, pag-aralan, patunayan at iulat.
- Kinakailangang maunawaan at i-verify ang code na ginagawa ng AI sa bawat linya; Hindi ibig sabihin na gumagana ito ay tama.
- Panatilihin ang nakaraan/hinaharap na pagkakaiba sa serye ng oras; Ang random shuffling ay lumilikha ng data leakage.
- Ang pagkakapare-pareho ng unit at outlier na interpretasyon ay tahimik ngunit kritikal na mga punto ng pag-verify.
Gawain ng aplikasyon
Kumuha ng maliit na set ng data (totoo o sintetikong telemetry). (1) Kasunod ng anim na hakbang na balangkas, buuin ang paglo-load at control code gamit ang Template 1 at kumpirmahin na naiintindihan mo ang bawat linya. (2) Maghanap ng kahit isang kahina-hinalang value sa describe() na output at imbestigahan kung bakit. (3) Sa isang gawain sa paghula, orasan ang paghahati ng pagsasanay/pagsusulit at suriin ang panganib ng pagtagas gamit ang Template 2. (4) Idokumento ang yunit ng bawat column na iyong ginagamit sa isang diksyunaryo.
checklist
- [ ] Itinakda ko ang pagsusuri na may anim na hakbang na balangkas.
- [ ] Binasa at naunawaan ko ang code na ginawa ng AI line by line.
- [ ] Naghanap ako ng mga kahina-hinalang value na may describe()/audit.
- [ ] Hinahati ko ang time series ayon sa oras (walang shuffling).
- [ ] Minarkahan ko ang mga katangian na nasa panganib ng pagtagas ng data.
- [ ] Naidokumento ko ang unit ng bawat column at tahasang isinulat ang mga conversion.