1. Инструментарий ML-инженера: NumPy, Pandas и визуализация данных
Инструментарий ML-инженера: NumPy, Pandas и визуализация данных
Добро пожаловать в курс «Machine Learning на Python: Интенсив для разработчиков». Вы уже владеете Python, умеете писать классы, функции и работать с API. Это отличное начало. Однако переход в Machine Learning (ML) требует смены парадигмы: от императивной обработки циклов к векторным вычислениям и статистическому анализу данных.
В этой первой статье мы не будем строить нейросети. Мы заложим фундамент. Любая модель машинного обучения — это, по сути, математическая функция, которая принимает на вход цифры (матрицы) и выдает цифры. Чтобы подготовить эти данные, нам нужен «Святой Грааль» Python Data Science стека: NumPy, Pandas и библиотеки визуализации (Matplotlib/Seaborn).
NumPy: Фундамент высокопроизводительных вычислений
Почему стандартных списков list в Python недостаточно? Представьте, что вам нужно умножить каждый элемент списка из миллиона чисел на 2. В чистом Python вы бы написали [x * 2 for x in data]. Это работает, но медленно, так как интерпретатор проверяет тип каждого элемента на каждой итерации.
NumPy (Numerical Python) решает эту проблему, вводя объект ndarray (n-dimensional array).
!Сравнение структуры памяти списка Python и массива NumPy
Векторизация и Broadcasting
Главная фишка NumPy — векторизация. Это способность выполнять операции над целыми массивами без явных циклов for. Это не просто синтаксический сахар, это использование инструкций процессора (SIMD) для параллельной обработки данных.
Второй важный концепт — Broadcasting (транслирование). NumPy умеет «растягивать» массивы меньшей размерности, чтобы они совпадали с большими массивами для арифметических операций.
Математика матриц
В ML мы постоянно работаем с матрицами. Одной из самых частых операций является скалярное произведение (Dot Product). Если у нас есть два вектора, их скалярное произведение вычисляется по формуле:
Где:
В NumPy это делается одной командой:
Pandas: Excel на стероидах
Если NumPy — это фундамент для математики, то Pandas — это инструмент для работы со структурированными табличными данными. Большинство датасетов в индустрии приходят в формате CSV, Excel или SQL-таблиц.
Pandas вводит две ключевые структуры данных:
Загрузка и анализ данных
Типичный процесс начала работы ML-инженера выглядит так:
Метод describe() автоматически вычисляет статистики для числовых колонок. Например, среднее значение (mean). Математически это выглядит так:
Где:
Фильтрация и манипуляции
Pandas позволяет фильтровать данные, используя логические условия, очень похожие на SQL, но в синтаксисе Python:
Визуализация данных: Matplotlib и Seaborn
Сухие цифры могут лгать. Квартет Анскомба — классический пример того, как четыре разных набора данных имеют одинаковые статистические характеристики (среднее, дисперсия), но выглядят совершенно по-разному на графике. Поэтому Exploratory Data Analysis (EDA) — разведочный анализ данных — обязательный этап.
Matplotlib
Это «дедушка» визуализации в Python. Он мощный, низкоуровневый и позволяет настроить каждый пиксель. Однако код может быть громоздким.
Seaborn
Это надстройка над Matplotlib, созданная специально для статистической визуализации. Она работает напрямую с Pandas DataFrame и делает красивые графики «из коробки».
!Пример визуализации Pairplot в Seaborn
Для ML-инженера критически важно смотреть на распределение данных (нормальное ли оно?) и корреляцию признаков (зависит ли целевая переменная от входных данных?).
Коэффициент корреляции Пирсона показывает линейную зависимость:
Где:
Если близок к 1, переменные растут вместе. Если к -1 — одна растет, другая падает. Если 0 — линейной связи нет.
Итог
Мы рассмотрели три кита, на которых стоит Python Data Science:
В следующей статье мы используем эти инструменты, чтобы построить нашу первую модель машинного обучения — линейную регрессию, и разберем библиотеку Scikit-learn.