Начнем с важного вопроса: что такое машинное обучение?
Машинное обучение — это разновидность искусственного интеллекта, которая использует алгоритмы для обнаружения закономерностей и тенденций в данных.
Машинное обучение можно легко разбить на следующие методы; контролируемые и неконтролируемые. В этой статье будет рассмотрено первое, и оттуда есть два типа задач; регрессия и классификация. Эта статья представляет собой задачу классификации, мы хотим предсказать, выиграет или проиграет баскетбольная команда NCAA в своей следующей игре.
В информатике алгоритм — это последовательность команд, которым запрограммирован компьютер. В машинном обучении мы «обучаем» эти алгоритмы на исторических данных, чтобы принимать решения и делать прогнозы, поэтому при получении новых данных алгоритм может дать точное представление о будущем. Чем лучше алгоритм, тем точнее будут решения и прогнозы.
Примеры машинного обучения окружают нас повсюду в современном мире. Цифровые боты с искусственным интеллектом рекомендуют нам фильмы, песни и даже места отдыха на основе того, что мы смотрели, слушали или искали в Интернете.
Как работает машинное обучение?
I. Выберите и подготовьте набор данных
II. Реализовать желаемый алгоритм (построить модель ИИ) и обучить его на подготовленных данных.
III. Определение показателей модели
Выберите и подготовьте набор данных
Шаг 1: Установка/импорт
Модули, которые вам, вероятно, потребуется установить перед запуском этого кода:
Шаг 2. Получение и обработка данных для ввода модели
Теперь, когда у нас есть список всех команд NCAAB, мы можем получить данные для каждой команды и начать создание набора данных для модели машинного обучения.
РАЗБИВКА:
- Приведенная выше функция извлекает данные для всех команд NCAAB. Затем я разделил данные на «функции» (X) и «цель» (y).
- Данные функции содержат игровую статистику, которая будет использоваться для прогнозирования выигрыша или проигрыша. Увидеть ниже:
- Целевые данные содержат то, что мы пытаемся предсказать, в данном случае это результат игры. Примечание — API возвращает результат игры (выигрыш или проигрыш), так как мы хотим, чтобы модель была предиктивной, мы сдвигаем результат на одну игру назад. Таким образом, модель обучается предсказывать, что произойдет в следующей игре, основываясь на том, что произошло в последней игре.
Лучший способ концептуализировать процесс до сих пор таков:
- Помните — цель — это результат следующей игры. Пример: Brigham-Young, Citadel и Duke выиграли вторую игру. У нас установлена первая игра, поэтому наша модель обучена прогнозировать следующую игру.
- Представьте цель как последний столбец фрейма больших данных выше. Затем алгоритм обучается на основе характеристик (игровой статистики) для классификации выигрыша или проигрыша.
Одним из преимуществ задач классификации машинного обучения является то, что мы можем визуализировать процесс обучения наших моделей, чтобы понять, как он обучается и принимает решения. Я покажу пример этого с инфографикой в следующих разделах.
Создание и обучение модели машинного обучения
Шаг 1: разделите данные для обучения/тестирования
Это разделит нашу матрицу признаков (X) и целевой вектор (y) на наборы данных для обучения и тестирования. Целью этого является обучение модели и измерение начальной точности.
Шаг 2. Определите базовую точность
Базовая точность может быть определена как показатель точности, если модель каждый раз предсказывала класс большинства (выигрыш или проигрыш).
Причина оценки этой метрики состоит в том, чтобы увидеть, насколько сбалансированы наши целевые классы, в данном случае мы видим, что они сбалансированы довольно равномерно. Один встречается в 56% случаев, а другой в 44%.
Шаг 3: Создайте модель и обучите ее
РАЗБИВКА:
- Определите модель с помощью модуля sklearn.pipeline. Это просто более надежный код — модель не нужно определять в конвейере.
- Используйте модуль category_encoder для порядкового кодирования категориальных функций.
- Создайте экземпляр модели машинного обучения: RandomForestClassifier.
- Соответствуйте модели на обучающих данных.
Это не один из шагов, описанных выше, потому что нет необходимости строить модель, но он важен для понимания того, как работает машинное обучение.
Визуализируйте модель
Этот код не относится к процессу построения модели и не является значением данного раздела (см. ниже), поэтому я не буду делать разбивку — если вам интересно, читайте комментарии в ячейке.
Ранее я упоминал, что модели машинного обучения используют функции (статистику игры) для прогнозирования цели (выигрыш или проигрыш).
Инфографика выше представляет собой визуализацию этой конкретной модели машинного обучения, но она одинакова для всех моделей на основе дерева. То, что вы видите выше, — это обучение, это процесс принятия решений нашей моделью. То, что пытается сделать модель, — это точно классифицировать выигрыш или проигрыш. В техническом плане; минимизировать примесь (подробнее обсуждается ниже) на основе расщеплений.
Что такое разделение?
Отличный вопрос! Разделения или «узлы» — это просто функции из нашего набора данных. Как вы можете видеть выше, корневой узел — это Season_losses ‹ 5,5 — и результирующая классификация — 293 победы и 379 поражений. Это дает энтропию или «примесь» 0,988 (мы ожидаем высокую энтропию в корневом узле!). Приведенная выше модель очень проста и была создана только для этого визуала, в одном дереве всего 3 слоя. Поэтому, как и ожидалось, эта модель никогда не минимизирует энтропию успешно (модель не обучается).
Что такое энтропия?
Энтропия — это мера нечистоты модели машинного обучения.
Как модель минимизирует энтропию?
Когда вы вызываете функцию «подгонки», модель будет разделяться на каждую функцию (столбец) обучающего набора, узлы, которые вы видите на инфографике выше, — это разбиения, приводящие к самой низкой энтропии.
Модели учатся, минимизируя энтропию. Формулу можно найти ниже:
РАЗБИВКА:
- i/n представляют классы… повторите вышеприведенное вычисление для классов от 1 до n.
- Эта модель имеет только два класса (выигрыш или проигрыш), что также можно увидеть в реализации ниже (каждая функция log2 представляет один класс).
Модель продолжает разделяться, параллельно выполняя тысячи таких вычислений, сводя к минимуму энтропию и, следовательно, «обучаясь». Когда будут представлены новые данные, модель будет использовать те же разбиения, что и выше, чтобы точно классифицировать выигрыш или проигрыш!
Определить показатели модели
Шаг 1. Рассчитайте показатель точности
Мы используем sklearn.metrics precision_score для оценки модели. Параметры — это прогнозы моделей и фактический результат.
Шаг 2. Определите важность функции
Очень круто! Мы можем визуализировать, насколько важна каждая функция (статистика игры) для предсказания.
Эта модель готова к использованию! Хотя — вы можете настроить гиперпараметры, выбрать другой классификатор, разработать новые функции и т. д., но на данный момент я надеюсь, что сообщение этой статьи было получено! Вы должны знать, как построить модель машинного обучения для прогнозов NCAAB, и если вы не программист; Надеюсь, вы смогли немного узнать об ИИ!
Спасибо, что прочитали!