Компонент линейной регрессии
В этой статье описывается компонент в конструкторе Машинного обучения Azure.
Этот компонент используется для создания модели линейной регрессии для применения в конвейере. Линейная регрессия пытается установить линейную связь между одной или несколькими независимыми переменными и числовым результатом или зависимой переменной.
Этот компонент определяет метод линейной регрессии, а затем используется для обучения модели с помощью набора размеченных данных. Затем обученную модель можно использовать для прогнозирования.
Использование линейной регрессии
Линейная регрессия — это общий статистический метод, который был реализован в машинном обучении и дополнен многими новыми методами для подгонки строки и измерения ошибок. Простыми словами, регрессия связана с прогнозированием числовых целевых значений. Линейная регрессия — хороший выбор, когда требуется простая модель для базовой задачи прогнозирования. Линейную регрессию также обычно используют для работы с многомерными разреженными наборами данных с отсутствием сложности.
Помимо линейной регрессии, Машинное обучение Azure поддерживает разнообразные регрессионные модели. Однако термин "регрессия" может интерпретироваться достаточно вольно, а некоторые типы регрессии, предоставляемые другими инструментами, не поддерживаются.
Классическая задача регрессии включает одну независимую переменную и зависимую переменную. Это называется простой регрессией. Этот компонент поддерживает простую регрессию.
Множественная линейная регрессия состоит из двух или более независимых переменных, которые вносят вклад в одну зависимую переменную. Задачи, в которых несколько наборов входных данных применяются для прогнозирования одного числового результата, также называются множественной линейной регрессией.
Компонент "Линейная регрессия", как и большинство других компонентов регрессии, помогает решать эти задачи.
Задача прогнозирования нескольких зависимых переменных в рамках одной модели называется многометочной регрессией. Например, в логистической регрессии с несколькими метками пример можно назначить нескольким различным меткам. (Эта задача отличается от задачи прогнозирования нескольких уровней в пределах одной переменной класса.)
Этот тип регрессии не поддерживается в Машинном обучении Azure. Для прогнозирования нескольких переменных создайте отдельное обучение для каждого выхода, который нужно спрогнозировать.
В течение многих лет специалисты по статистике разрабатывают значительно усовершенствованные методы регрессии. Это справедливо даже для линейной регрессии. Этот компонент поддерживает два метода измерения ошибок и подгонки линии регрессии: обычный метод наименьших квадратов и градиентный спуск.
Градиентный спуск — это метод, который сводит к минимуму количество ошибок на каждом этапе процесса обучения модели. Существует много вариантов на градиентном спуске и его оптимизации для различных проблем обучения было подробно изучено. Выбрав этот вариант в качестве метода решения, вы сможете задать различные параметры для управления размером шага, скоростью обучения и т. д. Этот метод также поддерживает возможность встроенного подбора значений параметров.
Обычный метод наименьших квадратов является одним из самых распространенных методов линейной регрессии. Например, метод наименьших квадратов используется в пакете анализа для Microsoft Excel.
Обычные наименьшие квадраты относятся к функции потери, которая вычисляет ошибку в виде суммы квадрата расстояния от фактического значения к прогнозируемой строке и соответствует модели путем минимизации квадратной ошибки. Этот метод предполагает наличие сильной линейной связи между входными данными и зависимой переменной.
Настройка линейной регрессии
Этот компонент поддерживает два способа подгонки модели регрессии с различными параметрами:
Подгонка модели регрессии с использованием обычных наименьших квадратов
Для небольших наборов данных рекомендуется использовать обычный метод наименьших квадратов. В конечном итоге будут получены результаты, похожие на результаты Excel.
Создание регрессионной модели с помощью вероятностного градиентного спуска
Градиентный спуск является лучшей функцией потери для моделей, которые являются более сложными или имеют слишком мало обучающих данных, учитывая количество переменных.
Создание модели регрессии с использованием обычных наименьших квадратов
Добавьте компонент "Линейная регрессия" в конвейер в конструкторе.
Этот компонент можно найти в категории "Машинное обучение". Разверните узел "Инициализация модели", затем — узел "Регрессия", после чего перетащите компонент "Модель линейной регрессии" в конвейер.
В области Свойства в раскрывающемся списке Метод решения выберите пункт Обычные наименьшие квадраты. Этот параметр задает метод вычисления, используемый для поиска линии регрессии.
В поле Вес регуляризации L2 введите значение, которое будет использоваться в качестве веса регуляризации L2. Рекомендуется использовать ненулевое значение, чтобы избежать лжевзаимосвязи.
Дополнительные сведения о влиянии регуляризации на подгонку моделей см. в статье об использовании регуляризации L1 и L2 для Машинного обучения.
Установите флажок Включить свободный член, если требуется просмотреть термин для перехвата.
Снимите этот флажок, если проверять формулу регрессии не нужно.
При необходимости введите значение для параметра Начальное значение для случайных чисел, чтобы заполнить генератор случайных чисел, используемый моделью.
Использовать начальное значение удобно в том случае, если вы хотите обеспечить одинаковые результаты в различных запусках одного и того же конвейера. В противном случае по умолчанию используется значение из системных часов.
Добавьте компонент "Обучение модели" в конвейер и подключите набор маркированных данных.
Отправьте конвейер.
Результаты для обычной модели наименьших квадратов
После завершения обучения:
- Для создания прогнозов подключите обученную модель к компоненту "Оценка модели" вместе с набором данных с новыми значениями.
Создание регрессионной модели с помощью вероятностного градиентного спуска
Добавьте компонент "Линейная регрессия" в конвейер в конструкторе.
Этот компонент можно найти в категории "Машинное обучение". Разверните узел "Инициализация модели", затем — узел "Регрессия", после чего перетащите компонент "Модель линейной регрессии" в конвейер.
В области Свойства в раскрывающемся списке Метод решения выберите параметр Вероятностный градиентный спуск в качестве метода вычисления, используемого для поиска линии регрессии.
В режиме создания учителя укажите, нужно ли обучить модель предопределенному набору параметров или оптимизировать ее модель путем подбора значечний параметров.
Одиночный параметр: если вы знаете, как вы хотите настроить сеть линейной регрессии, вы можете предоставить определенный набор значений в качестве аргументов.
Диапазон параметров: используйте этот вариант, если вы не знаете наилучшие параметры и хотите выполнить перебор параметров. Выберите диапазон значений для итерации и в процессе Настройка гиперпараметров модели выполните итерацию по всем возможным сочетаниям указанных параметров, чтобы определить гиперпараметры, которые приводят к оптимальным результатам.
Укажите начальную скорость обучения для оптимизатора вероятностного градиентного спуска.
Для параметра Число эпох обучения введите значение, указывающее, сколько раз алгоритм должен выполнять итерацию по примерам. Для наборов данных с небольшим количеством примеров это число должно быть большим, чтобы достичь конвергенции.
Нормализация функций: если вы уже нормализовали числовые данные, используемые для обучения модели, этот параметр можно отключить. По умолчанию компонент нормализует все числовые входные значения в диапазоне от 0 до 1.
Примечание.
Не забывайте применять тот же метод нормализации к новым данным, используемым для оценки.
В поле Вес регуляризации L2 введите значение, которое будет использоваться в качестве веса регуляризации L2. Рекомендуется использовать ненулевое значение, чтобы избежать лжевзаимосвязи.
Дополнительные сведения о влиянии регуляризации на подгонку моделей см. в статье об использовании регуляризации L1 и L2 для Машинного обучения.
Выберите параметр Уменьшить скорость обучения, если хотите, чтобы скорость обучения уменьшалась по мере выполнения итераций.
При необходимости введите значение для параметра Начальное значение для случайных чисел, чтобы заполнить генератор случайных чисел, используемый моделью. Использовать начальное значение удобно в том случае, если вы хотите обеспечить одинаковые результаты в различных запусках одного и того же конвейера.
Обучение модели:
Если для параметра Создать режим учителя задано значение Одиночный параметр, подключите отмеченный набор данных и компонент Обучение модели.
Если для параметра Create trainer mode выбран вариант Parameter Range, подключите набор помеченных данных и обучите модель с помощью модуля Настройка гиперпараметров модели.
Примечание.
При передаче диапазона параметров в модуль Обучение модели используется только значение по умолчанию в списке с одиночным параметром.
Если передать в компонент Настройка гиперпараметров модели один набор значений параметров, когда он ожидает диапазон настроек для каждого параметра, он проигнорирует эти значения и использует значения по умолчанию для средства обучения.
Если выбран вариант Parameter Range (Диапазон параметров) и указано одно значение для любого параметра, это единственное заданное значение будет использоваться во время очистки, даже если другие параметры меняются в диапазоне значений.
Отправьте конвейер.
Результаты для вероятностного градиентного спуска
После завершения обучения:
- Для создания прогнозов подключите обученную модель к компоненту "Оценка модели" вместе с новыми входными данными.
Следующие шаги
Ознакомьтесь с набором доступных компонентов для машинного обучения Azure.