Что это такое, как это работает и когда его использовать

Если вы хотите заняться машинным обучением, логистическая регрессия просто необходима, когда дело доходит до создания набора инструментов для ваших знаний. Это один из основных строительных блоков машинного обучения. Логистическая регрессия — это простой, но мощный инструмент машинного обучения. Вы обнаружите, что логистическая регрессия используется повсеместно, как в промышленности, так и в научных кругах. Если вы развиваете навыки машинного обучения для использования в профессиональной или исследовательской среде, вам нужно знать логистическую регрессию как свои пять пальцев.

Давайте рассмотрим пример набора данных. Для простоты данные будут двухмерными, и мы будем иметь дело только с двумя выходными классами, синим и оранжевым.

Логистическая регрессия по сути является линейной классификацией. Вместо того, чтобы пытаться найти линейную аппроксимацию набора данных, он стремится найти линейную классификацию для присвоения набора данных выходным классам. По сути, он находит оптимальную линию, разделяющую два класса в N-мерном пространстве.

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

Линия в N-мерном векторном пространстве может быть определена единичным вектором направления m и вектором смещения b. Для каждой N-мерной точки x, находящейся на прямой, выполняется следующее уравнение:

Расстояние dот точки pдо линии с единичным вектором направления m и вектором смещения b в N-мерное векторное пространство определяется как:

· Логистическая регрессия: определение проблемы
· Логистическая регрессия: работает ли ошибка методом наименьших квадратов?
· Логистическая регрессия: обеспечение непрерывности нашей ступенчатой ​​функции
· Логистическая регрессия : Поиск оптимального решения
· Завершение логистической регрессии

Логистическая регрессия: определение проблемы

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

Если мы хотим оптимизировать линию классификации, вы можете подумать, что нам нужно оптимизировать как m, так и b, но есть способ сформулировать уравнение расстояния, чтобы мы имели дело только с м. Мы можем поглотить смещение в m, расширив m до дополнительного измерения. Это измерение является уклоном.

Во-первых, давайте подумаем, что такое m и b. И m, и b являются векторами, имеющими одинаковую направленность, но разную длину, поэтому мы можем сформулировать их как

Если мы подставим m*a в уравнение расстояния для b, мы получим следующее:

Поскольку m — единичный вектор, и любой единичный вектор, умноженный сам на себя в виде

равен 1, по определению единичного вектора, мы также можем упростить его до следующего.

Поглощая смещение, мы расширяем m с помощью члена -a и расширяем p с помощью 1, поэтому мы получаем:

Если мы теперь рассчитаем расстояние, используя нашу новую аннотацию, то:

С этого момента и далее для упрощения формул будем говорить m = m’ и p = p’.

Логистическая регрессия: работает ли ошибка наименьших квадратов?

В нашем наборе данных у нас есть набор точек P и меток Y, с

Если у нас есть точка с меткой 0, мы хотим, чтобы расстояние между точкой и разделительной линией было отрицательным. В качестве альтернативы, если метка равна 1, расстояние должно быть положительным.

Мы можем представить это с расчетным расстоянием каждой точки от линии классификации, построенной против ее предсказанной метки.

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

Чтобы оптимизировать это, мы получаем это относительно m и устанавливаем его равным нулю. Следуя цепному правилу:

Проблема с этой формулировкой заключается в том, что f не дифференцируема по m, так как это непрерывная ступенчатая функция. Более того, даже если бы f была дифференцируемой, она не была бы линейной. Мы не можем найти производную для оптимального m напрямую, поэтому нам нужна другая функция отображения и новый способ найти оптимальное m.

Логистическая регрессия: делаем нашу пошаговую функцию непрерывной

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

Сигмовидная функция изображена ниже.

Вы заметите, что это выглядит очень похоже на то, как выглядела бы ступенчатая функция, если бы вы соединили две разрозненные секции непрерывным образом, и именно поэтому мы ее используем.

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

Однако в случае логистической регрессии значения имеют очень ограниченный диапазон, то есть от 0 до 1. Поскольку наше потенциальное выходное значение настолько ограничено, максимальная разница между прогнозируемой меткой и фактической меткой составляет 1. Диапазон значений поэтому ошибка наименьших квадратов составляет от 0 до 1, что неоптимально. В идеале у нас должен быть значительно больший диапазон, предпочтительно от 0 до бесконечности, как в линейной регрессии.

Лучшим вариантом функции ошибки при использовании сигмовидной функции является ошибка потери журнала.

Как видите, эта функция ошибок позволяет нам иметь ошибки от 0 до бесконечности, но, надеюсь, вам также очевидно, что если мы попытаемся вывести эту функцию потерь относительно m, результат не будет линейным. Это означает, что мы не можем использовать метод закрытой формы для нахождения оптимального m*.

Логистическая регрессия: поиск оптимального решения

Чтобы решить эту проблему оптимизации, мы будем использовать градиентный спуск. Градиентному спуску нужна только дифференцируемая выпуклая функция ошибок, чтобы гарантировать оптимальное решение. Наша функция ошибок удовлетворяет обоим этим требованиям, так что давайте углубимся.

Градиентный спуск итеративно обновляет вектор m, чтобы приблизиться к m*, оптимальному решению. Он делает это, делая небольшой шаг, альфа, в направлении производной ошибки на каждой итерации.

Альфу обычно называют скоростью обучения. Если ошибка стремится к нулю, мы нашли оптимальное решение m*. Чтобы узнать больше о теории градиентного спуска, ознакомьтесь с этим глубоким погружением в как работает градиентный спуск.

Завершение логистической регрессии

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

Следует отметить, что в этом пошаговом руководстве мы использовали двоичный пример, а это означает, что в выходных данных было только два класса. В реальных наборах данных часто имеется более двух выходных классов. Приспособление к этим множественным выходным классам означает изменение постановки задачи. Мы будем использовать несколько функций отображения F,

для каждого класса в установленных выходных классах S и используйте soft max для нормализации выходных данных. Следите за моей следующей статьей, в которой будет рассмотрен пример логистической регрессии для вывода нескольких классов.

Дайте знать, если у вас появятся вопросы!

Откройте для внештатных технических и фантомных работ:[email protected]. Я занимаюсь наукой о данных и интерфейсным программированием.