Маржинальная доходность формула: Как расчёт маржинальной прибыли может помочь бизнесу?

Содержание

Расчет маржинального дохода. Примеры.

Маржинальный доход — доход, полученный от реализации после возмещения переменных затрат. Маржинальный доход является источником образования прибыли и покрытия постоянных затрат.

Формула расчета маржинального дохода:

TRm = TR — TVC, где

TRm — Маржинальный доход

TR — Доход (total revenue)

TVC — Переменные затраты (total variable cost)

Часто используется термин «вклад на покрытие»: маржинальный доход — это вклад на покрытие постоянных затрат и формирование чистой прибыли.

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

Покажем на графиках как ведет себя маржинальный доход при изменении структуры затрат и цен. Точку безубыточности будем рассматривать в натуральном выражении. Затраты и цены будем выражать в некоторых условных единицах.

Пример 1. Маржинальный доход в начальном состоянии.

На приведенном ниже графике точка безубыточности Тбн = 20 штук, постоянные затраты 300, переменные затраты 10, цена 25.

В точке безубыточности линия маржинального дохода пересекает линию постоянных затрат, линия доходов пересекает и идет выше линии общих (валовых) затрат, линия прибыли пересекает 0 — переходит из зоны убытков в зону прибыли. Линия маржинального дохода параллельна линии прибыли.

Пример 2. Маржинальный доход при увеличении постоянных затрат.

Увеличим постоянные затраты до 600 единиц, переменные затраты 10, цена 25.

Как видно на графике, точка безубыточности равна 40. Линия маржинального дохода идет на большем расстоянии от линии прибыли. Это расстояние равно постоянным затратам.

Пример 3. Маржинальный доход при увеличении переменных затрат.

Теперь увеличим переменные затраты до 20 единиц, постоянные затраты 300, цена 25.

Как видно на графике, точка безубыточности равна 60. По сравнению с примером 1 увеличился наклон линии общих затрат, вызванный увеличением переменных затрат. Так как мы должны вычесть переменные затраты из выручки, наклон линии маржинального дохода уменьшился, он растет медленнее.

Пример 4. Маржинальный доход при уменьшении цены.

Уменьшим цену до 20 единиц, постоянные затраты 300, переменные затраты 10.

Как видно на графике, точка безубыточности равна 30. По сравнению с примером 1 уменьшился наклон линии дохода и линии прибыли, в связи с уменьшением цены они растут медленнее. Т.к. линия маржинального дохода параллельна линии прибыли, маржинальный доход тоже растет медленнее.

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

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

По теме страницы

Запас финансовой прочности
Леверидж (левередж)
Карта сайта — Подробное оглавление сайта.

Маржинальная прибыль – суть и расчёт на простом примере

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

Если на простом, то маржинальная прибыль это та часть прибыли, которая образуется в результате покрытия выручкой не всех затрат (что свойственно при расчёте общей прибыли), а только прямых или переменных, образуемых и связанных непосредственно с выпуском продукции (прямо пропорционально привязанных к объему производства – сколько выпустили, столько и потратили).

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

Поэтому всегда, на вопрос – «Какой объем продукции у организации, предприятия является безубыточным ?» , ответ можно получить, только через расчёт маржинальной прибыли.

Маржинальная прибыль – это сумма выручки за вычетом переменных затрат, остающаяся в распоряжении организации и направляемая на покрытие её постоянных расходов и получение чистой прибыли.

Формула расчёта:

Маржинальная прибыль = Выручка (без налогов) – Переменные затраты

Для понятия сути маржинальной прибыли и её значения в экономике приведём простой пример.

Есть небольшое предприятие по производству легковых автомобилей.

За первый месяц своей работы предприятие произвело и продало 1 автомобиль.

При полученной выручке от его реализации в 35 000 $ оно потратило 60 000 $ (10 000 $ переменные издержки и 50 000 $ постоянные издержки).

Предприятие выручкой покрыло переменные затраты и маржинальная прибыль составила 25 000 $ (35 000 $ — 10 000 $), которой не хватило для покрытия всей величины постоянных расходов.

Общий убыток предприятия составил «-» 25 000 $ (25 000 $ — 50 000 $).

Но это не говорит, что производить такие автомобили для предприятия не выгодно. Просто объем в 1 автомобиль дал недостаточный объем положительной маржи (25 000 $).

При условии отсутствия объемов и продаж предприятие несло бы еще больше убытков «-» 50 000 $ (в виде величины накладных затрат — постоянных издержек).

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

За второй месяц своей работы предприятие произвело и продало уже 2 автомобиля.

Пропорционально выросла маржинальная прибыль (50 000 $), которая уже покрыла полностью постоянные расходы (50 000 $) и вывела общую прибыль в 0. То есть, 2 автомобиля это точка безубыточности предприятия. Все объемы свыше 2 авто будут работать на увеличение общей прибыльности предприятия.

За третий месяц своей работы предприятие произвело и продало уже 3 автомобиля.

Точка безубыточности уже пройдена и предприятие маржинальной прибылью (75 000 $) покрыло постоянные расходы (50 000 $) и получило чистой прибыли 25 000 $.

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

Какая суть и для чего вообще необходим этот показатель в управлении ?

Основное предназначение маржинальной прибыли, как критерия экономической оценки  – это определение экономической приоритетности выпускаемой продукции.

К примеру, в производстве каких видов товара больше заинтересовано предприятие или организация из всей своей возможной к выпуску ассортиментной линейки?

Некоторые скажут – «Производить и продавать надо больше того продукта у которого выше рентабельность (которая определяется величиной чистой прибыли на единицу затраченных на её производство средств)».

Но это не совсем так, чем и «грешны» многие управленцы в принятии правильных управленческих решений.

К примеру, не всегда продукт, имеющий отрицательную рентабельность по общей прибыли (чистой), говорит о том, что его не целесообразно производить.

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

Или же ситуация !

Предприятию поступила заявка по наработке некоторого продукта, который по предварительным расчётам экономической службы имеет отрицательное значение по рентабельности, рассчитанной по общей (чистой) прибыли. Менеджмент этой организации отказывается от этого заказа по причине указанной выше, хотя маржинальная прибыль с единицы этого продукта имеет положительное значение.

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

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

В заключение !

Аксиома маржинальности продукта такова :

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

Маржинальная прибыль  и безубыточность – просто и на примере –  Как-то так !

Полное руководство для начинающих

Эта статья была опубликована в рамках блога о науке о данных

 

Введение в метод опорных векторов (SVM)

SVM — это мощный контролируемый алгоритм, который лучше всего работает с небольшими наборами данных, но со сложными.

Машина опорных векторов, сокращенно SVM, может использоваться как для задач регрессии, так и для задач классификации, но, как правило, они лучше всего работают в задачах классификации. Они были очень известны в то время, когда они были созданы, в 19 веке.90-х годов, и продолжает оставаться популярным методом высокопроизводительного алгоритма с небольшой настройкой.

Надеюсь, вы уже освоили деревья решений, случайный лес, наивный байесовский метод, метод K-ближайшего соседа и ансамблевое моделирование. Если нет, я бы посоветовал вам уделить несколько минут и прочитать о них.

В этой статье я объясню вам, что такое SVM, как работает SVM, а также математическую интуицию, лежащую в основе этого важного алгоритма машинного обучения.

Содержание
  1. Что такое метод опорных векторов?
  2. Когда использовать логистическую регрессию против SVM?
  3. Типы SVM
  4. Как работает SVM
  5. Математическая интуиция за SVM
  6. Скалярное произведение
  7. Использование скалярного произведения в SVM
  8. Маржа
  9. Функция оптимизации и ее ограничения
  10. Мягкая маржа SVM
  11. Ядра SVM
  12. Различные типы ядер
  13. Как правильно выбрать ядро ​​в SVM
  14. Реализация и настройка гиперпараметров SVM в Python
  15. Преимущества и недостатки SVM
  16. Конечные примечания

Что такое метод опорных векторов?

Это задача машинного обучения с учителем, в которой мы пытаемся найти гиперплоскость, которая лучше всего разделяет два класса. Примечание: Не путайте SVM и логистическую регрессию. Оба алгоритма пытаются найти лучшую гиперплоскость, но главное отличие состоит в том, что логистическая регрессия является вероятностным подходом, тогда как метод опорных векторов основан на статистических подходах.

Теперь вопрос, какую гиперплоскость он выбирает? Может быть бесконечное количество гиперплоскостей, проходящих через точку и идеально классифицирующих два класса. Итак, какой из них лучший?

Итак, SVM делает это, находя максимальное расстояние между гиперплоскостями, что означает максимальное расстояние между двумя классами.

Когда использовать логистическую регрессию против метода опорных векторов?

В зависимости от количества имеющихся у вас функций вы можете выбрать логистическую регрессию или SVM.

SVM лучше всего работает, когда набор данных небольшой и сложный. Обычно рекомендуется сначала использовать логистическую регрессию и посмотреть, как она работает, если она не дает хорошей точности, вы можете использовать SVM без какого-либо ядра (подробнее о ядрах мы поговорим в следующем разделе). Логистическая регрессия и SVM без ядра имеют одинаковую производительность, но в зависимости от ваших функций один может быть более эффективным, чем другой.

Типы метода опорных векторов
Линейный SVM

Только когда данные идеально линейно разделимы, мы можем использовать Linear SVM. Идеальная линейная разделимость означает, что точки данных можно разделить на 2 класса, используя одну прямую линию (если она двумерная).

Нелинейный SVM

Когда данные не являются линейно разделимыми, мы можем использовать нелинейный SVM, что означает, что когда точки данных не могут быть разделены на 2 класса с помощью прямой линии (если они 2D), тогда мы используем некоторые передовые методы, такие как приемы ядра, для их классификации. . В большинстве реальных приложений мы не находим линейно разделяемых точек данных, поэтому для их решения мы используем трюк ядра.

 

Теперь давайте определим два основных термина, которые будут неоднократно повторяться в этой статье:

Опорные векторы:

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

Поле: это расстояние между гиперплоскостью и ближайшими к гиперплоскости наблюдениями (опорными векторами). В SVM большая маржа считается хорошей маржой. Существует два типа полей жесткая маржа и мягкая маржа. Подробнее об этих двух я расскажу в следующем разделе.

Изображение 1

Как работает машина опорных векторов?

SVM определяется таким образом, что он определяется только в терминах опорных векторов, нам не нужно беспокоиться о других наблюдениях, поскольку запас делается с использованием точек, которые находятся ближе всего к гиперплоскости (опорные векторы), тогда как в логистической регрессии классификатор определен по всем точкам. Следовательно, SVM обладает некоторыми естественными ускорениями.

Давайте разберемся с работой SVM на примере. Предположим, у нас есть набор данных с двумя классами (зеленый и синий). Мы хотим классифицировать эту новую точку данных как синюю или зеленую.

Источник изображения: Автор

Чтобы классифицировать эти точки, у нас может быть много границ решений, но вопрос в том, какая из них наилучшая и как ее найти? ПРИМЕЧАНИЕ: Поскольку мы наносим точки данных на двумерный график, мы называем эту границу решения прямой линией , но если у нас есть больше измерений, мы называем эту границу решения «гиперплоскостью»

Источник изображения: Автор

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

Источник изображения: Автор

Математическая интуиция за машиной опорных векторов

Многие люди игнорируют математическую интуицию, стоящую за этим алгоритмом, потому что его довольно сложно переварить. Здесь, в этом разделе, мы постараемся понять каждый шаг работы под капотом. SVM — это широкая тема, и люди все еще проводят исследования этого алгоритма. Если вы планируете проводить исследования, то это может быть неподходящим местом для вас.

Здесь мы поймем только ту часть, которая требуется при реализации этого алгоритма. Вы, должно быть, слышали о первичной формуле , двойной формулировке, множителе Лагранжа 9.0012 и т. д. Я не говорю, что эти темы не важны, но они более важны, если вы планируете проводить исследования в этой области. Давайте двигаться вперед и увидеть магию этого алгоритма.

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

Скалярное произведение

Все мы знаем, что вектор — это величина, которая имеет не только направление, но и величину, и точно так же, как числа, мы можем использовать математические операции, такие как сложение, умножение. В этом разделе мы попытаемся узнать об умножении векторов, которое можно выполнить двумя способами: скалярным произведением и перекрестным произведением. Разница только в том, что скалярное произведение используется для получения в результате скалярного значения, тогда как перекрестное произведение используется для повторного получения вектора.

Скалярное произведение может быть определено как проекция одного вектора на другой, умноженная на произведение другого вектора.

Изображение 2

Здесь a и b — два вектора, чтобы найти скалярное произведение между этими двумя векторами, мы сначала находим величину обоих векторов, а чтобы найти величину, мы используем теорему Пифагора или формулу расстояния.

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

А . В = |А| cosθ * |B|

Где |А| cosθ — проекция A на B

И |Б| величина вектора B

Теперь в SVM нам нужна только проекция A, а не величина B, позже я объясню почему. Чтобы просто получить проекцию, мы можем просто взять единичный вектор B, потому что он будет в направлении B, но его величина будет равна 1. Следовательно, теперь уравнение принимает вид:

А.В = |А| cosθ * единичный вектор B

Теперь давайте перейдем к следующей части и посмотрим, как мы будем использовать это в SVM.

 

Использование скалярного произведения в SVM:

Рассмотрим случайную точку X, и мы хотим знать, лежит ли она на правой стороне плоскости или на левой стороне плоскости (положительной или отрицательной).

Чтобы найти это, сначала предположим, что эта точка является вектором (X), а затем мы создадим вектор (w), перпендикулярный гиперплоскости. Предположим, что расстояние вектора w от начала координат до границы решения равно «c». Теперь возьмем проекцию вектора X на w.

Мы уже знаем, что проекция любого вектора или другого вектора называется скалярным произведением. Следовательно, мы берем скалярное произведение векторов x и w. Если скалярное произведение больше, чем «с», мы можем сказать, что точка лежит на правой стороне. Если скалярное произведение меньше «с», то точка находится слева, а если скалярное произведение равно «с», то точка лежит на границе решения.

Вы, должно быть, сомневаетесь, почему мы взяли этот перпендикулярный вектор w к гиперплоскости? Итак, нам нужно расстояние вектора X от границы решения, и на границе может быть бесконечное количество точек, от которых можно измерить расстояние. Вот почему мы приходим к стандарту, мы просто берем перпендикуляр и используем его в качестве эталона, а затем берем проекции всех других точек данных на этот перпендикулярный вектор, а затем сравниваем расстояние.

В SVM также есть понятие маржи. В следующем разделе мы увидим, как мы находим уравнение гиперплоскости и что именно нам нужно оптимизировать в SVM.

 

Запас в методе опорных векторов

Все мы знаем, что уравнение гиперплоскости имеет вид w. x+b=0, где w — вектор, нормальный к гиперплоскости, а b — смещение.

Чтобы классифицировать точку как отрицательную или положительную, нам нужно определить решающее правило. Мы можем определить правило принятия решения как:

Если значение w.x+b>0, то мы можем сказать, что это положительная точка, в противном случае это отрицательная точка. Теперь нам нужны (w,b) такие, чтобы поле имело максимальное расстояние. Допустим, это расстояние равно «d».

Для расчета d нам нужно уравнение L1 и L2. Для этого примем несколько предположений, что уравнение L1 равно w.x+b=1 , а уравнение L2 равно w.x+b=-1 . Теперь вопрос приходит

1. Почему величина равная, почему не взяли 1 и -2?

2. Почему мы взяли только 1 и -1, а не любое другое значение, например 24 и -100?

3. Почему мы взяли эту линию?

Попробуем ответить на эти вопросы:

1. Мы хотим, чтобы наша плоскость находилась на одинаковом расстоянии от обоих классов, что означает, что L должна проходить через центр L1 и L2, поэтому мы берем величину равной.

2. Допустим, уравнение нашей гиперплоскости 2x+y=2, мы видим, что даже если мы умножим все уравнение на какое-то другое число, линия не изменится (попробуйте построить на графике). Следовательно, для математического удобства мы принимаем его равным 1,9.0006

3. Теперь главный вопрос, а почему именно эту строку надо считать? Чтобы ответить на этот вопрос, я попытаюсь воспользоваться помощью графиков.

Предположим, что уравнение нашей гиперплоскости 2x+y=2:

Давайте создадим запас для этой гиперплоскости,

Если умножить эти уравнения на 10, мы увидим, что параллельная линия (красная и зеленая) приближается к нашей гиперплоскости. Для большей наглядности посмотрите на этот график (https://www.desmos.com/calculator/dvjo3vacyp)

Мы также наблюдаем, что если мы разделим это уравнение на 10, то эти параллельные линии станут больше. Посмотрите на этот график (https://www.desmos.com/calculator/15dbwehq9).г).

Этим я хотел показать вам, что параллельные прямые зависят от (w,b) нашей гиперплоскости, если мы умножим уравнение гиперплоскости с коэффициентом больше 1, то параллельные прямые сожмутся, а если мы умножим с коэффициентом меньше чем 1, они расширяются.

Теперь мы можем сказать, что эти линии будут двигаться, когда мы изменяем (w,b), и вот как это оптимизируется. Но что такое функция оптимизации? Давайте посчитаем.

Мы знаем, что цель SVM состоит в том, чтобы максимизировать этот запас, который означает расстояние (d). Но ограничений на это расстояние (d) немного. Давайте посмотрим, что это за ограничения.

 

Функция оптимизации и ее ограничения

Чтобы получить нашу функцию оптимизации, нужно учесть несколько ограничений. Это ограничение заключается в том, что «Мы рассчитаем расстояние (d) таким образом, чтобы ни одна положительная или отрицательная точка не пересекала предельную линию». Запишем эти ограничения математически:

Вместо того, чтобы выдвигать вперед 2 ограничения, мы попробуем упростить эти два ограничения до 1. Мы предполагаем, что отрицательные классы имеют y=-1 и положительные классы имеют y=1 .

Можно сказать, что для правильной классификации каждой точки всегда должно выполняться это условие:

Предположим, что зеленая точка правильно классифицирована, что означает, что она будет соответствовать w. x+b>=1, , если мы умножим это на y=1 , мы получим то же самое уравнение, упомянутое выше. Точно так же, если мы сделаем это с красной точкой с y=-1 , мы снова получим это уравнение . Следовательно, мы можем сказать, что нам нужно максимизировать (d) так, чтобы это ограничение выполнялось.

Возьмем 2 опорных вектора, 1 из отрицательного класса и 2 и из положительного класса. Расстояние между этими двумя векторами x1 и x2 будет равно (x2-x1) вектору . Что нам нужно, так это кратчайшее расстояние между этими двумя точками, которое можно найти с помощью трюка, который мы использовали в скалярном произведении. Мы берем вектор «w», перпендикулярный гиперплоскости, а затем находим проекцию вектора (x2-x1) на «w». Примечание: этот перпендикулярный вектор должен быть единичным вектором, тогда только это будет работать. Почему это должен быть единичный вектор? Это было объяснено в разделе точечного произведения. Чтобы сделать этот «w» единичным вектором, мы разделим его на норму «w».

Мы уже знаем, как найти проекцию вектора на другой вектор. Мы делаем это скалярным произведением обоих векторов. Итак, давайте посмотрим, как

Так как x2 и x1 являются опорными векторами и лежат на гиперплоскости, то они будут следовать y i * (2.x+b)=1 поэтому мы можем записать это как:

Подставляя уравнения (2) и (3) в уравнение (1) получаем:

Отсюда уравнение, которое мы должны максимизировать:

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

 

Мягкая маржа SVM

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

Чтобы решить эту проблему, мы модифицируем это уравнение таким образом, чтобы оно допускало мало ошибочных классификаций, что означает, что оно допускало неправильную классификацию нескольких точек.

Мы знаем, что max[f(x)] также можно записать как min[1/f(x)] , общепринятой практикой является минимизация функции стоимости для задач оптимизации; следовательно, мы можем инвертировать функцию.

Чтобы составить уравнение с мягкой границей, мы добавляем к этому уравнению еще 2 члена, которые равны дзета 9.0012 и умножить на гиперпараметр «c»

для всех правильно классифицированных баллов. мы видим неправильно классифицированные зеленые точки, значение zeta будет расстоянием этих точек от гиперплоскости L1 и для неправильно классифицированной красной точки zeta будет расстоянием этой точки от гиперплоскости L2.

Итак, теперь мы можем сказать, что это Ошибка SVM = Ошибка маржи + Ошибка классификации. Чем выше маржа, тем меньше возможная маржинальная ошибка, и наоборот.

Допустим, вы берете высокое значение «c» = 1000, это будет означать, что вы не хотите сосредотачиваться на маржинальной ошибке и просто хотите получить модель, которая не неправильно классифицирует ни одну точку данных.

Посмотрите на рисунок ниже.

Если кто-то спросит вас, какая модель лучше, та, где маржа максимальна и есть 2 неправильно классифицированные точки, или та, где маржа очень меньше, и все точки классифицированы правильно?

Ну, на этот вопрос нет правильного ответа, но мы можем использовать SVM Error = Margin Error + Classification Error, чтобы оправдать это. Если вы не хотите, чтобы в модели была какая-либо неправильная классификация, вы можете выбрать рисунок 2 . Это означает, что мы увеличим «c», чтобы уменьшить ошибку классификации, но если вы хотите, чтобы ваша маржа была максимальной, значение «c» должно быть минимальным. Вот почему «c» — это гиперпараметр, и мы находим оптимальное значение «c», используя GridsearchCV и перекрестную проверку.

Давайте двигаться дальше и теперь узнаем об очень хорошем трюке под названием «Трюк с ядром» .

 

Ядра в машине опорных векторов

Самая интересная особенность SVM заключается в том, что он может работать даже с нелинейным набором данных, и для этого мы используем «Kernel Trick», который упрощает классификацию точек. Предположим, у нас есть такой набор данных:

.

Источник изображения: Автор

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

Изображение 3

Ниже приведены некоторые функции ядра, которые вы можете использовать в SVM:

1. Полиномиальное ядро ​​

Ниже приведена формула ядра полинома:

Здесь d — степень многочлена, которую нам нужно указать вручную.

Предположим, у нас есть две функции X1 и X2 и выходная переменная Y, поэтому, используя полиномиальное ядро, мы можем записать ее как:

Итак, нам нужно найти X 1 2 , X 2 2 и X1.X2, и теперь мы видим, что 2 измерения были преобразованы в 5 измерений.

Изображение 4
2. Сигмовидное ядро ​​

Мы можем использовать его как прокси для нейронных сетей. Уравнение:

Он просто берет ваши входные данные, сопоставляя их со значениями 0 и 1, чтобы их можно было разделить простой прямой линией.

Источник изображения: https://dataaspirant.com/svm-kernels/#t-1608054630725

 

3. Ядро RBF

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

где,

1. «σ» — это дисперсия и наш гиперпараметр
2. || Х₁ – Х₂ || — Евклидово расстояние между двумя точками X₁ и X₂

Изображение 5

4. Ядро функции Бесселя

В основном используется для устранения перекрестного члена в математических функциях. Ниже приведена формула ядра функции Бесселя:

5. Ядро Anova

Он хорошо работает с задачами многомерной регрессии. Формула для этой функции ядра:

 

Как правильно выбрать ядро?

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

Выбор ядра полностью зависит от того, с каким набором данных вы работаете. Если это линейно разделимо, вы должны выбрать. для линейной функции ядра, так как она очень проста в использовании, а сложность намного ниже по сравнению с другими функциями ядра. Я бы рекомендовал вам начать с гипотезы о том, что ваши данные линейно разделимы, и выбрать линейную функцию ядра.

Затем вы можете перейти к более сложным функциям ядра. Обычно мы используем SVM с RBF и линейной функцией ядра, потому что другие ядра, такие как полиномиальное ядро, используются редко из-за низкой эффективности. Но что, если и линейный, и RBF дают примерно одинаковые результаты? Какое ядро ​​теперь выбираем? Давайте разберемся с этим на примере, для простоты я возьму только 2 функции, которые означают только 2 измерения. На рисунке ниже я нанес границу решения линейного SVM для 2 функций набора данных радужной оболочки:

 

Изображение 6

Здесь мы видим, что линейное ядро ​​отлично работает на этом наборе данных, а теперь посмотрим, как будет работать ядро ​​RBF.

Изображение 7

Мы видим, что оба ядра дают одинаковые результаты, оба хорошо работают с нашим набором данных, но какое из них выбрать? Линейный SVM — это параметрическая модель. Параметрическая модель — это концепция, используемая для описания модели, в которой все ее данные представлены в ее параметрах. Короче говоря, единственная информация, необходимая для прогнозирования будущего на основе текущего значения, — это параметры.

Сложность ядра RBF возрастает по мере увеличения размера обучающих данных. В дополнение к тому, что подготовка ядра RBF обходится дороже, мы также должны поддерживать матрицу ядра, а проекция в это «бесконечное» многомерное пространство, где данные становятся линейно разделимыми, также обходится дороже во время прогнозирования. Если набор данных нелинейный, то использование линейного ядра не имеет смысла, мы получим очень низкую точность, если сделаем это.

Изображение 8

Таким образом, для такого набора данных мы можем использовать RBF даже не задумываясь, потому что он определяет границы решения следующим образом:

Изображение 9

Внедрение и настройка гиперпараметров машины опорных векторов в Python

Для реализации набора данных мы будем использовать набор данных Income Evaluation, который содержит информацию о личной жизни человека и результат 50 000 или <= 50. Набор данных можно найти здесь (https://www.kaggle.com/lodetomasi1995/income-classification)

.

Задача здесь состоит в том, чтобы классифицировать доход человека при наличии необходимых исходных данных о его личной жизни.

Сначала импортируем все необходимые библиотеки.

 # Импорт всех соответствующих библиотек

из sklearn.svm импортировать SVC

импортировать numpy как np

импортировать панд как pd

из sklearn.preprocessing импортировать StandardScaler

из sklearn.model_selection импорта train_test_split

импорт из sklearn.metrics: точность_оценки, путаница_матрица

предварительная обработка импорта из sklearn

предупреждения об импорте

предупреждения.filterwarnings("игнорировать")

Теперь давайте прочитаем набор данных и посмотрим на столбцы, чтобы лучше понять информацию.

df = pd.read_csv('income_evaluation.csv') 
 df.head() 

 

Я уже сделал часть предварительной обработки данных, и вы можете посмотреть весь код здесь. Здесь моя основная цель — рассказать вам, как реализовать SVM на python.

Теперь для обучения и тестирования нашей модели данные должны быть разделены на обучающие и тестовые данные.
Мы также будем масштабировать данные, чтобы они находились в диапазоне от 0 до 1.

 # Разделить набор данных на тестовые и обучающие данные 
 X_train, X_test, y_train, y_test = train_test_split(df.drop('доход', ось=1),df['доход'], test_size=0,2) 

Теперь давайте продолжим определение классификатора опорных векторов вместе с его гиперпараметрами. Далее мы подгоним эту модель к обучающим данным.

 # Определить классификатор опорных векторов с гиперпараметрами 
 svc = SVC (случайное_состояние = 101) 
 точности = cross_val_score(svc,X_train,y_train,cv=5) 
 svc.fit(X_train,y_train) 
 print("Оценка поезда:"np.mean(точность)) 
 printf("Оценка теста:"svc.score(X_test,y_test)) 

Модель обучена, и теперь мы также можем наблюдать за выходными данными.

Ниже вы можете увидеть точность набора данных теста и обучения

 

Вы даже можете гипертюнинговать свою модель по следующему коду:

 сетка = {
 'С':[0.01,0.1,1,10], 
 'ядро' : ["линейный","поли","rbf","сигмоид"], 
 'степень' : [1,3,5,7], 
 'гамма': [0.01,1] 
 } 
 свм = СВК () 
 svm_cv = GridSearchCV (svm, сетка, cv = 5) 
 svm_cv.fit(X_train,y_train) 
 печать ("Лучшие параметры:", svm_cv.best_params_) 
 print("Оценка поезда:", svm_cv.best_score_) 
 print("Оценка теста:", svm_cv.score(X_test,y_test)) 

 

Набор данных довольно большой, и, следовательно, потребуется время для обучения, по этой причине я не могу вставить результат приведенного выше кода здесь, потому что SVM плохо работает с большими наборами данных, требуется много времени, чтобы получить обученный.

Преимущества SVM

1. SVM работает лучше, когда данные являются линейными

2. Более эффективен в больших размерах

3. С помощью трюка с ядром мы можем решить любую сложную проблему

4. SVM не чувствителен к выбросам

5. Может помочь нам с классификацией изображений

Недостатки SVM

1. Выбрать хорошее ядро ​​непросто

2. Не показывает хороших результатов на большом наборе данных

3. Гиперпараметрами SVM являются Cost-C и gamma. Не так-то просто точно настроить эти гиперпараметры. Трудно представить себе их влияние

Конец Примечания

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

Об авторе

В настоящее время я учусь на последнем курсе по статистике (бакалавр статистики) и очень интересуюсь наукой о данных, машинным обучением и искусственным интеллектом. Мне нравится погружаться в данные, чтобы обнаруживать тенденции и другие ценные сведения о данных. Я постоянно учусь и мотивирован пробовать что-то новое.

Открыт к сотрудничеству и работе.

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

Свяжитесь со мной в LinkedIn и Twitter

Источник изображения:

  • Изображение 1: https://www.javatpoint.com/machine-learning-support-vector-machine-algorithm
  • Изображение 2: https://byjus.com/maths/dot-product-of-two-vectors/
  • Изображение 3: https://medium.com/@zxr.nju/what-is-the-kernel-trick-why-is-it-important-98a98db0961d
  • Изображение 4: https://www.oreilly.com/library/view/machine-learning-quick/9781788830577/fc007e8f-36a8-4d27-8e22-5d4d82270cdf.xhtml
  • Изображение 5: https://dataaspirant.com/svm-kernels/#t-1608054630725
  • Изображение 6: https://www.kdnuggets.com/2016/06/select-support-vector-machine-kernels. html
  • Изображение 7: https://www.kdnuggets.com/2016/06/select-support-vector-machine-kernels.html
  • Изображение 8: https://www.kdnuggets.com/2016/06/select-support-vector-machine-kernels.html
  • Изображение 9: https://www.kdnuggets.com/2016/06/select-support-vector-machine-kernels.html

 

Материалы, показанные в этой статье, не принадлежат Analytics Vidhya и используются по усмотрению Автора.

Как рассчитываются расчетная маржа, EM% и наценка в RestockPro?

RestockPro вычисляет предполагаемую маржу и предполагаемую наценку, чтобы помочь вам понять, является ли товар прибыльным и должен ли он быть пополнен или нет. Щелкните значок калькулятора в столбце EM/EM%/Markup, чтобы просмотреть подробные сведения о расчетах.

Расчет расчетной маржи осуществляется по формуле:

Цена продажи — Затраты — Комиссии Amazon = Маржа

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

Цена

В модальном окне Расчетная маржа вы можете выбрать один из нескольких ценовых вариантов, чтобы увидеть, чем отличаются Расчетная маржа и Наценка. Те же параметры доступны на странице «Настройки расчета» (см. «Параметры» > «Настройки»), где вы можете выбрать, какой из них имеет приоритет в зависимости от доступных данных. Вот варианты цен:

  • Средняя цена продажи за 7 дней : Ваша цена может часто меняться, особенно если вы используете автоматическое переоценивание. Этот вариант использует среднюю цену, которую покупатели фактически заплатили за товар за последние семь дней, показывая вам среднюю сумму денег, которую вы можете ожидать за продажу этого SKU. По умолчанию эта цена имеет приоритет при расчете маржи.
  • Новая цена коробки для покупки : В этом варианте используется текущая цена рекомендуемого предложения для этого товара в новом состоянии. Выберите эту цену, чтобы увидеть, получите ли вы приемлемую маржу, сравнявшись с текущей ценой Buy Box.
  • Цена по прейскуранту : Эта опция использует вашу текущую цену для этого товара. Вы можете выбрать это, чтобы увидеть, получаете ли вы в настоящее время хорошую маржу, если ваша цена достаточно стабильна. Если ваша цена часто меняется, средняя цена продажи за 7 дней будет более полезной.
  • Самая низкая цена предложения FBA : Этот вариант использует цену текущего самого низкого предложения Fulfillment by Amazon в списке. Выберите эту цену, чтобы увидеть, получите ли вы приемлемую маржу, сопоставив самую низкую цену FBA.

Затраты

Далее калькулятор вычитает ваши затраты из выбранной цены. Стоимость указана на странице Товары.

  • Текущая стоимость поставщика : это цена, которую вы платите своему поставщику за каждую единицу SKU. Это текущая стоимость поставщика, установленная для продукта (см. страницу «Продукты» в верхней части навигации).
  • Плата за входящую доставку : это стоимость доставки от поставщика, как показано на странице сведений о продукте.
  • Плата за повторную доставку : это стоимость доставки со склада на Amazon.
  • Плата за материалы для переупаковки : это стоимость подготовки товара в соответствии со спецификацией Amazon.
  • Плата за переупаковку : это стоимость рабочей силы, связанная с подготовкой товара к отправке.
  • Скидки поставщикам : Это позволяет учитывать любые скидки, которые вы получаете на продукт.

Сборы Amazon

Наконец, сборы Amazon вычитаются из скорректированной стоимости, включая:

  • Сборы FBA : сборы, которые Amazon взимает за свои услуги.
  • Реферальные сборы : комиссия, выплачиваемая Amazon с каждой продажи в зависимости от цены товара.
  • Ежемесячная плата за хранение : рассчитывается на основе 30-дневного хранения в соответствии с графиком платежей, размещенным на Seller Central.
  • Переменная плата за закрытие : плата, уплачиваемая Amazon только за медиа-продукты; для всех остальных элементов это будет отображаться как ноль.

Totals

Цена за вычетом затрат и сборов, описанных выше, дает три итога:

  1. Предполагаемая маржа (EM) : сумма денег, которую вы можете получить от продажи этого SKU.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *