Полный анализ.
Часть 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 для линейной регрессии с бинарной классификацией.
Пожалуйста, прокомментируйте любые предложения, исправления или критику.
Спасибо!