Табыстар:
- Пандалармен телеметрия, сынақ және өндірістік деректерді жүктейтін және тазалайтын қайталанатын талдау жұмыс процесін орнату мүмкіндігі
- Жасанды интеллекттен кодты, атрибуттарды және визуализация көмегін алу кезінде шығыс жолын түсіну және тексеру мүмкіндігі
- Бірлік дәйектілігі, деректердің ағып кетуі және қайталануы үшін талдау нәтижелерін тексеру мүмкіндігі
Бұрынғы бөлімшелерде біз жасанды интеллектті «кеңесші» сияқты қолдандық. Бұл бөлімде біз бір қадам алға жылжып, Python арқылы өз қолымызбен автокөлік деректерін талдайтын жұмыс процесін орнатамыз. Мақсат сізді бағдарламалық жасақтаманы әзірлеуші ету емес; Бұл AI-дан код көмегін алу кезінде сол кодты жол бойынша түсінетін және тексеретін инженер жасау. Өйткені AI шығарған код, AI шығарған мәтін сияқты ақаулы болуы мүмкін; көлемді шатастыруы, деректердің ағуы, дұрыс емес бағанды ортаға қоюы мүмкін. Кодты түсінбей іске қосу қол қойылмаған есепті жариялаумен бірдей.
Python неге? Бұл деректерді талдаудағы іс жүзінде стандарт болғандықтан: сіз телеметрияны, сынақты және өндірістік деректерді pandas (кестелік деректер), numpy (сандық өңдеу), matplotlib (сюжет) және scikit-learn (машинада оқыту) кітапханаларымен оңай өңдей аласыз.
Қайталанатын талдауға алты қадам
Нақты талдау әрқашан бірдей құрылымды ұстанады:
- Жүктеу: файлдан деректерді оқу.
- Тексеру: өлшем, бағандар, деректер түрлері, жетіспейтін мәндер.
- Таза: жоқ/шығыс, бірлік, уақыт белгісін түзету.
- Шығару мүмкіндігі: мағыналы айнымалыларды шығару.
- Талдау/модель: статистика, визуализация немесе модель.
- Тексеру және есеп беру: Нәтижені қамтамасыз ету, көлемді/ағып кетуді тексеру, жазу.
Кеңес: AI-дан код сұрағанда, «әр қадамда не істеп жатқаныңызды түсіндіріңіз және өз болжамдарыңызды жазыңыз» деп айтыңыз. Осылайша сіз кодты оқыған кезде оны тексере аласыз.
Қадамдық мысал: телеметриялық талдау
Келесі код CAN/телеметрия жазбасын жүктейді және негізгі тексеруді орындайды. (Ескертпе: кодтарды іске қоспас бұрын оларды түсінгеніңізге көз жеткізіңіз; баған атаулары деректеріңізге байланысты өзгереді.)
пандаларды pd# ретінде импорттау 1) Жүктеу: жартылай нүктелі CSV, бірінші баған timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # қанша жол, қанша баған басып шығару(df.dtypes) (df.dtypes) # әр бағанның түрі немесе саны text)print(df.isna().sum()) # әр бағандағы жетіспейтін мәндер саны(df.describe()) # жиынтық статистика: мин, макс, орташа
describe() шығысы - бұл тексерудің бірінші мүмкіндігі: қозғалтқыш жылдамдығының максималды мәні 45 000 айн/мин болса (әдеттегі жолаушы қозғалтқышы ~ 7 000 айн/мин), блок немесе сенсор ақаулығы бар.
Аудит қадамында ең жиі қолданылатын панда пәрмендері және олар не істейді:
пәрмен
Не істейді
Ол нені растайды?
df.пішіні
Жолдар/бағандар саны
Бұл күтілетін өлшем ме?
df.dtypes
Баған түрлері
Сандық баған мәтінге айналды ма?
df.isna().sum()
Мән саны жоқ
Қанша орын бар?
df.describe()
Мин/макс/орта
Бұл физикалық тұрғыдан ақылға қонымды ма?
df.duplicated().sum()
қайталанатын жол
Қосарлы тіркеу бар ма?
№ 3) Таза: физикалық мүмкін емес мәндерді белгілеңіз
Абайлаңыз: шектен шыққан мәнді дереу жоймаңыз; Алдымен оның неге шектен шыққанын түсініңіз. Бұл нақты оқиға (кенеттен қыздыру) немесе сенсордың істен шығуы ма? Соқыр түрде жою нақты қатені жасыруы мүмкін.
№ 4) Шығару мүмкіндігі: температураның көтерілу жылдамдығы (туынды)df = df.sort_values("уақыт")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) Қарапайым лот визуализациясы ретінде. pltplt.plot(df["уақыт"], df["motor_sic"])plt.xlabel("Уақыт"); plt.ylabel("Қозғалтқыш температурасы (C)")plt.title("Қозғалтқыш температурасы курсы")plt.show()
Python-да деректердің ағып кетуін болдырмау
Болжау моделін құру кезіндегі ең қауіпті қате деректердің ағып кетуі (5-бірлік): модель болжау кезінде белгілі болмайтын ақпаратты көргенде. Уақыт қатарында мұны болдырмаудың алтын ережесі: өткенмен жаттықтыру, болашақпен сынау — кездейсоқ араластыру жоқ.
sklearn.model_selection import train_test_split# ЖАЛҒАН: уақыт қатарын кездейсоқ бөлу болашақты ағызады# df[df["time"] > шек] # соңғы 20% болашақ
Абайлаңыз: train_test_split әдепкі бойынша деректерді араластырады (аралас=Шын). Уақыт қатарында бұл болашақты біліммен шатастырады және жалған жоғары балл береді. Егер AI мұны өзі шығаратын кодта жасаған болса, оны түзетіңіз.
Бірлік консистенциясы: үнсіз өлтіруші
Автокөліктегі ең жасырын қателер бірлік қателері болып табылады: км/сағ – м/с, Нм – фунт-фут, бардан кПа, °С – К. Талдау кезінде әрбір бағанның бірлігінің сөздігін сақтау және түрлендірулерді жазу адам өмірін сақтайды.
# Бірліктерді нақты түрде құжаттаңыз = {"жылдамдық": "км/сағ", "мотор_sic": "C", "қысым": "бар"}# Қажет болса, анық түрлендіру (км/сағ -> м/с)df["жылдамдық_мс"] = df["жылдамдық"] / 3,6
Шағын жағдайлық есептер
1-жағдай - describe() арқылы анықталған қате. Сарапшы AI кодты іске қосады және ауқымды бағалауды жасайды; Нәтиже абсурдтық жоғары. describe() шығысына қарасақ, аккумулятор сыйымдылығы кейбір жолдарда Втсағ, ал басқаларында кВтсағ (айырмашылық 1000 есе) енгізілгенін көреміз. Құрылғы біркелкі түрге келтірілсе, нәтиже жақсарады. Қорытынды: Қарапайым жиынтық статистика жаман болжамның алдын алды.
2-жағдай - Шатасу тұзағы. Интерннің тежегіш тозу үлгісі сынақ жиынында 98% дәл болды. Кодты зерттегенде, train_test_split(shuffle=True) және уақыт қатарлары аралас екенін көруге болады, яғни болашақ нүктелер жаттығуға ағып кетеді. Уақыт бойынша бөлгенде, дәлдік 80%-ға дейін төмендейді, бірақ қазір ол шынайы. Қорытынды: AI коды жұмыс істегендіктен, ол дұрыс болмады; Адам ағып жатқан жерді ұстады.
3-жағдай – Шектеулі мәнді түсіну. Төзімділік жазбасында AI коды шектен тыс штамм мәндерін автоматты түрде жояды. Инженер жойылған нүктелерге қарайды; Бұл сынақты қызықтыратын жарықшақтардың басталу сәттері болды. Жою жойылады және бұзушылықтар бөлек қаралады. Нәтиже: «Тазалау» астында нақты сигналды жоюға болады; әр қадам сайын сұрақ.
шақыру үлгілері
Үлгі 1 - Сұраныс коды (түсіндірмесі бар):
Рөл: Сіз Python деректер талдаушысы тәлімгерісіз. Тапсырма: CSV телеметриясын жүктейтін және тексеретін кодты жазыңыз. Мәтінмән: Бағандар: уақыт, жылдамдық (км/сағ), қозғалтқыш_sic (C), айналым (айн/мин). Шектеу: Әрбір жолға түсініктеме беріңіз; Қандай тексеру және не үшін жасалғанын түсіндіріңіз; физикалық мүмкін емес мәнді тексеруді қосу; ешнәрсені үнсіз жою. Шығару: Түсініктеме берілген код + қай шығысты қарау керек және неге.
Үлгі 2 - ағып кетуді тексеру:
Рөл: Сіз машинаны үйрену кодын қарап шығушысыз. Тапсырма: Деректердің ағып кетуіне келесі оқыту/сынақ бөлу кодын тексеріңіз. Мәтінмән: Бұл уақыт сериясы (көлік телеметриясы). Шектеу: Кездейсоқ араластыру болса ескертіңіз; Уақыт бойынша бөлуді ұсыныңыз және негіздеңіз. Нәтиже: Қорытындылар + түзетілген код + түсініктеме.
Үлгі 3 - Бірлікті тексеру:
Рөл: Сіз деректер сапасы аудиторысыз. Тапсырма: DataFrame ішіндегі бірлік сәйкессіздігін іздейтін тексерулерді ұсыныңыз. Мәтінмән: Сыйымдылық кейбір жолдарда кВт/сағ, ал басқаларында Вт болуы мүмкін. Шығару: Кодты тексеру + күдікті үлгіні қалай табуға болады.
Үлгі 4 - Көрнекілік + түсініктеме:
Рөл: Сіз деректерді визуализациялау сарапшысысыз. Тапсырма: Қозғалтқыштың температурасы мен жоғарылау жылдамдығын көрсететін кодты жазыңыз. Шектеу: осьтерді бірлікпен белгілеңіз; аномалияны визуалды түрде белгілеу; графикті түсіндіру кезінде түпкілікті кінәні талап етпеңіз. Шығару: Код + графикте не іздеу керек.
Әлсіз шақыру / Күшті шақыру
Әлсіз шақыру:
Осы деректермен модель құрастырыңыз.
Қай нысана, қай купе, қандай тексеру екені белгісіз; AI шифрланған, ағып тұрған, блоктан соқыр кодты шығара алады.
Күшті шақыру:
Рөл: Сіз Python ML тәлімгерісіз. Тапсырма: Тежегіш төсемінің тозуын болжау және валидация қателерін көрсету үшін бастапқы жұмыс процесін жазыңыз. Мәтінмән: Уақыт қатарларының телеметриясы; мақсатты: қалған төсем қалыңдығы. Шектеу: уақыт қатарын уақыт бойынша бөлу (араласусыз); деректердің ағып кету қаупі бар атрибуттарды белгілеу; құжат бірліктері;әрбір қадамды түсіндіру; Нәтиже өріске шықпас бұрын қандай тексерулер қажет екенін жазыңыз. Шығару: Түсініктеме берілген код + тексеруді тексеру парағы.
Жалпы қателер
- Кодты түсінбестен іске қосу. AI коды да ақаулы болуы мүмкін; Жолдан жол оқу.
- Уақыт қатарларын араластыру. shuffle=True болашақты ашады және жалған ұпай береді.
- Шектеуді соқыр түрде жойыңыз. Нақты сигналды (ақаулық басталуы) өшіруге болады.
- Бірлікті құжаттамау. Км/сағ пен м/с, Вт және кВтсағ сияқты қателер үнсіз өседі.
- Сипаттама()/тексеру қадамын өткізіп жіберу. Көптеген қателер бірінші жиынтық статистикада пайда болады.
Қысқаша айтқанда
- Python (pandas, numpy, matplotlib, scikit-learn) - бұл автомобиль деректерін талдаудың іс жүзінде стандарты.
- Қайталанатын талдау: жүктеу, тексеру, тазалау, ерекшелік, талдау, тексеру және есеп беру.
- AI шығаратын кодты түсіну және тексеру қажет; Оның жұмыс істеуі оның дұрыс екенін білдірмейді.
- Уақыт қатарларында өткен/болашақ арасындағы айырмашылықты сақтау; Кездейсоқ араластыру деректердің ағып кетуін тудырады.
- Бірлік үйлесімділігі мен шектен тыс интерпретация үнсіз, бірақ тексерудің маңызды нүктелері болып табылады.
Қолданбалы тапсырма
Шағын деректер жинағын алыңыз (нақты немесе синтетикалық телеметрия). (1) Алты қадамдық құрылымнан кейін 1-үлгі арқылы жүктеу және басқару кодын жасаңыз және әрбір жолды түсінгеніңізді растаңыз. (2) describe() шығысында кем дегенде бір күдікті мәнді тауып, себебін зерттеңіз. (3) Болжау тапсырмасында жаттығу/сынақ бөлу уақытын белгілеңіз және 2-үлгі арқылы ағып кету қаупін тексеріңіз. (4) Сөздікте пайдаланатын әрбір бағанның бірлігін құжаттаңыз.
бақылау парағы
- [ ] Мен талдауды алты қадамдық құрылыммен орнаттым.
- [ ] Мен AI жасаған кодты жол-жол оқып, түсіндім.
- [ ] Мен describe()/audit арқылы күдікті мәндерді іздедім.
- [ ] Уақыт қатарын уақыт бойынша бөлемін (араластырусыз).
- [ ] Деректер ағып кету қаупі бар атрибуттарды белгіледім.
- [ ] Мен әр бағанның бірлігін құжаттап, түрлендірулерді анық жаздым.