бирдиги 9 / 11

Python менен унаа маалыматтарын талдоо: аягына чейин

Пайдалар:

  • Пандалар менен телеметрия, сыноо жана өндүрүш маалыматтарын жүктөгөн жана тазалаган кайталануучу талдоо иш процессин түзүү мүмкүнчүлүгү
  • Жасалма интеллекттен кодду, атрибуттарды жана визуализациялык жардамды алууда чыгаруу линиясын сап боюнча түшүнүү жана текшерүү мүмкүнчүлүгү
  • Бирдиктин ырааттуулугу, маалыматтардын агып чыгышы жана кайталанышы үчүн талдоо натыйжаларын текшерүү мүмкүнчүлүгү

Мурунку бөлүмдөрдө биз жасалма интеллектти “кеңешчи” сыяктуу колдончубуз. Бул бөлүмдө биз бир кадам алдыга жылып, Python аркылуу өз колубуз менен унаа маалыматтарын талдоочу иш процессин түзөбүз. Максат сизди программалык камсыздоону иштеп чыгуучу кылуу эмес; Бул AIдан коддун жардамын алып жатып, ошол кодду саптан сап түшүнө жана текшере ала турган инженер кылуу. Анткени AI тарабынан иштелип чыккан код, AI тарабынан чыгарылган текст сыяктуу, ката болушу мүмкүн; көлөмүн чаташтырышы мүмкүн, маалыматтардын агып чыгышы, туура эмес тилкени борборлошуусу мүмкүн. Кодду түшүнбөстөн иштетүү кол коюлбаган отчетту жарыялоого окшош.

Python эмне үчүн? Анткени ал маалыматтарды талдоодо де-факто стандарты болуп саналат: сиз пандалар (таблица маалыматтары), numpy (сандык иштетүү), matplotlib (сюжет) жана scikit-learn (машина үйрөнүү) китепканалары менен телеметрия, тест жана өндүрүш маалыматтарын оңой иштете аласыз.

Репродуктивдүү талдоо үчүн алты кадам

Катуу талдоо ар дайым ошол эле алкакты ээрчийт:

  1. Жүктөө: Файлдан маалыматтарды окуу.
  2. Текшерүү: Өлчөм, мамычалар, маалымат түрлөрү, жетишпеген маанилер.
  3. Таза: Жок/чыгуучу, бирдик, убакыт белгисин оңдоо.
  4. Чыгаруу өзгөчөлүгү: Маанилүү өзгөрмөлөрдү чыгарыңыз.
  5. Анализ/модел: Статистика, визуализация же модель.
  6. Текшерүү жана отчет: Натыйжаларды камсыз кылуу, көлөмдү / агып чыгууну текшерүү, жазуу.
Кеңеш: AIдан код сурап жатканда, "ар бир кадамда эмне кылып жатканыңызды комментарийлеп, өз божомолдоруңузду жазыңыз" деп айтыңыз. Ошентип, сиз кодду окуп жатканда текшере аласыз.

Этап-этабы менен мисал: телеметриялык анализ

Төмөнкү код CAN/телеметрия жазуусун жүктөйт жана негизги текшерүүнү жүргүзөт. (Эскертүү: коддорду иштетүүдөн мурун түшүнгөнүңүздү текшериңиз; тилке аттары сиздин маалыматтарыңызга жараша өзгөрөт.)

пандаларды pd# катары импорттоо 1) Жүктөө: жарым чекиттүү CSV, биринчи тилке timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # канча сап, канча мамыча басып чыгаруу (df.dtypes) # ар бир мамычанын саны же түрү text)print(df.isna().sum()) # ар бир мамычадагы жетишпеген маанилердин саны(df.describe()) # Жыйынтык статистика: мин, максимум, орточо

describe() чыгаруусу текшерүү үчүн биринчи мүмкүнчүлүк: эгерде кыймылдаткычтын максималдуу ылдамдыгы 45 000 айн/мин болсо (адатта жүргүнчү кыймылдаткычы ~ 7 000 айн/мин), бирдик же сенсор катасы бар.

Аудит кадамында эң көп колдонулган панда буйруктары жана алар эмне кылышат:

буйрук

Эмне кылат

Ал эмнени тастыктайт?

df.shape

Катарлардын/мамычалардын саны

Бул күтүлгөн өлчөмдөбү?

df.dtypes

Мамыча түрлөрү

Сан тилкеси текст болуп калдыбы?

df.isna().sum()

Мааниси жок

Канча орун бар?

df.describe()

Мин/макс/орто

Бул физикалык жактан акылга сыярлыкпы?

df.duplicated().sum()

кайталануучу катар

Кош каттоо барбы?

№ 3) Таза: физикалык жактан мүмкүн эмес баалуулуктарды белгилеңиз

Эскертүү: Чектөөлөрдү дароо жок кылбаңыз; Биринчиден, бул эмне үчүн чектен чыккандыгын түшүнүңүз. Бул чыныгы окуябы (капысынан ысытуу) же сенсор иштебей калдыбы? Сокур жок кылуу чыныгы катаны жашырышы мүмкүн.

№ 4) Чыгаруу өзгөчөлүгү: температуранын жогорулашынын ылдамдыгы (туунду) df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) Жөнөкөй визуализация. pltplt.plot(df["time"], df["motor_sic"])plt.xlabel("Убакыт"); plt.ylabel("Кыймылдаткычтын температурасы (C)")plt.title("Кыймылдаткычтын температурасынын курсу")plt.show()

Pythonдо маалыматтардын агып кетишин алдын алуу

Божомолдоо моделин курууда эң коркунучтуу жаңылыштык - маалыматтардын агып кетиши (5-бирдик): модель болжолдоо учурунда белгилүү болбогон маалыматты көргөндө. Убакыт сериясында муну болтурбоо үчүн алтын эреже: өткөн менен машыгуу, келечек менен сыноо — туш келди аралаштыруу жок.

from sklearn.model_selection import train_test_split# ЖАЛГАН: убакыт сериясын туш келди бөлүү келечекти ачат# df[df["time"] > босого] # акыркы 20% келечек

Эскертүү: train_test_split демейки боюнча дайындарды аралаштырат (shuffle=True). Убакыт сериясында бул келечекти билим берүү менен чаташтырат жана жалган жогорку баллды жаратат. Эгерде AI өзү чыгарган коддо муну жасаган болсо, аны оңдоону унутпаңыз.

Биримдик ырааттуулугу: үнсүз өлтүргүч

Унаадагы эң тымызын каталар бул бирдик каталары: км/сааттан м/с, Нмден lb-ft, бардан кПа, °Cдан К. Талдоодо ар бир тилкенин бирдиги кандай сөздүктү сактоо жана конверсияларды жазуу өмүрдү сактап калат.

# Бирдиктерди ачык түрдө документтештирүү = {"speed": "km/h", "motor_sic": "C", "pressure": "bar"}# Зарыл болсо ачык конвертациялоо (км/с -> м/с)df["speed_ms"] = df["speed"] / 3.6

Мини кейс изилдөөлөр

1-жагдай - describe() менен табылган ката. Аналитик AIдан кодду иштетет жана диапазонду болжолдойт; Натыйжа абсурддуу жогору. describe() чыгарууну караганыбызда, батарейканын кубаттуулугу кээ бир саптарда Wh менен, башкаларында кВтсаат менен (1000 эсе айырма) киргизилгенин көрөбүз. Агрегатты бир калыпка келтиргенде, натыйжа жакшырат. Жыйынтык: Жөнөкөй кыскача статистика жаман божомолду алдын алды.

2-жагдай - Баш аламандык капкан. Интерндин тормозунун эскирүү модели сыноо топтомунда 98% так болгон. Код текшерилгенде train_test_split(shuffle=True) менен убакыт катарлары аралашып кеткенин көрүүгө болот, демек келечектеги пункттар тренингге агып кетет. Убакыт боюнча бөлгөндө, тактык 80% га чейин төмөндөйт, бирок азыр реалдуу. Жыйынтык: AI коду иштегендиктен, бул туура эмес болгон; Адам агып кеткенди кармады.

3-жагдай - Чектөөлөрдү түшүнүү. Узак мөөнөттүүлүк жазуусунда AI коду автоматтык түрдө ашкере штаммдын маанилерин жок кылат. Инженер өчүрүлгөн пункттарды карайт; Дал ушул сынды кызыктырган жаракаларды баштоо учурлары болгон. Жоюу алынып салынат жана бузуулар өзүнчө кароого алынат. Натыйжа: "Тазалоо" астында чыныгы сигнал жок кылынышы мүмкүн; ар кадам сайын суроо.

тез шаблондор

Калып 1 - Сурамдын коду (түшүндүрүү менен):

Рол: Сиз Python маалымат аналитигинин устатысыз. Тапшырма: CSV телеметриясын жүктөөчү жана текшерүүчү кодду жазыңыз. Контекст: Мамычалар: убакыт, ылдамдык (км/саат), кыймылдаткыч_сик (C), айлануу (айн/мин). Чектөө: Ар бир катарга комментарий бериңиз; Кайсы текшерүү жана эмне үчүн жасалганын түшүндүрүү; физикалык мүмкүн эмес нарк текшерүү кошуу; унчукпай эч нерсени жок кылуу.Output: Комментарийленген код + мен кайсыл чыгарууну карап чыгышым керек жана эмне үчүн.

Калып 2 - агып чыгууну текшерүү:

Рол: Сиз машинаны үйрөнүү кодун карап чыгуучусуз. Тапшырма: Төмөнкү окуу/сыноо бөлүү кодун маалыматтардын агып кетишин текшериңиз. Контекст: Бул убакыт сериясы (унаа телеметриясы). Чектөө: Кокус аралаштыруу болсо эскертиңиз; Убакыт боюнча бөлүүнү сунуштаңыз жана негиздеңиз. Жыйынтык: Жыйынтыктар + оңдолгон код + түшүндүрмө.

Үлгү 3 - Бирдикти текшерүү:

Рол: Сиз берилиштердин сапаты аудиторусуз. Тапшырма: DataFrame. Контекст: Кубаттуулугу кээ бир саптарда кВт/са, башкаларында Wh болушу мүмкүн. Чыгуу: Кодду текшерүү + шектүү үлгүнү кантип табуу керек.

Калып 4 - Визуализация + комментарий:

Рол: Сиз маалыматтарды визуалдаштыруу боюнча адиссиз. Тапшырма: кыймылдаткычтын температурасынын курсун жана өсүү ылдамдыгын түзгөн кодду жазыңыз. Чектөө: Бирдик менен окторду белгилөө; аномалияны визуалдык белгилөө; графикти чечмелөөдө биротоло күнөө талап кылбаңыз. Чыгуу: Код + графиктен эмнени издөө керек.

Алсыз тездик / Күчтүү тездик

Алсыз билдирүү:

Бул маалыматтар менен моделди түзүңүз.

Кайсы бутага, кайсы купеге, кайсы текшерүүгө алынганы белгисиз; AI шифрленген, агып кеткен, бирдик сокур кодду чыгара алат.

Күчтүү билдирүү:

Рол: Сиз Python ML насаатчысысыз. Тапшырма: Тормоздук аянтчанын эскиришин алдын ала айтуу жана валидациядагы каталарды көрсөтүү үчүн баштапкы иш процессин жазыңыз. Контекст: Убакыт сериясынын телеметриясы; максаттуу: калган калыңдыгы.Чектөө: Убакыт сериясын убакыт боюнча бөлүү (аралаштыруу жок); маалыматтардын агып кетүү коркунучу бар атрибуттарды белгилөө; документ бирдиктери;ар бир кадамды чечмелөө; Натыйжа талаага чыга электе кандай текшерүүлөр талап кылынарын жазыңыз. Чыгуу: Комментарийленген код + текшерүү текшерүү тизмеси.

Жалпы каталар

  • Кодду түшүнбөстөн иштетүү. AI коду да туура эмес болушу мүмкүн; Саптан сап оку.
  • Убакыт сериясын аралаштыруу. shuffle=True келечекти ачат жана жасалма упай чыгарат.
  • Сырткы көрсөткүчтү сокур түрдө жок кылуу. Чыныгы сигналды (кемчиликтин башталышы) тазалоого болот.
  • Бирдикти документтештирүү эмес. Км/саат vs м/с, Вт vs кВт сыяктуу каталар унчукпай өсөт.
  • Description()/текшерүү кадамын өткөрүп жиберүү. Көпчүлүк каталар биринчи жыйынтыктоочу статистикада пайда болот.

Кыскача айтканда

  • Python (pandas, numpy, matplotlib, scikit-learn) - бул автомобиль маалыматтарын анализдөөнүн де-факто стандарты.
  • Кайталануучу анализ: жүктөө, текшерүү, тазалоо, өзгөчөлүк, талдоо, текшерүү жана отчет берүү.
  • AI саптан сап чыгарган кодду түшүнүү жана текшерүү зарыл; Иштеп жатканы бул туура дегенди билдирбейт.
  • Убакыт катарындагы өткөн/келечектеги айырмачылыкты сактоо; Кокус аралаштыруу маалыматтардын агып кетишин жаратат.
  • Бирдиктин ырааттуулугу жана четтөөчү интерпретация үнсүз, бирок текшерүүнүн критикалык пункттары.

Колдонмо тапшырмасы

Чакан маалымат топтомун алыңыз (чыныгы же синтетикалык телеметрия). (1) Алты кадамдуу алкактан кийин, 1 шаблон менен жүктөө жана башкаруу кодун түзүңүз жана ар бир сапты түшүнгөнүңүздү ырастаңыз. (2) describe() чыгаруусунда жок дегенде бир шектүү маанини табыңыз жана анын себебин изилдеңиз. (3) Божомолдоо тапшырмасында машыгуу/сыноо убактысын бөлүңүз жана 2-үлгү менен агып кетүү коркунучун текшериңиз. (4) Сөздүктө колдонгон ар бир тилкенин бирдигин документтештириңиз.

текшерүү тизмеси

  • [ ] Мен анализди алты кадамдуу негиз менен койдум.
  • [ ] Мен AI тарабынан чыгарылган кодду саптан сап окуп, түшүндүм.
  • [ ] Мен describe()/audit менен шектүү маанилерди издедим.
  • [ ] Убакыт катарларын убакыт боюнча бөлөм (аралаштыруу жок).
  • [ ] Мен маалымат агып кетүү коркунучу бар атрибуттарды белгиледим.
  • [ ] Мен ар бир тилкенин бирдигин документтештирип, конверсияларды ачык жаздым.