Единицы
1. Введение в искусственный интеллект в науке о данных и аналитике: рабочий процесс, роли, границы, проверка и этика 2. Сбор данных и понимание источников: схема, выборка, качество и осведомленность об утечках 3. Очистка и предварительная обработка данных: отсутствующее значение, выбросы и преобразование типов 4. Исследовательский анализ данных (EDA): распределения, взаимосвязи и первоначальные выводы 5. Разработка функций: создание вариантов, кодирование, масштабирование и предотвращение утечек 6. Построение модели: постановка задачи, выбор алгоритма и разделение обучения/тестирования 7. Оценка модели: метрики, перекрестная проверка и экстремальное обучение 8. Визуализация и рассказывание историй: точная графика, честная графика 9. Генерация кода: анализ с помощью искусственного интеллекта с помощью Python (Pandas) и SQL 10. Утечка данных и воспроизводимость: тихие катастрофы и дисциплина 11. Фонд MLOps, этика, конфиденциальность и ответственная аналитика
Единица 9 / 11

Генерация кода: анализ с помощью искусственного интеллекта с помощью Python (Pandas) и SQL

Прибыль:

  • Возможность взять надежный код SQL и pandas, прочитать и проверить его построчно, давая четкую схему и цель искусственному интеллекту.
  • Возможность обнаружить тихие ошибки, такие как количество строк, функция подгонки и пропускная способность после слияния/JOIN.
  • Возможность решить проблему в отладке, не отключая ее, и избежать запуска кода без его тестирования в производственной среде.

В науке о данных есть два основных языка: SQL (язык структурированных запросов — язык запроса данных из баз данных) и Python (в частности, библиотека pandas — стандартный инструмент для программного управления таблицами). В этом модуле мы научимся использовать ИИ в качестве партнера по коду: получать от него надежный код SQL и pandas с правильными вопросами, читать и проверять этот код, отлаживать его и никогда не запускать вслепую. ИИ пишет повторяющийся код за секунды, а не за минуты; Но ваша задача — убедиться, что создаваемый им код обрабатывает правильный столбец с правильной логикой. Рабочий код не означает правильный код.

Почему создание кода с помощью ИИ — это мощно, но рискованно

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

SQL: обработка данных в источнике

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

Внимание: не запускайте SQL-запрос, сгенерированный искусственным интеллектом, непосредственно к рабочей базе данных. Сначала протестируйте небольшую копию или LIMIT. Никогда не запускайте запрос UPDATE/DELETE без проверки условия WHERE; Неправильный WHERE может удалить всю таблицу.

Python/pandas: гибкий анализ

pandas — это стандартный способ управления таблицами (DataFrame) в Python. Наиболее эффективное использование ИИ — придать ему четкую схему и цель. Наиболее часто используемые операции: фильтр, группировка, слияние, сводная_таблица, применение. ИИ пишет это быстро; Что вы хотите проверить, так это логику: правильно ли выполнена группировка, не изменило ли слияние количество строк неожиданно (всегда проверяйте количество строк после слияния), изменяют ли операции цепочки оригинал.

транзакция

SQL

панды

контрольно-пропускной пункт

Фильтрация

ГДЕ

df[df.x > 5]

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

группировка

ГРУППИРОВАТЬ ПО

df.groupby()

Это правый столбец?

слить

ПРИСОЕДИНЯЙТЕСЬ

df.merge()

Изменение количества строк

Резюме

СРЕДН(), СУММ()

.mean(), .sum()

Какой столбец был собран

Сортировать по

ЗАКАЗАТЬ ПО

.sort_values()

Направление (восходящее/нисходящее)

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

ОТЛИЧНЫЙ

.drop_duplications()

В каких столбцах?

Отладка: с ИИ

Когда код дает сбой, ИИ становится отличным партнером по отладке. Предоставьте ему полное сообщение об ошибке и соответствующий фрагмент кода. Но остерегайтесь двух ловушек. Во-первых, ИИ может предложить решение, которое «заглушит» ошибку (например, скроет оповещения) — это не исправляет ошибку, а скрывает ее. Во-вторых, ИИ иногда молча меняет другое поведение, «решая» проблему. Правило: понять исправление, разрешить его, а не отключать звук, и убедиться, что выходные данные по-прежнему верны после исправления.

Хотите интерпретируемый и поддерживаемый код

Покупая код у ИИ, просите код, который можно читать и поддерживать, а не только код, который «работает». Когда вы или ваш коллега откроет этот код несколько месяцев спустя, он сможет понять, что он делает. Для этого возьмите за правило, чтобы ИИ включал три вещи: осмысленные имена переменных (orders_temiz, а не df2), короткие строки комментариев на критических шагах (объясняющие почему, а не что делается) и именованную константу вместо магического числа (ACCEPT_ESIGI = 0,85 вместо 0,85, запрятанного в коде). Также избегайте длинных однострочных цепочек (соединяющих пять действий в одной строке); это затрудняет отладку. По умолчанию ИИ часто создает краткий и «умный» код; Если вы четко скажете «пишите читабельно, интерпретируемо, поддерживаемо», вы получите гораздо более удобный результат. Это также основа воспроизводимости (раздел 10): непонятный код — это код, который нельзя безопасно повторно запустить.

три мини-кейса

Случай 1 — репликация JOIN. Аналитик совместил заказы с таблицей товаров и обнаружил, что общий оборот увеличился в 3 раза. Причина: каждый товар имел несколько строк (разных цветов) в таблице товаров; JOIN дублировал каждый заказ. Код ИИ «работал», но количество строк подскочило с 240 тысяч до 690 тысяч. Урок: всегда проверяйте количество строк после слияния/JOIN.

Случай 2. Подходящая функция. Он предложил стажеру AI df.groupby('x').summarize(); В пандах такого метода нет (есть .agg()). Код не сработал, стажер пропал на 20 минут. Урок: проверьте функцию, которую вы не узнаете из документа; ИИ может придумывать методы.

Случай 3 — Падение доходности. Один код запрашивал базу данных для каждой строки; Он работал на 5000 строк, занимал 9 часов на 4 миллионах строк и остановился. Когда ИИ предложил векторизованное (пакетное) решение, время сократилось до 40 секунд. Урок: код, работающий с небольшими данными, может дать сбой при работе с большими данными; Учитывайте эффективность.

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

1) Запрос SQL со схемой:

Ваша роль: Помощник по SQL (PostgreSQL). Таблицы: - заказы(id, customer_id, дата, временная метка, цифровая сумма) - клиенты(id, текст города) Задача: Получить общий оборот и количество заказов по городам в 2024 году, отсортированные по обороту в порядке убывания. Объясните, как вы обрабатываете NULL-города. Сначала я протестирую запрос с помощью LIMIT; Генерация UPDATE/DELETE.

2) процесс панд с контрольной точкой:

У меня есть DataFrames df (заказы) и df_customers (клиенты). Рассчитайте среднюю сумму по городу. ВАЖНО: напечатайте количество строк до и после слияния, чтобы я мог увидеть, есть ли дублирование. Объясните, в каком столбце вы объединили и почему выбрали внутренний/левый.

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

Объясните следующий код pandas построчно: что делает каждая строка, какие предположения она делает, в каких случаях она может давать неправильные результаты? Дайте мне знать, если я использовал функцию выдумки. Код: [вставить]

4) Отладка:

Этот код выдает эту ошибку. Полное сообщение об ошибке: [вставить]. Код: [вставить]. Объясните КОРНЕВУЮ причину ошибки и устраните ее. Исправьте это, фактически решив проблему, а не отключив предупреждение. Также укажите, изменило ли исправление выходные данные.

Слабая подсказка / Сильная подсказка

Слабая подсказка:

Напишите запрос, который даст мне данные о продажах по городам.

Имена таблиц, столбцов, тип базы данных, поведение NULL неясны. AI обычный, он, вероятно, выдаст запрос, который не соответствует вашей таблице.

Мощная подсказка:

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

Здесь база данных, схема, фильтр, сортировка и правило NULL очевидны.

Распространенные ошибки

  • Запускаем код, не читая его. Рабочий код не является правильным кодом; Код, который обрабатывает неправильный столбец, также выполняется без ошибок.
  • Не проверять количество строк после слияния/JOIN. Неправильный ключ автоматически дублирует строки и увеличивает итоговые значения.
  • Не проверка функции подгонки. ИИ может предлагать методы, которых не существует; Подтвердите из документа, что вы его не узнаете.
  • Не думая об эффективности. применять/циклически работать с небольшими сбоями данных в миллионах строк; векторизовать.
  • Запуск непосредственно в производственной базе данных. Особенно катастрофическим является выполнение UPDATE/DELETE без WHERE или тестирования.
Совет: выработайте привычку добавлять «строку проверки» к каждому фрагменту кода, который вы получаете от ИИ: количество строк до и после обработки, несколько строк-образцов и критический итог вручную. Эти три проверки выявляют большинство скрытых логических ошибок.

В заключение

ИИ — мощный партнер, который быстро создает код SQL и Pandas, но он не является слепым авторитетом. Четко дайте ему схему и цель; Прочтите код, который он создает, как если бы вы написали его сами; Проверьте количество строк, функции подгонки и пропускную способность после слияния/JOIN; Не запускайте его без тестирования в производственной базе данных. При отладке стремитесь решить проблему, а не замалчивать ее. Код, который работает, не является правильным; Только вы можете гарантировать точность.

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

Выберите вопрос для анализа (например, «месячный оборот на канал») и запросите код у ИИ с помощью SQL и Pandas. Прочтите оба кода построчно, проверьте количество строк после слияния/JOIN и вручную проверьте хотя бы одну критическую сумму. Сравните, дают ли два кода одинаковый результат; Если они разные, выясните, почему.

контрольный список

  • [ ] Have I given the table/schema and purpose clearly to the AI?
  • [ ] Прочитал ли я и понял ли я код, который он создавал построчно?
  • [ ] Did I check the number of lines after merge/JOIN?
  • [ ] Have I verified the functions I don't recognize from the documentation?
  • [ ] Протестировал ли я код сначала на безопасных/небольших данных, а не в производственной среде?