Полный анализ.

Часть I. Подходит ли линейная регрессия для переменной качественного отклика с более чем двумя классами? Почему бы и нет?

Часть II. Подходит ли линейная регрессия для переменной качественного отклика с двумя классами? Почему бы и нет?

Предположим, что нам даны признаки некоторых видов цветов, и нам нужно классифицировать виды, такие как 'Iris-Setosa', 'Iris-Versicolor' и ' Iris-Virginica» на основе таких характеристик, как длина чашелистиков, ширина чашелистиков, длина и ширина лепестков.

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

Вышеупомянутые данные являются данными IRIS, и вы можете проверить их здесь.

Я также предлагаю вам прочитать о Линейной регрессии, прежде чем двигаться дальше.

Данные выглядят примерно так:

Чтобы работать с линейной регрессией, нам нужно рассмотреть некоторую кодировку для трех видов цветов:

Все готово!

Теперь мы можем использовать линейную регрессию, чтобы сопоставить данные IRIS с этой кодировкой и предсказать Y.

Запустим код.

Код.

Coefficients: [-0.16079931 -0.03026038 0.27888762 0.53921169]
Mean Squared Error: 0.060240061710185554
R2_score: 0.9158135783553307

Что ж, с ним мы получаем неплохие результаты.

Чтобы делать прогнозы, я предполагаю прогнозируемые значения от 0,5 до 1,5 для 1 (Iris-setosa), от 1,5 до 2,5 для 2 (Iris-versicolor) и от 2,5 до 3,5 для 3 (Iris-virginica).

Но ждать!

Мы могли бы выбрать такую ​​же разумную кодировку:

Давайте перезапустим код, сохранив все, кроме этой кодировки.

И на этот раз получаем:

Coefficients: [ 0.22466196 -0.82830855  0.03601207 -0.78051466]
Mean Squared Error:  0.519702808980069
R2_score: 0.22688838333543437

Я предполагаю прогнозируемые значения от 0,5 до 1,5 для 1 (Iris-virginica), от 1,5 до 2,5 для 2 (Iris-setosa) и от 2,5 до 3,5 для 3 (Iris-versicolor).

Так что же только что произошло?

Мы получали R-квадрат 0,91, а теперь он составляет всего 0,22, а среднеквадратическая ошибка также увеличилась с 0,06 до 0,51.

Причина явно в кодировке, но почему?

К сожалению, кодирование подразумевает упорядочение результатов.

Когда мы предполагаем первое кодирование, мы косвенно утверждаем, что разница между Setosa и Virginica и Versicolor и Virginica составляет то же.

В то время как вторая кодировка предполагает, что разница между Setosa и Virginica и Versicolor и Setosa одинакова.

С такими качественными значениями это не имеет никакого смысла.

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

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

Наша первая кодировка дает лучшие результаты, но разумнее ли выбрать первую кодировку, чем вторую?

Нет, обе кодировки одинаково разумны, и у нас нет логического объяснения, чтобы выбрать первую вместо второй, можно было бы выбрать любую.

Вывод

На практике не существует естественного способа преобразовать переменные качественного ответа с более чем двумя классами в количественную переменную и согласовать с линейной регрессией.

По этим причинам предпочтительно использовать подходящий метод классификации для качественной переменной отклика.

Использованная литература:

Введение в статистическое обучение

Машинное обучение Эндрю Нг

Полный код смотрите по этой ссылке GitHub.

См. Часть II для линейной регрессии с бинарной классификацией.

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

Спасибо!