Привет, ребята, надеюсь, у вас все хорошо, и начнем с того, что это продолжение моих двух последних блогов, где мы обсуждали Практическое прогнозирование диабета, а затем объясняли логистическую регрессию и как это помогло в наших руках по применению.
- Поддержка и обратная связь были очень любезными, и это делает меня более увлеченным работой и помощью сообществу.
Этот пост во многом является продолжением этого, так как здесь мы обсудим еще один алгоритм, который мы использовали в нашем Custom Pipeline, SVM (Support Vector Machines).
Мы должны понять, что и почему, как мы это сделали для логистической регрессии, то же самое нужно учитывать и для SVM. Я думал добавить модный набор данных MNIST для этого блога и модель DL, которую я попробовал, но это отклонялось бы от рассматриваемой темы, так что давайте начнем.
Что такое SVM?
- Метод опорных векторов — это классическая и универсальная модель машинного обучения, которую можно использовать для классификации/регрессии и даже для обнаружения выбросов.
- Он может выполнять эти операции как с линейными, так и с нелинейными данными, но фактическая мощь модели SVM проявляется, когда имеются многомерные данные с высоким нелинейный тренд между целевой и предикторной переменными. Я использовал модель SVM для анализа настроений и дал хорошие результаты.
- Фундаментальная идея Машины опорных векторов заключается в том, чтобы уложиться в максимально широкий/наибольший возможный разрыв между границей решения, которая разделяет два или более классов и обучающих экземпляров.
- Теперь изображение выше относится к концепции Гиперплоскости в 2D. Здесь линия в середине margin — это наша ГИПЕРПЛОСКОСТЬ, разделяющая 2 разные классы. Тогда математическое уравнение линии ax+by+c = 0, верно?
- Итак, если мы предположим, что гиперплоскость является линией, то левое и правое поля с точками данных становятся уравнениями вида ax+by+c ‹0 для класса -1и ax+by+c›0 для класса 1. Эта математика важна, потому что прямо сейчас у нас есть 2 измерения, что происходит, когда мы переходим к 3 измерениям или обобщаем то же самое для N измерений.
- Теперь давайте также коснемся концепции 3D-плоскости, чтобы достичь универсальности N-измерения. Итак, гиперплоскость в 3-х измерениях в SVM называется "Плоскостью". Здесь уравнение плоскости становится ax+by+cz+d = 0. Точно так же векторные поля становятся положительными и отрицательными аспектами плоскости.
- Кто-нибудь может ответить на этот вопрос -› Какова размерность ГИПЕРПЛОСКОСТИ в трехмерном пространстве? Ответ: Количество функций -1. Объекты в 3D-плоскости: {x,y,z}.
- Для размеров D(10/1000/миллион) у нас есть окончательное уравнение в следующем виде: sum(x1.w1+x2.w2+x3.w3 +………….. +xd.wd)+c = 0, где x1,x2,x3…..xd — размеры, а w1,w2,w3……wd — коэффициенты, а c — наша константа.
- Модель, обозначенная этим уравнением, известна как Линейный дискриминатор, и это один из важных технических вопросов на собеседовании. Но до сих пор мы обсуждали только то, что такое SVM, и рассматривали только линейные разделимые данные. Теперь, в разделе почему SVM, мы увидим силу SVM над нелинейно разделяемыми данными.
Почему SVM?
- Проблему классификации можно решить с помощью логистической регрессии, но подождите минутку, разве логистическая регрессия не больше подходит для бинарной классификации? Что, если у меня больше двух классов? что, если у меня есть данные более высокого измерения? что, если мои данные не линейны?
- В таких случаях нам нужна мощность SVM, чтобы прийти и сгенерировать плоскость/гиперплоскость, которая может намного лучше разделить классы. Но есть хитрость: во сколько вы хотите заплатить себе за неправильную классификацию точек, чтобы получить лучшую/стабильную модель? Давайте сначала рассмотрим некоторые нелинейные сепарабельные примеры, а затем обсудим этот вопрос.
- Такие запутанные данные о тенденциях доставляют нам некоторые трудности при моделировании, но именно здесь нам нужно выяснить, нужна ли нам жесткая классификация маржи или мягкая классификация маржи.
- Жесткая классификация полей требует, чтобы все точки данных находились строго за пределами поля и с правой стороны поля.
- Недостатком является то, что эти классификаторы с жесткими границами, как правило, являются переобученными и применимы только тогда, когда данные линейно разделимы.
- Наряду с этим они даже чувствительны к выбросам, что также способствует переоснащению.
- Мы также обсудим/сравним жесткую и мягкую маржу.
- Чтобы преодолеть все проблемы, возникающие при классификации с жесткими границами, чтобы хорошо обобщить и получить более достижимую модель, используется Классификация с мягкими границами.
- Здесь мы даем модель для неправильной классификации некоторых точек данных, что в жесткой марже запрещено. Это дает возможность модели подгонять точки данных более модным способом.
- Цель здесь состоит в том, чтобы найти хороший баланс между сохранением максимально возможной ширины маргинальной улицы и ограничением нарушений маржи.
- Теперь вы можете подумать, что, поскольку мы позволяем модели с мягкой маржой выполнять некоторые неверные классификации, то как модель является оптимальной? Что ж, подумайте с этой точки зрения: вам нужно добраться из пункта А в пункт Б, и есть несколько путей, чтобы добраться до него. Путь ACB немного больше, может быть, на 3-4 км больше, чем путь ADB, но дорога жалкая для путешествия, так что вы делаете, вы выбираете наиболее подходящий путь, поэтому чтобы ваше путешествие стало комфортным.
- Точно так же мы допускаем неправильную классификацию, но также контролируем ее с помощью настройки гиперпараметров и использования переменной резерва. Переменная Slack сообщает вам об относительном расположении переменных относительно поля и гиперплоскости.
- Давайте посмотрим сравнение и двигаться дальше!
Для нас было важно пройти через это, потому что только тогда мы можем процитировать, если интервьюер спросит, как вы выбираете лучшую модель SVM. Позвольте мне еще раз процитировать: Лучшая модель SVM — это та, которая имеет максимальный запас между границей решения, разделяющей два класса и обучающие экземпляры.
Теперь SVM, который мы внедрили в практическое прогнозирование диабета, был сложным — маржинальный классификатор, поскольку у нас были линейно разделяемые точки данных. Кроме того, вам может быть интересно, почему я не рассказал о ядрах, которые используются в SVM.
- Как правило, ядра используются, когда необходимо использовать классификатор с мягкими границами для нелинейных точек данных. Они требуют подробного объяснения и реализации, которые я покажу в следующих постах. Но я бы не стал держать вас в неведении, поэтому вкратце расскажу, что такое разные виды ядер и как они выглядят.
Моменты, которыми я хотел бы поделиться:
- В отличие от классификаторов логистической регрессии, классификаторы SVM не выводят вероятности для каждого класса. Один из моих коллег заявил об этом, а затем поделился ссылкой, подразумевая, что SVM выводит слишком много вероятностей, но это наполовину правда, наполовину ложь.
- Чтобы прояснить этот момент, позвольте мне процитировать его следующим образом: модель SVM выводит расстояние между экземпляром теста/обучения и границей решения, которое можно использовать в качестве показателя достоверности. Однако эту оценку нельзя преобразовать напрямую в вероятность класса.Теперь в sklearn, если мы установим вероятность = Trueпри создании Модель SVM, затем во время обучения модель калибрует вероятности, используя логистическую регрессию на модели SVM. Это добавит методы predict_proba() и Predict_log_proba()в SVM.
Вопросы для интервью:
- Почему важно масштабировать входные данные при использовании SVM? SVM пытается подобрать наибольшую улицу/маржу между точками данных и границами решений. Таким образом, если тренировочный набор не масштабирован, то он будет пренебрегать небольшими функциями, которые могут быть очень далекими в классе.
- Модель RBF SVM обучена, но имеет тенденцию к переобучению обучающих данных. Что мы можем с этим поделать? Если модель RBF SVM не соответствует данным, это приведет к наложению слишком больших ограничений, технически называемых регуляризацией. Так что может быть слишком много регуляризации. Теперь, чтобы уменьшить регуляризацию, нам нужно увеличить гамму, которая является гиперпараметром регуляризации или C или даже обоими сразу.
- Попробуйте регрессор SVM на наборе данных Калифорнии. Упражнение, которое нужно попробовать.
Вывод
Это все с моей стороны для этого поста. Я знаю, что это может быть слишком теоретически, но я постарался изложить его в более технической — не технической форме, чтобы каждый мог получить представление о том, как работают SVM, что они из себя представляют и могут передать одно и то же. объяснение.
Кроме того, в следующем посте я думаю добавить набор данных Fashion MNIST и модель глубокого обучения или продолжить работу с машинным обучением и добавить деревья решений/наивную байесовскую модель Гаусса. Итак, дайте мне знать ваши взгляды и выбор для следующего блога в разделе комментариев. А пока оставайтесь в безопасности… соблюдайте гигиену.
Обратная связь всегда является вкладом в постоянное совершенствование.