Јединица 9 / 11

Анализа аутомобилских података са Питхон-ом: од краја до краја

Добици:

  • Способност успостављања поновљивог тока рада анализе који учитава и чисти податке о телеметрији, тестирању и производњи помоћу панда
  • Способност разумевања и верификације излаза ред по ред док добијате код, атрибуте и помоћ у визуелизацији од вештачке интелигенције
  • Способност ревизије резултата анализе за конзистентност јединице, цурење података и поновљивост

У претходним јединицама користили смо вештачку интелигенцију као „саветник”. У овој јединици идемо корак даље и успостављамо ток посла који анализира аутомобилске податке сопственим рукама, користећи Питхон. Циљ није да вас учинимо програмером софтвера; Треба направити инжењера који може да разуме и верификује тај код ред по ред док добија помоћ код АИ. Зато што код који производи АИ може бити неисправан, баш као и текст који производи АИ; може збунити запремину, податке о цурењу, погрешну колону у средини. Покретање кода без разумевања је као објављивање непотписаног извештаја.

Зашто Питхон? Зато што је то де факто стандард у анализи података: можете лако да обрађујете податке телеметрије, тестирања и производње помоћу пандас (табеларни подаци), нумпи (нумеричка обрада), матплотлиб (графикон) и сцикит-леарн (машинско учење) библиотека.

Шест корака до поновљиве анализе

Чврста анализа увек прати исти оквир:

  1. Учитавање: Читање података из датотеке.
  2. Прегледајте: димензије, колоне, типове података, вредности које недостају.
  3. Чисто: Недостаје/изузетак, јединица, исправка временске ознаке.
  4. Издвој карактеристика: Изведите значајне варијабле.
  5. Анализа/модел: статистика, визуелизација или модел.
  6. Провери и пријави: обезбеђивање резултата, провера запремине/цурења, снимање.
Савет: Када од АИ тражите код, реците „коментаришите шта радите на сваком кораку и напишите своје претпоставке“. Тако да можете да проверите код док га читате.

Корак по корак пример: телеметријска анализа

Следећи код учитава ЦАН/телеметријски запис и врши основну проверу. (Напомена: уверите се да разумете кодове пре него што их покренете; називи колона се разликују у зависности од ваших података.)

импорт пандас као пд# 1) Учитај: полутачкасти ЦСВ, прва колона тиместампдф = пд.реад_цсв("телеметри.цсв", парсе_датес=["тиме"])# 2) Цхецкпринт(дф.схапе) # колико редова, колико колонапринт(дф.дтипес) # типова сваке колоне(дф.дтипес)(дум) # број недостајућих вредности по отиску колоне(дф.десцрибе()) # резиме статистике: мин, максимум, просек

Десцрибе() излаз је ваша прва прилика да проверите: ако је максимална вредност брзине мотора 45.000 о/мин (типични путнички мотор ~7.000 о/мин), постоји грешка у јединици или сензору.

Најчешће коришћене пандас команде у кораку ревизије и шта оне раде:

команда

Шта ради

Шта то потврђује?

дф.схапе

Број редова/колона

Да ли је то очекивана величина?

дф.дтипес

Врсте колона

Да ли је колона са бројевима постала текст?

дф.исна().сум()

Недостаје број вредности

Колико има простора?

дф.десцрибе()

Мин/мак/просек

Да ли је то физички разумно?

дф.дуплицатед().сум()

дупликат реда

Да ли постоји двострука регистрација?

# 3) Јасно: означите физички немогуће вредности

Опрез: Немојте одмах брисати излаз; Прво схватите зашто је то изванредно. Да ли је то стварни догађај (изненадно загревање) или квар сензора? Слепо брисање може сакрити праву грешку.

# 4) Издвојена карактеристика: брзина пораста температуре (деривација)дф = дф.сорт_валуес("време")дф["сиц_инцреасе_спеед"] = дф["мотор_сиц"].дифф() / дф["тиме"].дифф().дт.тотал_сецондс()# 5) Једноставна визуализација као лиимпорт. плтплт.плот(дф["време"], дф["мотор_сиц"])плт.клабел("Време"); плт.илабел("Температура мотора (Ц)")плт.титле("Ток температуре мотора")плт.схов()

Спречавање цурења података у Питхон-у

Најопаснија грешка при изградњи модела предвиђања је цурење података (јединица 5): када модел види информације које не могу бити познате у тренутку предвиђања. Златно правило да се ово избегне у временским серијама: тренирајте са прошлошћу, тестирајте са будућношћу - без насумичних мешања.

фром склеарн.модел_селецтион импорт траин_тест_сплит# ФАЛСЕ: насумично цепање временске серије пропушта будућност# дф[дф["тиме"] > тхресхолд] # последњих 20% будућности

Опрез: траин_тест_сплит подразумевано меша податке (схуффле=Труе). У временској серији, ово збуњује будућност са образовањем и производи лажни висок резултат. Ако је АИ то урадио у коду који производи, обавезно то поправите.

Конзистентност јединице: тихи убица

Најподмуклије грешке у аутомобилској индустрији су јединичне грешке: км/х до м/с, Нм до лб-фт, бар до кПа, °Ц до К. Вођење речника о томе која је јединица сваке колоне у анализи и записивање конверзија јасно спашава животе.

# Експлицитно документујте јединице = {"спеед": "км/х", "мотор_сиц": "Ц", "прессуре": "бар"}# Експлицитна конверзија ако је потребно (км/х -> м/с)дф["спеед_мс"] = дф["спеед"] / 3.6

Мини студије случаја

Случај 1 - Грешка ухваћена са десцрибе(). Аналитичар покреће код из АИ и прави процену опсега; Резултат је апсурдно висок. Када погледамо десцрибе() излаз, видимо да је капацитет батерије унесен у Вх у неким редовима и у кВх у другим (разлика 1000 пута). Када се јединица доведе до униформног типа, резултат се побољшава. Закључак: Једноставна збирна статистика спречила је лоше предвиђање.

Случај 2 - Замка забуне. Модел хабања кочница стажиста био је 98% тачан на тест сету. Када се код испита, може се видети да су траин_тест_сплит(схуффле=Труе) и временске серије помешане, што значи да будуће тачке пропуштају у обуку. Када се подели са временом, тачност пада на 80%, али је сада реална. Закључак: Само зато што је АИ код радио, није био у реду; Човек је ухватио цурење.

Случај 3 – Разумевање одступања. У запису о издржљивости, АИ код аутоматски брише ванредне вредности деформације. Инжењер гледа на избрисане тачке; Управо су то били тренуци покретања крековања за које је тест био заинтересован. Брисање се уклања и кршења се узимају у посебан преглед. Резултат: Под "Чишћење" прави сигнал се може избрисати; доводи у питање сваки корак.

брзи шаблони

Шаблон 1 – Шифра захтева (са објашњењем):

Улога: Ви сте ментор Питхон аналитичара података. Задатак: Напишите код који учитава и проверава телеметрију ЦСВ. Контекст: Колоне: време, брзина (км/х), енгине_сиц(Ц), револуција (рпм). Ограничење: Коментирајте сваки ред; Објасните која је провера извршена и зашто; додати физички немогућу проверу вредности; тихо брисање ништа. Излаз: Коментирани код + који излаз треба да погледам и зашто.

Шаблон 2 – Инспекција цурења:

Улога: Ви сте рецензент кода за машинско учење. Задатак: Проверите да ли у следећем коду за обуку/тестирање нема цурења података. Контекст: Ово је временска серија (телеметрија возила). Ограничење: Упозорава ако постоји насумично мешање; Предложите и оправдајте раздвајање по времену. Исход: Налази + исправљени код + објашњење.

Шаблон 3 – Валидација јединице:

Улога: Ви сте ревизор квалитета података. Задатак: Предложите провере које траже недоследност јединице у оквиру ДатаФраме. Контекст: Капацитет може бити кВх у неким редовима и Вх у другим. Излаз: Проверите код + како пронаћи сумњив образац.

Шаблон 4 – Визуелизација + коментар:

Улога: Ви сте стручњак за визуелизацију података. Задатак: Напишите код који приказује ток температуре мотора и брзину повећања. Ограничење: Означите осе јединицом; визуелно означити аномалију; не захтевајте дефинитивну грешку приликом тумачења графикона. Излаз: Шифра + шта треба тражити на графикону.

Слаби промпт / Јаки промпт

Слабо обавештење:

Направите модел са овим подацима.

Није јасно која мета, који одељак, која верификација; АИ може да емитује кодиран, цурење, јединични слепи код.

Снажан упит:

Улога: Ви сте Питхон МЛ ментор. Задатак: Напишите почетни ток рада за предвиђање трошења кочионих плочица и демонстрирање замки при валидацији. Контекст: телеметрија временских серија; циљ: преостала дебљина подлоге. Ограничење: Подели временске серије по времену (без мешања); атрибути заставице у опасности од цурења података; документ јединице; протумачити сваки корак; Запишите које провере су потребне пре него што резултат изађе на терен. Излаз: Коментирани код + контролна листа за верификацију.

Уобичајене грешке

  • Покретање кода без разумевања. АИ код такође може бити неисправан; Читајте ред по ред.
  • Мешање временских серија. схуффле=Труе пропушта будућност и производи лажни резултат.
  • Слепо избришите одступницу. Стварни сигнал (настанак грешке) може се обрисати.
  • Не документује јединицу. Грешке као што су км/х наспрам м/с, Вх вс кВх расту тихо.
  • Прескакање корака десцрибе()/цхецк. Већина грешака се појављује у првој збирној статистици.

Укратко

  • Питхон (пандас, нумпи, матплотлиб, сцикит-леарн) је де факто стандард анализе аутомобилских података.
  • Поновљива анализа: учитавање, преглед, чишћење, функција, анализа, валидација и извештај.
  • Императив је разумети и верификовати код који АИ производи ред по ред; Само зато што функционише не значи да је исправно.
  • Одржавати разлику између прошлости и будућности у временским серијама; Насумично мешање ствара цурење података.
  • Конзистентност јединица и интерпретација ван граница су нечујне, али критичне тачке верификације.

Задатак апликације

Узмите мали скуп података (стварна или синтетичка телеметрија). (1) Пратећи оквир од шест корака, генеришите код за учитавање и контролу помоћу шаблона 1 и потврдите да разумете сваки ред. (2) Пронађите најмање једну сумњиву вредност у десцрибе() излазу и истражите зашто. (3) У задатку предвиђања, одредите време поделе обуке/тестирања и проверите ризик од цурења помоћу шаблона 2. (4) Документујте јединицу сваке колоне коју користите у речнику.

контролна листа

  • [ ] Поставио сам анализу са оквиром од шест корака.
  • [ ] Прочитао сам и разумео код који производи АИ ред по ред.
  • [ ] Тражио сам сумњиве вредности помоћу десцрибе()/аудит.
  • [ ] Поделио сам временску серију по времену (без мешања).
  • [ ] Означио сам атрибуте који су у опасности од цурења података.
  • [ ] Документовао сам јединицу сваке колоне и експлицитно написао конверзије.