единици
1. Въведение в изкуствения интелект в науката за данните и анализа: работен процес, роли, граници, валидиране и етика 2. Събиране на данни и разбиране на източника: схема, вземане на проби, качество и информираност за течове 3. Почистване и предварителна обработка на данни: Липсваща стойност, отклонение и преобразуване на типа 4. Проучвателен анализ на данни (EDA): Разпределения, връзки и първоначални прозрения 5. Инженеринг на функции: Генериране на варианти, кодиране, мащабиране и избягване на изтичане 6. Изграждане на модел: дефиниране на проблем, избор на алгоритъм и разделяне на обучение/тест 7. Оценка на модела: показатели, кръстосано валидиране и екстремно обучение 8. Визуализация и разказване на истории: точни графики, честни графики 9. Генериране на код: AI-подпомогнат анализ с Python (pandas) и SQL 10. Изтичане на данни и възпроизводимост: тихи бедствия и дисциплина 11. Фондация MLOps, етика, поверителност и отговорен анализ
единица 9 / 11

Генериране на код: AI-подпомогнат анализ с Python (pandas) и SQL

Печалби:

  • Възможност за вземане на стабилен SQL и пандас код и четене и проверка ред по ред чрез даване на ясна схема и цел на изкуствения интелект
  • Възможност за улавяне на тихи грешки като брой на редове, функция за напасване и пропускателна способност след сливане/СЪЕДИНЯВАНЕ
  • Възможност за разрешаване на проблема при отстраняване на грешки, без да го заглушавате и избягване на стартиране на кода, без да го тествате в производствената среда

Data science има два основни езика: SQL (Structured Query Language — езикът за запитване на данни от бази данни) и Python (по-специално библиотеката pandas — стандартният инструмент за програмно манипулиране на таблици). В този модул ще се научим да използваме AI като кодов партньор: получаване на солиден SQL и pandas код от него с правилните въпроси, четене и валидиране на този код, отстраняване на грешки и никога не го изпълнявайте на сляпо. AI пише повтарящ се код за секунди вместо за минути; Но вашата работа е да се уверите, че кодът, който произвежда, обработва правилната колона с правилната логика. Работен код не означава правилен код.

Защо създаването на код с AI е мощно, но рисковано

AI предоставя три големи предимства при генерирането на код: скорост (записва 30-редова операция групиране по ос за секунди), напомняне (напомня ви за функция на pandas, която сте забравили) и обучение (обяснява кода ред по ред). Но носи три риска: тиха логическа грешка (код, който сумира грешната колона, се изпълнява без грешки), монтирана функция (предлага метод, който не съществува) и прихващане на доходността (код, който работи с малки данни, но се срива при 10 милиона реда). Така че златното правило: Прочетете кода на AI, сякаш сте го написали сами. Не пускайте репликата, която не разбирате.

SQL: обработва данни при източника

SQL ви позволява да извличате данни от базата данни и да ги обработвате там; Можете да обобщите милиони редове, без да ги изтегляте в Python. Основни градивни елементи: SELECT (кои колони), WHERE (кои редове), GROUP BY (групиране и обобщаване), JOIN (съединяване на таблици), HAVING (филтър след групиране). AI е много полезен при писането на сложни JOIN и прозоречни функции, но не забравяйте да проверите две неща: дали JOIN чрез правилния ключ (грешният ключ дублира редове) и правилна ли е логиката на филтъра (особено NULL поведение и диапазони от дати).

Внимание: Не изпълнявайте генерирана от AI SQL заявка директно срещу производствената база данни. Тествайте първо с малко копие или ОГРАНИЧЕНИЕ. Никога не изпълнявайте заявка UPDATE/DELETE без валидиране на условието WHERE; Грешно WHERE може да изтрие цялата таблица.

Python/pandas: гъвкав анализ

pandas е стандартният начин за манипулиране на таблици (DataFrame) в Python. Най-ефективното използване на AI е да му се даде ясна схема и цел. Най-често използвани операции: филтър, групиране, сливане, обобщена таблица, прилагане. AI ги пише бързо; Това, което искате да проверите, е логиката: дали групирането е в правилната колона, дали сливането е променило неочаквано броя на редовете (винаги проверявайте броя на редовете след сливането), дали верижните операции променят оригинала.

сделка

SQL

панди

контролно-пропускателен пункт

Филтриране

КЪДЕ

df[df.x > 5]

NULL/NaN поведение

групиране

ГРУПИРАНЕ ПО

df.groupby()

Дясната колона ли е?

сливане

ПРИСЪЕДИНЕТЕ СЕ

df.merge()

Промяна в броя на редовете

Резюме

AVG(), SUM()

.mean(), .sum()

Коя колона е събрана

Сортирай по

ПОРЪЧАЙТЕ ПО

.sort_values()

Посока (възходящо/низходящо)

дедупликация

РАЗЛИЧЕН

.drop_duplicates()

В кои колони?

Отстраняване на грешки: с AI

Когато кодът се провали, AI е отличен партньор за отстраняване на грешки. Дайте му пълното съобщение за грешка и съответния кодов фрагмент. Но се пазете от два капана. Първо, AI може да предложи решение, което „заглушава“ грешката (напр. скриване на предупреждения) — това не коригира грешката, а я скрива. Второ, AI понякога тихо променя друго поведение, докато „решава“ проблем. Правило: разберете корекцията, разрешете без заглушаване и проверете дали изходът все още е правилен след корекцията.

Искате интерпретируем и поддържаем код

Когато купувате код от AI, поискайте код, който може да се чете и поддържа, а не просто код, който „работи“. Когато вие или ваш колега отворите този код месеци по-късно, той трябва да може да разбере какво прави. За да направите това, създайте си навик AI да включва три неща: смислени имена на променливи (orders_temiz, не df2), кратки редове за коментари при критични стъпки (обясняващи защо, а не какво се прави) и наименована константа вместо магическо число (ACCEPT_ESIGI = 0,85 вместо 0,85, заровено в кода). Също така избягвайте дълги едноредови вериги (свързващи пет действия в един ред); те затрудняват отстраняването на грешки. По подразбиране AI често създава кратък и „умен“ код; Ако ясно кажете „пишете четимо, интерпретируемо, поддържаемо“, ще получите много по-поддържащ се резултат. Това е и основата на възпроизводимостта (Единица 10): кодът, който не се разбира, е код, който не може да бъде повторно стартиран безопасно.

три мини калъфа

Случай 1 — JOIN репликация. Анализатор комбинира поръчките с продуктовата таблица и установи, че общият оборот е 3 пъти по-висок. Причина: всеки продукт имаше няколко реда (различни цветове) в продуктовата таблица; JOIN дублира всяка поръчка. Кодът на AI "работеше", но броят на редовете беше скочил от 240 хиляди на 690 хиляди. Урок: винаги проверявайте броя на редовете след сливане/JOIN.

Случай 2 — Фитинг функция. Той предложи AI df.groupby('x').summarize() на стажант; В pandas няма такъв метод (има .agg()). Кодът не работи, стажантът беше изгубен за 20 минути. Урок: проверете функция, която не разпознавате от документа; AI може да създава методи.

Случай 3 — Срив на доходността. Един код правеше запитване към базата данни в приложението за всеки ред; Работеше на 5000 реда, отне 9 часа на 4 милиона реда и спря. Когато AI предложи векторизирано (партидно) решение, времето беше намалено до 40 секунди. Урок: кодът, който работи с малки данни, може да се срине при големи данни; Помислете за ефективността.

Четири копируеми шаблона

1) Изискване на SQL със схема:

Вашата роля: SQL асистент (PostgreSQL). Таблици:- поръчки (идентификатор, клиент_идентификатор, клеймо за дата, числова сума)- клиенти (идентификатор, текст на града) Задача: Вземете общия оборот и броя на поръчките за град през 2024 г., сортирани по оборот в низходящ ред. Обяснете как се справяте с NULL градове. Първо ще тествам заявката с LIMIT; АКТУАЛИЗИРАНЕ/ИЗТРИВАНЕ на поколение.

2) процес на pandas с контролна точка:

Имам DataFrames df (поръчки) и df_customers (клиенти). Изчислете средната сума за град. ВАЖНО: отпечатайте броя на редовете преди и след сливането, за да мога да видя дали има дублиране. Обяснете в коя колона сте обединили и защо сте избрали inner/left.

3) Обяснение и проверка на кода:

Обяснете следния код на pandas ред по ред: какво прави всеки ред, какви предположения прави, в какви случаи може да даде грешни резултати? Уведомете ме, ако съм използвал функция за фъдж. Код: [поставете]

4) Отстраняване на грешки:

Този код дава тази грешка. Пълно съобщение за грешка: [поставяне]. Код: [паста]. Обяснете ОСНОВНАТА причина за грешката и я поправете. Поправете го, като действително разрешите проблема, а не като заглушите предупреждението. Също така посочете дали корекцията е променила изхода.

Слаба подкана / Силна подкана

Слаба подкана:

Напишете заявка, която ми дава продажби по град.

Имената на таблици, колони, тип база данни, поведение NULL са неясни. AI ​​е често срещан, вероятно ще създаде заявка, която не отговаря на вашата таблица.

Мощна подкана:

Вашата роля: SQL асистент (MySQL 8). Таблица: продажби (идентификатор, varchar за град, десетична сума, дата и дата). Задача: Получете общата и средна сума, брой поръчки за град за 2024 г.; Сортиране в намаляване по обща сума; Показване само на градове с повече от 100 поръчки (HAVING).NULL изключване на града. Обяснете запитването; Ще тествам с LIMIT.

Тук базата данни, схемата, филтърът, сортирането и правилото NULL са очевидни.

Често срещани грешки

  • Изпълнение на кода, без да го четете. Работният код не е правилен код; Кодът, който манипулира грешната колона, също се изпълнява без грешки.
  • Не се проверява броят на редовете след сливане/JOIN. Грешният ключ тихо дублира редове и увеличава общите стойности.
  • Не се проверява функцията за монтаж. AI може да предложи методи, които не съществуват; Потвърдете от документа, че не го разпознавате.
  • Без да мислим за ефективността. прилагане/циклична работа при малки сривове на данни на милиони редове; векторизирам.
  • Стартирайте директно в производствена база данни. Особено стартирането на UPDATE/DELETE без WHERE или тестване е катастрофално.
Съвет: Вземете навика да добавяте „линия за валидиране“ към всяка част от кода, която получавате от AI: брой редове преди и след обработката, няколко примерни реда и критична обща сума на ръка. Тези три проверки улавят повечето тихи логически грешки.

В обобщение

AI е мощен партньор, който бързо създава SQL и pandas код, но не е сляп авторитет. Дайте му ясно схемата и целта; Прочетете кода, който произвежда, сякаш сте го написали сами; Проверете броя на редовете, функциите за напасване и пропускателната способност след сливане/JOIN; Не го стартирайте, без да го тествате в производствената база данни. Когато отстранявате грешки, се стремете да разрешите проблема, а не да го заглушите. Кодът, който работи, не е правилният код; Само вие можете да гарантирате точност.

Задача за приложение

Изберете въпрос за анализ (напр. „месечен оборот на канал“) и поискайте код от AI както с SQL, така и с pandas. Прочетете и двата кода ред по ред, проверете броя на редовете след сливане/JOIN и проверете ръчно поне една критична сума. Сравнете дали двата кода дават същия резултат; Ако е различно, разберете защо.

контролен списък

  • [ ] Дал ли съм таблицата/схемата и целта ясно на AI?
  • [ ] Прочетох ли и разбрах ли кода, който създава ред по ред?
  • [ ] Проверих ли броя на редовете след сливане/СЪЕДИНЯВАНЕ?
  • [ ] Проверих ли функциите, които не разпознавам от документацията?
  • [ ] Тествах ли първо кода върху безопасни/малки данни, а не в производствената среда?