Полный анализ.
Я предлагаю вам ознакомиться с Часть I, прежде чем продолжить.
В первой части мы проверили, работает ли линейная регрессия для переменной качественного ответа с более чем двумя классами. Здесь мы проверим, работает ли это для двоичной классификации?
На этот раз мы будем работать с Набором данных для прогнозирования рака молочной железы. Для простоты я рассматривал только средний периметр опухоли как единственную характеристику в данных.
Основываясь на среднем размере периметра, мы определяем, является ли опухоль доброкачественной (не раковой) или злокачественной (раковой) с помощью линейной регрессии.
Наши данные выглядят примерно так:
Чтобы работать с линейной регрессией, давайте предположим, что кодирование для B и M равно 0 и 1 соответственно.
Давайте запустим линейную регрессию для этого:
Код.
coefficient: [0.01291051] Intercept: -0.9710559009446079 MSE: 0.03373167568329971 R2_score: 0.747858980220586
Теперь давайте выберем другую возможную кодировку, то есть B как 1 и M как 0, и перезапустим код.
coefficient: [-0.01291051] Intercept: 1.9710559009446085 MSE: 0.03373167568329972 R2_score: 0.747858980220586
Среднеквадратическая ошибка и значения R-квадрата абсолютно одинаковы для обоих кодировок. Даже коэффициенты одинаковые, а отличаются только их знаки.
Давайте построим гипотезу h(x) для обоих кодировок:
Так что проблем с кодированием, как у нас было в классификации с более чем 2 классами, нет. Мы можем принять любой из них, и мы получим те же результаты.
Чтобы сделать прогноз для любого заданного размера опухоли x, если h(x) больше 0,5, мы прогнозируем злокачественную опухоль, в противном случае мы прогнозируем доброкачественную опухоль, особенно для случая, когда B равно 0, а M равно 1.
Итак, что мы получаем:
Похоже, мы правильно предсказали каждую точку данных, кроме одной, но теперь давайте немного изменим данные.
Давайте добавим еще один образец с огромным размером опухоли и снова запустим линейную регрессию:
Теперь при h(x) > 0,5 злокачественность будет выглядеть так:
Чтобы продолжать делать правильные прогнозы, нам нужно изменить его на что-то вроде h(x)>0,3, но алгоритм не должен работать так.
Мы не можем менять гипотезу каждый раз, когда наши данные обновляются. Вместо этого гипотеза должна изучить это на обучающих данных, а затем сделать правильные прогнозы для данных, которых она раньше не видела.
Вывод
В заключение, линейная регрессия также не подходит для бинарной классификации.
Его можно использовать в качестве бинарного классификатора, наложив решающее правило, например, когда значение гипотезы h(x)>0,5 означает, что опухоль является злокачественной. Но это тоже работает не для каждого сценария.
Использованная литература:
Введение в статистическое обучение
Машинное обучение Эндрю Нг
Полный код можно найти по этой ссылке GitHub.
Пожалуйста, прокомментируйте любые предложения, исправления или критику.
Спасибо!