Faida:
- Uwezo wa kuanzisha mtiririko wa uchambuzi unaorudiwa ambao hupakia na kusafisha telemetry, mtihani na data ya uzalishaji na pandas.
- Uwezo wa kuelewa na kuthibitisha mstari wa pato kwa mstari wakati wa kupokea msimbo, sifa na usaidizi wa taswira kutoka kwa akili ya bandia.
- Uwezo wa kukagua matokeo ya uchanganuzi kwa uthabiti wa kitengo, uvujaji wa data na kuzaliana tena
Katika vitengo vilivyotangulia, tulitumia akili ya bandia kama "mshauri". Katika kitengo hiki, tunaenda hatua moja zaidi na kuanzisha mtiririko wa kazi ambao unachambua data ya gari kwa mikono yetu wenyewe, kwa kutumia Python. Lengo sio kukufanya kuwa msanidi programu; Ni kumfanya mhandisi anayeweza kuelewa na kuthibitisha msimbo huo mstari kwa mstari huku akipata usaidizi wa msimbo kutoka kwa AI. Kwa sababu msimbo unaotolewa na AI unaweza kuwa na makosa, kama vile maandishi yanayotolewa na AI; inaweza kuchanganya sauti, kuvuja data, safu wima isiyo sahihi katikati. Kuendesha msimbo bila kuuelewa ni kama kuchapisha ripoti ambayo haijatiwa saini.
Chatu kwanini? Kwa sababu ndicho kiwango halisi katika uchanganuzi wa data: unaweza kuchakata data ya telemetry, majaribio na uzalishaji kwa urahisi ukitumia panda (data ya jedwali), numpy (uchakataji wa nambari), matplotlib (njama) na scikit-learn (kujifunza kwa mashine) maktaba.
Hatua sita za uchanganuzi unaoweza kuzalishwa tena
Uchambuzi thabiti kila wakati hufuata mfumo sawa:
- Mzigo: Soma data kutoka kwa faili.
- Kagua: Kipimo, safu wima, aina za data, thamani zinazokosekana.
- Safi: Inakosekana/cha nje, kitengo, marekebisho ya muhuri wa nyakati.
- Kipengele cha Dondoo: Pata vigeu vya maana.
- Uchanganuzi/muundo: Takwimu, taswira au modeli.
- Thibitisha na uripoti: Utoaji wa matokeo, ukaguzi wa kiasi/uvujaji, kurekodi.
Kidokezo: Unapouliza AI msimbo, sema "toa maoni juu ya kile unachofanya katika kila hatua na uandike mawazo yako." Kwa hivyo unaweza kuthibitisha msimbo unapoisoma.
Mfano wa hatua kwa hatua: uchambuzi wa telemetry
Msimbo ufuatao hupakia rekodi ya CAN/telemetry na hukagua msingi. (Kumbuka: hakikisha unaelewa misimbo kabla ya kuziendesha; majina ya safu wima hutofautiana kulingana na data yako.)
leta panda kama pd# 1) Mzigo: CSV yenye vitone, safu wima ya kwanza timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Alama ya kuangalia(df.shape) # safu mlalo ngapi, safu wima ngapi(df.dtypes) #nambari ya safu(df)(nambari ya maandishi) # aina ya maandishi idadi ya thamani zinazokosekana kwa kila safu wima(df.describe()) # muhtasari wa takwimu: min, max, wastani
Description() pato ni fursa yako ya kwanza ya kuthibitisha: ikiwa thamani ya juu ya kasi ya injini ni 45,000 rpm (injini ya kawaida ya abiria ~7,000 rpm), kuna hitilafu ya kitengo au kihisi.
Amri za panda zinazotumiwa sana katika hatua ya ukaguzi na kile wanachofanya:
amri
Je!
Je, inathibitisha nini?
df.umbo
Idadi ya safu/safu
Je, ni ukubwa unaotarajiwa?
df.d aina
Aina za safuwima
Je, safu wima ya nambari imekuwa maandishi?
df.isna().jumla()
Idadi ya thamani haipo
Kuna nafasi ngapi?
df.eleza()
Kiwango cha chini/upeo/wastani
Je, ni busara kimwili?
df.duplicated().jumla()
safu mlalo rudufu
Je, kuna usajili wa pande mbili?
# 3) Wazi: weka alama thamani zisizowezekana
Tahadhari: Usifute nje mara moja; Kwanza elewa kwa nini ni muuzaji nje. Je! ni tukio la kweli (kupokanzwa kwa ghafla) au kutofaulu kwa sensorer? Kufuta kwa upofu kunaweza kuficha kosa halisi.
# 4) Kipengele cha dondoo: kiwango cha kupanda kwa halijoto (derivative)df = df.sort_values("muda")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) Visual_seconds()# 5) pltplt.plot(df["time"], df["motor_sic"])plt.xlabel("Muda"); plt.ylabel("joto la injini (C)") plt.title("Kozi ya halijoto ya injini")plt.show()
Kuzuia uvujaji wa data katika Python
Hitilafu hatari zaidi wakati wa kujenga mfano wa utabiri ni uvujaji wa data (kitengo cha 5): wakati mfano huona habari ambayo haiwezi kujulikana wakati wa utabiri. Kanuni kuu ya kuepuka hili katika mfululizo wa saa: fanya mazoezi na yaliyopita, jaribu na siku zijazo - hakuna kuchanganya bila mpangilio.
kutoka kwa sklearn.model_selection leta train_test_split# FALSE: kugawanya mfululizo wa muda bila mpangilio kutavuja siku zijazo# df[df["time"] > threshold] # mwisho 20% siku zijazo
Tahadhari: train_test_split huchanganya data kwa chaguo-msingi (changanya=Kweli). Katika mfululizo wa saa, hii inachanganya siku zijazo na elimu na kutoa alama za juu za uwongo. Ikiwa AI imefanya hivi katika nambari inayozalisha, hakikisha kuirekebisha.
Uthabiti wa kitengo: muuaji kimya
Makosa ya hila zaidi katika magari ni makosa ya kitengo: km/h hadi m/s, Nm hadi lb-ft, bar hadi kPa, °C hadi K. Kuweka kamusi ya kile kitengo cha kila safu kilivyo katika uchanganuzi na kuandika ubadilishaji huokoa maisha wazi.
# Andika vizio kwa uwazi = {"speed": "km/h", "motor_sic": "C", "pressure": "bar"}# Ubadilishaji wazi ikiwa ni lazima (km/h -> m/s)df["speed_ms"] = df["speed"] / 3.6
Uchunguzi mdogo wa kesi
Kesi ya 1 - Hitilafu ilipatikana kwa kuelezea (). Mchambuzi huendesha nambari kutoka kwa AI na kufanya makadirio ya anuwai; Matokeo yake ni ya juu sana. Tunapoangalia matokeo ya kuelezea (), tunaona kwamba uwezo wa betri umeingizwa kwa Wh katika baadhi ya mistari na kWh kwa wengine (tofauti ya mara 1000). Wakati kitengo kinaletwa kwa aina ya sare, matokeo yanaboresha. Hitimisho: Muhtasari rahisi wa takwimu ulizuia utabiri mbaya.
Kesi ya 2 - Mtego wa kuchanganyikiwa. Mfano wa uvaaji wa breki wa mwanafunzi wa ndani ulikuwa sahihi kwa 98% kwenye seti ya majaribio. Wakati msimbo unachunguzwa, inaweza kuonekana kuwa train_test_split(shuffle=True) na mfululizo wa saa umechanganyika, kumaanisha kuwa pointi za siku zijazo huvuja kwenye mafunzo. Inapogawanywa na wakati, usahihi hupungua hadi 80%, lakini sasa ni kweli. Hitimisho: Kwa sababu tu nambari ya AI ilifanya kazi, haikuwa sawa; Binadamu alipata uvujaji huo.
Kesi ya 3 - Kuelewa nje. Katika rekodi ya kudumu, msimbo wa AI hufuta kiotomati maadili ya nje. Mhandisi anaangalia pointi zilizofutwa; Hizi ndizo nyakati haswa za uanzishaji wa ufa ambazo jaribio lilipendezwa nazo. Ufutaji huondolewa na ukiukaji huchukuliwa katika ukaguzi tofauti. Matokeo: Chini ya "Kusafisha" ishara halisi inaweza kufutwa; swali kila hatua.
violezo vya haraka
Kiolezo cha 1 - Omba msimbo (pamoja na maelezo):
Jukumu: Wewe ni mchambuzi wa data ya Python.Kazi: Andika msimbo unaopakia na kuangalia CSV ya telemetry.Muktadha: Safu: saa, kasi(km/h), injini_sic(C), mapinduzi(rpm).Kizuizi: Toa maoni kwa kila safu mlalo; Eleza hundi gani ilifanywa na kwa nini; ongeza hundi ya thamani isiyowezekana kimwili; kimya kufuta chochote.Pato: Kanuni ya maoni + ni pato gani ninapaswa kuangalia na kwa nini.
Kiolezo cha 2 - Ukaguzi wa uvujaji:
Jukumu: Wewe ni mkaguzi wa msimbo wa kujifunza kwa mashine. Kazi: Angalia msimbo ufuatao wa mafunzo/jaribio la uvujaji wa data. Muktadha: Huu ni mfululizo wa saa (telemetry ya gari). Kizuizi: Onya ikiwa kuna kuchanganya bila mpangilio; Pendekeza na uhalalishe kugawanyika kwa wakati. Pato: Matokeo + msimbo uliosahihishwa + maelezo.
Kiolezo cha 3 - Uthibitishaji wa kitengo:
Jukumu: Wewe ni mkaguzi wa ubora wa data.Kazi: Pendekeza ukaguzi unaotafuta kutolingana kwa kitengo katika DataFrame.Muktadha: Uwezo unaweza kuwa kWh katika baadhi ya safu mlalo na Wh kwa zingine.Pato: Angalia msimbo + jinsi ya kupata muundo unaotiliwa shaka.
Kiolezo cha 4 - Taswira + maoni:
Jukumu: Wewe ni mtaalamu wa taswira ya data. Kazi: Andika msimbo unaopanga mwendo wa halijoto ya injini na kiwango cha ongezeko. Kizuizi: Weka lebo kwenye shoka kwa kitengo; kuibua alama ya upungufu; usidai kosa dhahiri wakati wa kutafsiri grafu. Pato: Kanuni + nini cha kutafuta kwenye grafu.
Agizo dhaifu / Ukumbusho thabiti
Agizo dhaifu:
Unda muundo na data hii.
Haijulikani wazi ni lengo gani, sehemu gani, uthibitishaji gani; AI inaweza kutoa msimbo uliochanganyikiwa, unaovuja, na upofu wa kitengo.
Agizo lenye nguvu:
Jukumu: Wewe ni mshauri wa Python ML. Kazi: Andika mtiririko wa awali wa kutabiri uvaaji wa pedi za breki na uonyeshe mitego ya uthibitishaji. Muktadha: Telemetry ya mfululizo wa wakati; lengo: unene wa pedi iliyobaki.Kizuizi: Gawanya mfululizo wa wakati kwa wakati (hakuna kuchanganya); sifa za bendera katika hatari ya kuvuja kwa data; vitengo vya hati;tafsiri kila hatua; Andika ni ukaguzi gani unahitajika kabla ya matokeo kwenda nje ya uwanja. Pato: Msimbo uliotolewa maoni + orodha hakiki ya uthibitishaji.
Makosa ya kawaida
- Kuendesha nambari bila kuielewa. Msimbo wa AI pia unaweza kuwa na makosa; Soma mstari kwa mstari.
- Mfululizo wa wakati wa kuchanganya. shuffle=Kweli huvuja siku zijazo na kutoa alama ghushi.
- Futa nje kwa upofu. Ishara halisi (mwanzo wa kosa) inaweza kufutwa.
- Sio kurekodi kitengo. Hitilafu kama vile km/h dhidi ya m/s, Wh vs kWh hukua kimyakimya.
- Kuruka kuelezea()/angalia hatua. Makosa mengi yanaonekana katika muhtasari wa takwimu za kwanza.
Kwa muhtasari
- Python (pandas, numpy, matplotlib, scikit-learn) ni kiwango cha ukweli cha uchambuzi wa data ya magari.
- Uchambuzi unaorudiwa: pakia, kagua, safisha, kipengele, changanua, thibitisha na uripoti.
- Ni muhimu kuelewa na kuthibitisha kanuni ambayo AI hutoa mstari kwa mstari; Kwa sababu inafanya kazi haimaanishi kuwa ni sawa.
- Dumisha tofauti za zamani/zajayo katika mfululizo wa saa; Kuchanganya bila mpangilio husababisha kuvuja kwa data.
- Uthabiti wa kitengo na tafsiri ya nje ni kimya lakini hoja muhimu za uthibitishaji.
Jukumu la maombi
Chukua seti ndogo ya data (telemetry halisi au ya synthetic). (1) Kufuatia mfumo wa hatua sita, toa msimbo wa upakiaji na udhibiti na Kiolezo cha 1 na uthibitishe kuwa unaelewa kila mstari. (2) Tafuta angalau thamani moja ya kutiliwa shaka katika matokeo ya kueleza() na uchunguze kwa nini. (3) Katika kazi ya kutabiri, panga muda wa kugawanya mafunzo/jaribio na uangalie hatari ya kuvuja ukitumia Kiolezo cha 2. (4) Andika kitengo cha kila safu unayotumia kwenye kamusi.
orodha ya ukaguzi
- [ ] Niliweka uchanganuzi kwa mfumo wa hatua sita.
- [ ] Nilisoma na kuelewa msimbo uliotolewa na AI mstari kwa mstari.
- [ ] Nilitafuta maadili ya kutiliwa shaka na explain()/audit.
- [ ] Niligawanya mfululizo wa saa kwa wakati (hakuna kuchanganya).
- [ ] Nilitia alama sifa ambazo ziko katika hatari ya kuvuja kwa data.
- [ ] Niliandika kitengo cha kila safu na nikaandika ubadilishaji kwa uwazi.