Цель контролируемого машинного обучения состоит в том, чтобы создать модель, которая делает предсказания на основе доказательств в присутствии неопределенности. Когда адаптивные алгоритмы идентифицируют шаблоны в данных, компьютер «учится» из наблюдений. При воздействии большего количества наблюдений компьютер улучшает свою прогнозирующую эффективность.
В частности, алгоритм контролируемого обучения принимает известный набор входных данных и имеющихся откликов к данным (выходу) и trains модель, чтобы сгенерировать разумные предсказания для ответа на новые данные.
Например, предположим, вы хотите предсказать, будет ли у кого-то сердечный приступ в течение года. У вас есть набор данных о предыдущих пациентах, включая возраст, вес, рост, артериальное давление и т. Д. Вы знаете, были ли у предыдущих пациентов сердечные приступы в течение года после измерения. Итак, проблема состоит в том, чтобы объединить все существующие данные в модель, которая может предсказать, будет ли у нового человека сердечный приступ в течение года.
Можно представить весь набор входных данных как гетерогенную матрицу. Строки матрицы называются observations, examples или instances и каждая из них содержит набор измерений для субъекта (пациентов в примере). Столбцы матрицы называются predictors, attributes или features, и каждая из них является переменными, представляющей измерение, выполненное по каждому предмету (возраст, вес, рост и т.д. в примере). Можно представить данные отклика как вектор-столбец, где каждая строка содержит выход соответствующего наблюдения в входных данных (был ли у пациента сердечный приступ). Чтобы fit или train контролируемую модель обучения, выберите соответствующий алгоритм, а затем передайте ему входные и ответные данные.
Контролируемое обучение разделяется на две широкие категории: классификация и регрессия.
В classification цель состоит в том, чтобы назначить класс (или label) из конечного множества классов наблюдению. То есть отклики являются категориальными переменными. Приложения включают фильтры нежелательной почты, системы рекомендаций рекламы, а также распознавание изображений и речи. Предсказание того, будет ли у пациента сердечный приступ в течение года, является задачей классификации, и возможные классы true
и false
. Алгоритмы классификации обычно применяются к номинальным значениям отклика. Однако некоторые алгоритмы могут включать порядковые классы (см. fitcecoc
).
В regression цель состоит в том, чтобы предсказать непрерывное измерение для наблюдения. То есть переменные откликов являются вещественными числами. Приложения включают прогнозирование цен на акции, потребления энергии или заболеваемости.
Функции обучения Statistics and Machine Learning Toolbox™ под наблюдением включают в себя объектную платформу, построенную по потоку. Можно эффективно обучать множество алгоритмов, объединять модели в ансамбль, оценивать производительности модели, перекрестно проверять и прогнозировать ответы для новых данных.
Хотя существует много Statistics and Machine Learning Toolbox алгоритмов для контролируемого обучения, большинство использует один и тот же базовый рабочий процесс для получения модели предиктора. (Подробная инструкция по шагам обучения ансамблей представлена в Рамках обучения ансамблей.) Шаги для контролируемого обучения:
Все контролируемые методы обучения начинаются с матрицы входных данных, обычно называемой X
здесь. Каждая строка X
представляет одно наблюдение. Каждый столбец X
представляет одну переменную, или предиктор. Представление отсутствующих записей с NaN
значения в X
. Алгоритмы контролируемого обучения Statistics and Machine Learning Toolbox могут обрабатывать NaN
значения, либо игнорируя их, либо игнорируя любую строку с NaN
значение.
Для данных отклика можно использовать различные типы данных Y
. Каждый элемент в Y
представляет ответ на соответствующую строку X
. Наблюдения с отсутствующими Y
данные игнорируются.
Для регрессии, Y
должен быть числовым вектором с таким же количеством элементов, как и количество строк X
.
Для классификации, Y
может быть любым из этих типов данных. Эта таблица также содержит метод включения отсутствующих записей.
Тип данных | Отсутствующая запись |
---|---|
Числовой вектор | NaN |
Категориальный вектор | <undefined> |
Символьный массив | Строка пространств |
Строковые массивы | <missing> или "" |
Массив ячеек из символьных векторов | '' |
Логический вектор | (Не может представлять) |
Существуют компромиссы между несколькими характеристиками алгоритмов, такими как:
Скорость обучения
Использование памяти
Прогнозирующая точность на новых данных
Прозрачность или интерпретация, что означает, как легко вы можете понять причины, по которым алгоритм делает свои предсказания
Детали алгоритмов появляются в Характеристиках Алгоритмов Классификации. Более подробная информация об алгоритмах ансамбля приведена в разделе «Выбор применимого метода агрегации ансамбля».
Функция аппроксимации, которую вы используете, зависит от алгоритма, который вы выбираете.
Алгоритм | Подбор кривой |
---|---|
Классификационные деревья | fitctree |
Деревья регрессии | fitrtree |
Дискриминантный анализ (классификация) | fitcdiscr |
k - ближайшие соседи (классификация) | fitcknn |
Наивный Байес (классификация) | fitcnb |
Машины опорных векторов (SVM) для классификации | fitcsvm |
SVM для регрессии | fitrsvm |
Многоклассовые модели для SVM или других классификаторов | fitcecoc |
Классификационные ансамбли | fitcensemble |
Регрессионные ансамбли | fitrensemble |
Классификационные или регрессионные древовидные ансамбли (например, случайные леса [1]) | TreeBagger |
Для сравнения этих алгоритмов смотрите Характеристики Классификационных Алгоритмов.
Три основных метода исследования точности полученных подобранных моделей:
Исследуйте ошибку реституции. Для примеров смотрите:
Исследуйте ошибку перекрестной проверки. Для примеров смотрите:
Исследуйте ошибку без сумки для упакованных деревьев принятия решений. Для примеров смотрите:
После проверки модели, вы можете захотеть изменить ее для лучшей точности, лучшей скорости или использовать меньше памяти.
Измените параметры модели, чтобы попытаться получить более точную модель. Для примеров смотрите:
Измените параметры модели, чтобы попытаться получить меньшую модель. Это иногда дает модель с большей точностью. Для примеров смотрите:
Попробуйте другой алгоритм. Применимые варианты см. в:
Удовлетворяясь моделью некоторых типов, можно обрезать ее с помощью соответствующей compact
функция (compact
для деревьев классификации, compact
для деревьев регрессии, compact
для дискриминантного анализа, compact
для наивного Байеса, compact
для SVM, compact
для моделей ECOC, compact
для классификационных ансамблей и compact
для регрессионных ансамблей). compact
удаляет обучающие данные и другие свойства, не требуемые для предсказания, например, информацию обрезки для деревьев решений, из модели, чтобы уменьшить потребление памяти. Поскольку k модели классификации NN требуют всех обучающих данных для предсказания меток, вы не можете уменьшить размер ClassificationKNN
модель.
Чтобы предсказать классификационную или регрессионую характеристику для большинства подобранных моделей, используйте predict
метод:
Ypredicted = predict(obj,Xnew)
obj
- подобранная модель или подобранная компактная модель.
Xnew
- новые входные данные.
Ypredicted
- предсказанная реакция, либо классификация, либо регрессия.
Эта таблица показывает типичные характеристики различных алгоритмов контролируемого обучения. Характеристики в любую конкретную ситуацию могут отличаться от перечисленных таковых. Используйте таблицу в качестве руководства для первоначального выбора алгоритмов. Определитесь с компромиссом, который вы хотите в скорости, использовании памяти, гибкости и интерпретации.
Совет
Попробуйте сначала дерево решений или дискриминант, потому что эти классификаторы быстро и легко интерпретируются. Если модели недостаточно точны, прогнозируя ответ, попробуйте другие классификаторы с более высокой гибкостью.
Для управления гибкостью см. подробные данные для каждого типа классификатора. Чтобы избежать избыточной подгонки, найдите модель меньшей гибкости, которая обеспечивает достаточную точность.
Классификатор | Многоклассовая поддержка | Категориальная поддержка предиктора | Скорость предсказания | Использование памяти | Интерпретируемость |
---|---|---|---|---|---|
Деревья решений - fitctree | Да | Да | Быстро | Маленький | Легкий |
Дискриминантный анализ - fitcdiscr | Да | Нет | Быстро | Малый для линейного, большой для квадратичного | Легкий |
SVM - fitcsvm | Нет. Объедините несколько двоичных классификаторов SVM с помощью fitcecoc . | Да | Среда для линейного. Медленно для других. | Среда для линейного. Все остальные: среда для многоклассовых, большая для двоичных. | Легкий для линейного SVM. Жесткий для всех других типов ядра. |
Наивный Байес - fitcnb | Да | Да | Среда для простых распределений. Медленно для ядерных распределений или высоко-размерных данных | Маленький для простых распределений. Среда для ядерных распределений или высоко-размерных данных | Легкий |
Ближайшая соседка - fitcknn | Да | Да | Медленно для кубического. Среда для других. | Среда | Трудно |
Ансамбли - fitcensemble и fitrensemble | Да | Да | Быстрый и средний в зависимости от выбора алгоритма | От низкого до высокого в зависимости от выбора алгоритма. | Трудно |
Результаты в этой таблице основаны на анализе многих наборов данных. Наборы данных в исследовании имеют до 7000 наблюдений, 80 предикторов и 50 классов. Этот список определяет условия в таблице.
Скорость:
Быстрый - 0,01 секунд
Средний - 1 секунду
Медленно - 100 секунд
Память
Малый - 1MB
Средний - 4MB
Большие - 100MB
Примечание
Таблица содержит общее руководство. Ваши результаты зависят от ваших данных и скорости вашей машины.
Эта таблица описывает поддержку типа данных предикторов для каждого классификатора.
Классификатор | Все предикторы числовые | Все предикторы категориальные | Некоторые категориальные, некоторые числовые |
---|---|---|---|
Деревья решений | Да | Да | Да |
Дискриминантный анализ | Да | Нет | Нет |
SVM | Да | Да | Да |
Наивный Байес | Да | Да | Да |
Ближайший Соседний | Только евклидовое расстояние | Только расстояние хемминга | Нет |
Ансамбли | Да | Да, кроме подпространственных ансамблей классификаторов дискриминантного анализа | Да, кроме подпространственных ансамблей |
[1] Breiman, L. «Random Forests». Машинное обучение 45, 2001, стр. 5-32.