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

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

Этот пост во многом является продолжением этого, так как здесь мы обсудим еще один алгоритм, который мы использовали в нашем 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 и модель глубокого обучения или продолжить работу с машинным обучением и добавить деревья решений/наивную байесовскую модель Гаусса. Итак, дайте мне знать ваши взгляды и выбор для следующего блога в разделе комментариев. А пока оставайтесь в безопасности… соблюдайте гигиену.

Обратная связь всегда является вкладом в постоянное совершенствование.