Краткое введение в машинное обучение

YOUTUBE · 01.12.2025 08:23

Ключевые темы и таймкоды

Введение в машинное обучение

0:01
  • Дмитрий Сошников представляет краткую лекцию о машинном обучении.
  • Лекция предназначена для курсов по искусственному интеллекту.
  • Основные сведения для понимания разницы между классическим машинным обучением и нейросетями.

Искусственный интеллект и машинное обучение

0:28
  • Искусственный интеллект включает нисходящий и восходящий подходы.
  • Машинное обучение находится между этими подходами, основываясь на данных.
  • Пример: анализ покупок для предсказания будущих покупок.

Машинное обучение и классическое программирование

1:24
  • Машинное обучение противопоставляется классическому программированию.
  • В машинном обучении есть входные данные и ожидаемый результат.
  • Пример: предсказание следующей покупки на основе текущей корзины покупок.

Обучение моделей

2:22
  • Обучение модели включает подбор параметров для получения правдоподобных результатов.
  • Модель уточняется на основе данных для улучшения предсказаний.
  • Пример: линейная функция для предсказания вероятности следующей покупки.

Тестирование моделей

3:12
  • Тестирование моделей проводится на тестовых данных.
  • Модель обучается на обучающих данных и проверяется на тестовых.
  • Пример: анализ данных о пассажирах "Титаника" для предсказания вероятности выживания.

Анализ данных "Титаника"

4:11
  • Данные о пассажирах включают класс, пол, возраст и другие параметры.
  • Использование сводной таблицы для анализа вероятности выживания.
  • Пример: средняя вероятность выживания и зависимость от пола и класса.

Задачи машинного обучения

8:52
  • Машинное обучение решает задачи с учителем и без учителя.
  • Обучение с учителем включает регрессию и классификацию.
  • Обучение без учителя включает кластеризацию и обучение с подкреплением.

Примеры задач

9:48
  • Кластеризация: группировка данных по схожим характеристикам.
  • Обучение с подкреплением: обучение через симуляцию, например, игра в шахматы.

Пример предсказания стоимости билета на поезд

11:34
  • Задача регрессии: предсказать стоимость билета на основе расстояния между городами, класса поезда и времени в пути.
  • Целевое значение - цена билета, входные признаки - расстояние и класс поезда.
  • Обучающая выборка используется для обучения модели.

Построение графика зависимости цены от расстояния

12:31
  • Расстояние между городами - численный признак, класс поезда - категориальный.
  • Построение графика показывает, что с увеличением расстояния цена билета растет.
  • Проводим прямую линию через точки для аппроксимации цены.

Математическое описание модели и метод наименьших квадратов

13:31
  • Модель - прямая линия с уравнением y = a * x + b.
  • Ошибка модели - сумма квадратов расстояний от точек до прямой.
  • Метод наименьших квадратов используется для нахождения оптимальных параметров a и b.

Применение метода наименьших квадратов для многомерного случая

16:26
  • Для многомерного случая используется система линейных уравнений.
  • Пример с датасетом путешествий по Европе.
  • Разделение данных на обучающую и тестовую выборки.

Построение графика и линейная регрессия

18:36
  • Построение графика зависимости стоимости билета от расстояния.
  • Линейная регрессия - метод предсказания значений с помощью линейной функции.
  • Метод наименьших квадратов для нахождения коэффициентов a и b.

Оценка ошибки модели

21:07
  • Основные виды ошибки: средне-квадратичное отклонение MSE, средняя абсолютная ошибка MAE, процентная ошибка.
  • В нашем случае MAE равна 13 евро, процентная ошибка - 28%.
  • Модель показывает ошибки, но все же позволяет делать предсказания.

Метод наименьших квадратов и оптимизация

22:46
  • Метод наименьших квадратов находит точные значения коэффициентов для небольшой размерности.
  • Для больших размерностей и сложных функций ошибки используются оптимизационные методы.
  • Модель зависит от входного датасета и параметров тета, которые подстраиваются для минимизации ошибки.

Метод градиентного спуска

23:40
  • Метод градиентного спуска минимизирует ошибку в трехмерном пространстве параметров а и б.
  • Градиент ошибки вычисляется в зависимости от параметров и указывает направление к минимуму.
  • Шаги в направлении градиента постепенно приближают параметры к оптимальным значениям.

Математическое описание метода градиентного спуска

25:34
  • Начальные значения параметров тета присваиваются случайным образом.
  • На каждом шаге параметры подстраиваются с учетом производной ошибки.
  • Метод градиентного спуска работает до тех пор, пока параметры не достигнут оптимальных значений.

Практическое применение метода градиентного спуска

26:33
  • Пример с параметрами а и б, которые подстраиваются по формуле.
  • Ошибка увеличивается при неправильном выборе шага обучения.
  • Подбор шага обучения опытным путем позволяет достичь минимальной ошибки.

Добавление новых параметров

28:47
  • Добавление параметров длительность поездки и время отправления.
  • Векторное представление параметров и изменение формулы.
  • Ошибка снижается, но прирост точности незначителен.

Категориальные признаки

32:34
  • Категориальные признаки делятся на порядковые и номинальные.
  • Порядковые признаки могут быть закодированы числами.
  • Номинальные признаки требуют специального подхода для кодирования, например, ван хо ин кодинг.

Ван-хо инкодирование

34:59
  • Категориальные данные, такие как цвет автомобиля, кодируются вектором из нулей и единиц.
  • Для линейной регрессии числовые значения не требуют преобразования, а категориальные можно кодировать.
  • В некоторых алгоритмах непрерывные значения нужно дискретизировать.

Дискретизация непрерывных значений

35:59
  • Пример: возраст человека разбивается на категории молодой, пожилой, старый и т.д.
  • Непрерывное значение заменяется набором дискретных величин и интерпретируется как порядковый признак.

Пример с тарифами

36:21
  • Рассматривается колонка "фр" с тарифами "промо плюс", "флекси был" и "адулто и да".
  • Среднее значение по каждому тарифу показывает, что "адулто и да" самый дешевый, "промо плюс" дороже, "флекси был" самый дорогой.

Ван-хо инкодирование для тарифов

37:30
  • Используется ван-хо инкодирование для кодирования тарифов.
  • Функция "гет дамес" создает таблицу с векторами из нулей и единиц для каждого тарифа.
  • Модель становится интерпретируемой, показывая влияние каждого тарифа на цену.

Использование Scikit-learn

39:38
  • Для машинного обучения используется библиотека Scikit-learn.
  • Создается модель линейной регрессии с использованием численных и категориальных признаков.
  • Модель автоматически подбирает параметры и критерии окончания обучения.

Ван-хо инкодирование с помощью Scikit-learn

42:04
  • Используется встроенный механизм Scikit-learn для ван-хо инкодирования.
  • Ван-хо инкодер обучается на данных и создает массив из нулей и единиц для каждого значения.
  • Для больших таблиц используется объект "колм-трансформер" для преобразования всех категориальных и числовых полей.

Применение трансформера

44:02
  • Трансформер обучается на данных и преобразует их в формат, подходящий для линейной регрессии.
  • Тестовые данные также преобразуются с помощью обученного трансформера.
  • Модель предсказывает цены и вычисляются метрики точности.

Нормализация значений

46:09
  • Точность модели увеличилась с 28% до 14%.
  • Нормализация значений помогает привести все численные данные к одному диапазону.
  • Используются трансформеры: мин-макс скейле и стандер скейле.

Применение нормализации

48:00
  • Выбор трансформера зависит от распределения данных.
  • Пример: для равномерного распределения лучше использовать мин-макс скейле, для нормального - стандер скейле.
  • Нормализация не сильно увеличивает точность в данном случае, но может быть полезна в других.

Добавление атрибутов

49:31
  • Нелинейные зависимости требуют добавления производных значений.
  • Примеры: логарифм, экспоненциальное значение, квадрат.
  • Пример: добавление произведения ширины и длины для учета площади.

Применение трансформера для добавления атрибутов

52:15
  • Использование трансформера "n-way features" для добавления квадратов и произведений.
  • Увеличение числа атрибутов с 24 до 325.
  • Обучение модели занимает больше времени, но точность возрастает до 11%.

Проблема переобучения

53:14
  • Увеличение числа атрибутов может привести к переобучению.
  • Пример: линейная модель имеет ошибку на обучающей выборке и сопоставимую ошибку на тестовой.
  • Более сложная модель может идеально аппроксимировать обучающую выборку, но плохо работать на тестовой.

Переобучение модели

55:46
  • Переобучение возникает из-за несбалансированности между количеством параметров и примеров в обучающей выборке.
  • Добавление полиномиальных признаков увеличивает количество параметров, что может быть проблемой при малом количестве примеров.
  • Важно добавлять полиномиальные признаки осмысленно, учитывая зависимость между данными.

Пайплайн в машинном обучении

57:39
  • Пайплайн — это последовательность шагов для обучения модели, включая преобразование данных и добавление полиномиальных признаков.
  • Пайплайн позволяет писать более короткий код, но иногда удобнее отслеживать данные по шагам.
  • Пайплайн удобен для экспериментов с переобучением модели.

Деревья решений

59:41
  • Деревья решений используются для нелинейных зависимостей, таких как скачкообразные изменения цен или прогрессивное налогообложение.
  • В Scikit-learn деревья решений реализуются с помощью класса DecisionTreeRegressor.
  • Деревья решений интерпретируемы и позволяют проследить, как модель принимает решения.

Визуализация деревьев решений

1:02:22
  • Визуализация деревьев решений может быть сложной, но позволяет понять, как модель делает предсказания.
  • В Scikit-learn есть функция plot_tree для визуализации деревьев решений.
  • Визуализация помогает увидеть, как дерево принимает решения и как это влияет на ошибку предсказания.

Классификация

1:05:07
  • Классификация отличается от регрессии тем, что на выходе предсказывается номер класса, а не число.
  • Существуют бинарная и мультиклассовая классификации.
  • Бинарная классификация является частным случаем мультиклассовой с двумя классами.
  • Пример задачи классификации: определение типа опухоли на основе размера и возраста.

Сведение задачи классификации к регрессии

1:07:28
  • Регрессия - это линейная функция, и значения функции могут сильно варьироваться.
  • Для классификации можно использовать сигмовидную функцию, которая преобразует значения линейной функции в диапазон от 0 до 1.
  • Сигмовидная функция дифференцируема и позволяет использовать градиентный спуск для оптимизации.

Генерация датасета и оптимизация

1:09:47
  • Создается искусственный датасет с помощью функции "make_classification" в Scikit-learn.
  • Используется сигмовидная функция для преобразования значений линейной функции.
  • Оптимизация проводится с помощью метода градиентного спуска, где производные вычисляются численно.

Проблемы сходимости и логистическая функция ошибки

1:12:39
  • Сходимость оптимизации может быть неустойчивой из-за диапазона значений 0-1.
  • Логистическая функция ошибки учитывает вероятность правильного класса, что улучшает сходимость.
  • Логистическая функция ошибки вычисляется как минус логарифм вероятности правильного класса.

Применение логистической функции ошибки

1:18:45
  • Логистическая функция ошибки используется для улучшения сходимости и точности модели.
  • Оптимизация с логистической функцией ошибки показывает более стабильную сходимость.
  • Точность модели на тестовой выборке достигает 98%.

Вероятность принадлежности к классу

1:20:51
  • Использование функции predict_proba для получения вектора вероятностей классов.
  • Разделяющая прямая, полученная с помощью sklearn.linear_model.SVC.

Подготовка данных для задачи "Титаник"

1:21:16
  • Преобразование категориальных признаков в числовые.
  • Обработка отсутствующих значений возраста.

Обучение модели и оценка точности

1:24:53
  • Разделение данных на обучающую и тестовую выборки.
  • Обучение логистической регрессии и оценка точности 75.5%.

Матрица ошибок и ошибки первого и второго рода

1:25:51
  • Анализ матрицы ошибок для понимания точности предсказаний.
  • Ошибки первого рода FP и ошибки второго рода FN.

Метрики Precision и Recall

1:29:26
  • Precision показывает процент правильных предсказаний среди всех предсказанных позитивных классов.
  • Recall показывает процент реальных позитивных классов среди всех позитивных предсказаний.

Важность Precision и Recall

1:31:13
  • Пример с несбалансированными данными и важность Precision и Recall.
  • Введение метрики F1 для объединения Precision и Recall.

Показатель точности бинарной классификации

1:33:18
  • Реальные модели дают вероятность появления класса, а не точный номер.
  • Порог вероятности можно варьировать для изменения точности модели.
  • Площадь под кривой AUC является метрикой качества модели.

Пример использования AUC

1:36:13
  • Функция classification_report показывает прецизионные оценки для каждого класса.
  • Пример с данными пассажиров Титаника: AUC равна 0.83.
  • Интерпретация коэффициентов модели: пол, возраст и наличие сибсов влияют на вероятность выживания.

Построение деревьев решений

1:38:07
  • Дискретизация возраста на три категории: молодой, старый и средний.
  • Пол является главным признаком для классификации.
  • Точность предсказаний по полу: 0.72 для женщин и 0.19 для мужчин.

Алгоритм ID3 и его ограничения

1:42:00
  • ID3 работает только с категориальными атрибутами.
  • Алгоритм C4.5 обобщает ID3 для числовых атрибутов.
  • Пример использования C4.5 в Scikit-learn: точность 72.5%.

Машина опорных векторов SVM

1:44:08
  • SVM хорошо обобщается на нелинейные случаи.
  • В линейном случае SVM минимизирует расстояние до ближайших точек.
  • Оптимальная прямая определяется по максимальному зазору между прямой и точками.

Опорные векторы

1:46:47
  • Опорные векторы - это точки, на которые опираются прямые.
  • Можно отбросить большинство точек и рассматривать только опорные векторы.
  • Это позволяет упростить классификацию сложных датасетов.

Код и примеры

1:47:12
  • Пример кода для построения разделяющей прямой с использованием SVM.
  • SVM рассматривает линейные кривые для вычисления максимального зазора.
  • Можно использовать кривые более высокого порядка для сложных датасетов.

Нелинейные зависимости

1:49:03
  • Пример с датасетом из вложенных окружностей.
  • SVM дает высокую точность, в отличие от линейной модели.
  • Добавление дополнительных полей может улучшить точность модели.

Мультиклассовая классификация

1:50:36
  • Пример задачи: распознавание рукописных цифр.
  • Используется датасет MNIST, содержащий 60 тысяч рукописных цифр.
  • Цифры представлены изображениями 28x28 пикселей в 256 градациях серого.

Обучение модели

1:52:15
  • Разделение датасета на обучающую и тестовую выборки.
  • Построение классификатора для двоичной классификации "ноль или не ноль".
  • Нормирование данных и использование другого оптимизатора улучшает точность.

Мультиклассовая классификация через бинарную

1:54:49
  • Сведение мультиклассовой классификации к бинарной.
  • Использование класса VGG16 для мультиклассовой классификации.
  • Логистическая регрессия используется для обучения отдельных классификаторов для каждой пары цифр.

Модель классификации цифр

1:55:02
  • Модель состоит из десяти независимых моделей, обучаемых последовательно.
  • Точность модели составляет 90%, что лучше, чем 99% при двоичной классификации.
  • Вероятность случайного угадывания при десяти классах составляет 0.1%, что объясняет точность 90%.

Матрица ошибок

1:55:56
  • Матрица ошибок показывает, какие классы распознаются неправильно.
  • Примеры: цифра 3 часто распознается как 5, цифра 7 как 9.
  • Логистическая регрессия может выдавать 10 значений, интерпретируемых как вероятности классов.

Визуализация весов модели

1:57:52
  • Логистическая регрессия имеет 10 матриц весов для каждой цифры.
  • Веса модели можно визуализировать в виде матрицы 28x28.
  • Веса показывают, какие входные параметры влияют на предсказание каждой цифры.

Кросс-валидация

2:00:25
  • Кросс-валидация решает проблемы разделения данных на обучающую и тестовую выборки.
  • Модель обучается на разных частях данных, что позволяет усреднить точность.
  • Кросс-валидация помогает избежать зависимости точности от разделения данных.

Кластеризация

2:03:41
  • Кластеризация рассматривается как метод обучения без учителя.
  • Цифры представляются как точки в многомерном пространстве.
  • Классификатор ищет ближайшую по расстоянию точку для предсказания класса.

Метод ближайшего соседа

2:05:07
  • Метод ближайшего соседа использует функцию для расчета расстояния между точками.
  • Расстояние между одинаковыми цифрами меньше, чем между разными.
  • Гипотеза о том, что одинаковые цифры ближе друг к другу, подтверждается.

Реализация классификатора

2:06:07
  • Разделение данных на обучающую и проверочную выборки.
  • Классификатор находит минимальное расстояние и возвращает соответствующую цифру.
  • Точность классификации на 20 случайных цифрах составляет 100%.

Проблемы и улучшения

2:07:04
  • Классификация происходит медленно из-за необходимости просмотра всего обучающего датасета.
  • Возможны ошибки из-за аномальных значений, таких как плохо написанные цифры.
  • Решение: использовать метод k ближайших соседей, где k = 3, 5 или 7.

Оптимизация гиперпараметров

2:08:52
  • Перебор значений k для повышения точности.
  • k является гиперпараметром модели, который оптимизируется.
  • Для проверки точности модели необходима тестовая выборка.

Метод k-средних

2:11:39
  • Кластеризация точек на основе евклидова расстояния.
  • Метод k-средних разбивает точки на k кластеров и минимизирует метрику инерции.
  • Визуализация центроидов кластеров для проверки точности.

Визуализация результатов

2:15:07
  • Центроиды кластеров похожи на цифры, но не всегда точны.
  • Некоторые цифры смешиваются в разных кластерах.
  • Эксперименты с количеством кластеров могут улучшить точность.

Кластеризация рукописных цифр

2:17:59
  • Разбиение цифр на кластеры для быстрой разметки датасета.
  • Кластеризация помогает найти основные места уезжания для такси.
  • Определение среднего цвета фотографии для гармоничного подбора рамки.

Определение среднего цвета фотографии

2:19:45
  • Усреднение пикселей для получения среднего цвета.
  • Кластеризация для выделения основных цветов фотографии.
  • Пример с зеленой пальмой на фоне синего моря.

Выбор числа кластеров

2:21:42
  • Кластеризация рукописных цифр с разным числом кластеров.
  • Метод " elbow " для определения оптимального числа кластеров.
  • График инерции в зависимости от числа кластеров.

Понижение размерности данных

2:24:06
  • Метод главных компонент для понижения размерности данных.
  • Проекция точек на линейную поверхность для разделения данных.
  • Пример применения метода главных компонент для рукописных цифр.

Визуализация данных

2:26:40
  • Построение двухмерных векторов для отображения данных.
  • Пример разделения цифр на графике.
  • Ограничения метода главных компонентов и другие методы понижения размерности.

Введение в кластеризацию

2:29:20
  • Применение кластеризации для анализа табличных данных.
  • Использование таблицы с данными о 166 странах.
  • Описание полей таблицы: детская смертность, экспорт, здравоохранение, импорт, доходы, инфляция, продолжительность жизни, рождаемость, ВВП на душу населения.

Анализ данных и визуализация

2:30:14
  • Сравнение минимальных и максимальных значений по странам.
  • Применение PCA для уменьшения размерности данных.
  • Визуализация данных с подписями стран.

Проблемы с метрикой и масштабирование

2:32:31
  • Проблемы с несоразмерными значениями в колонках.
  • Решение: масштабирование данных до диапазона 0-1 или 0-1.
  • Повторное применение PCA и визуализация.

Выбор числа кластеров

2:34:42
  • Использование L-критерия для определения числа кластеров.
  • Выбор числа кластеров 5.
  • Кластеризация данных на 5 кластеров.

Анализ центроидов и типичных представителей

2:35:52
  • Преобразование центроидов для визуализации.
  • Описание характеристик кластеров.
  • Определение типичных представителей кластеров.

Зависимости и выводы

2:39:56
  • Анализ зависимостей между параметрами кластеров.
  • Пример: зависимость продолжительности жизни от трат на здравоохранение.
  • Заключение: машинное обучение помогает извлекать закономерности из данных.

Заключение и рекомендации

2:41:00
  • Основные методы машинного обучения: классификация, регрессия, кластеризация, понижение размерности.
  • Рекомендации по дальнейшему изучению и использованию библиотек.
  • Призыв к самостоятельной работе с данными и лабораторными работами.