Вопрос или проблема
Предположим, я хочу определить вероятности победы в категории лучший фильм на Оскарах. Я знаю следующие правила:
- В каждом году есть только 1 победитель.
- Логически, сумма предсказанных вероятностей для каждого года должна составлять 1.
Я могу использовать год в своем классификаторе, но это не означает, что 1 и 2 правила соблюдаются. Если я использую простой классификатор, например, логистическую регрессию, я также не вижу, как наличие года в качестве признака поможет.
Мои вопросы следующие:
Существует ли способ обеспечить соблюдение этих правил в модели? Имеет ли это значение?
Должен ли я просто использовать модель без этих правил и нормализовать вероятности до 1, когда пытаюсь предсказать для данного года?
Как отметил @Emre в комментариях, вам нужно использовать функцию softmax. После получения набора оценок для каждого фильма, функция приведет оценки в диапазон [0,1], и сумма оценок составит 1.
Вот возможная процедура:
- Сгенерируйте набор признаков для каждого фильма
- Обучите модель на вашем наборе признаков, чтобы получить оценку для фильма. Оценка – это число в произвольной области.
- Повторите шаг 2 для всех ваших кандидатов в фильмы, чтобы создать вектор оценок.
- Передайте вектор оценок в функцию softmax, чтобы привести оценки в диапазон [0,1] и сделать их сумму равной 1.
Для справки, функция softmax определяется как:
$ \sigma(z_i) = \frac{e^{z_i}}{\displaystyle\sum^N_{n=1}e^{z_n}} $
И пример:
Наш набор признаков будет включать следующее: рейтинги критиков/аудитории, доход, стоимость, общее количество проданных билетов и т.д.
Предположим, у вас есть исторические данные Оскаров, которые включают наборы признаков и оценку, которую мы будем использовать в качестве эталонного показателя. Вы определяете оценку. Например, если фильм даже не был номинирован на Оскара, он может иметь оценку ноль, в то время как фильм-победитель может иметь оценку 1. Фильм, который был номинирован, но не получил много голосов, может иметь оценку 0.50.
Вы обучаете модель на ваших исторических данных так, чтобы, учитывая набор признаков фильма, она выдавала оценку, аналогичную вашему обучающему набору.
Теперь вы рассматриваете три фильма для предсказания: Мстители: Война бесконечности, Дэдпул 2 и Веном.
Вы получаете их наборы признаков (те же категории, которые вы использовали для обучения: рейтинги критиков/аудитории, доход и т.д.)
Затем вы передаете каждый набор признаков через свою модель и получаете вектор оценок:
\begin{array}{|l|c|}
\hline
Фильм & Оценка\\
\hline
Мстители: Война бесконечности & 0.98\\
Дэдпул 2 & 0.82\\
Веном & 0.24\\
\hline
\end{array}
Мы можем интерпретировать результаты оценок как вероятности, используя функцию softmax:
Числитель функции задан:
$ \displaystyle\sum^N_{n=1} e^{z_n} = e^{0.98} + e^{0.82} + e^{0.24} \ \ \ где: z=\{0.98,0.82,0.24\} $
Мы рассчитываем softmax для данной оценки $ x $ следующим образом:
$ \Large\frac{e^x}{e^{0.98} + e^{0.82} + e^{0.24}} $
Следовательно, значения softmax будут:
\begin{array}{|l|c|c|}
\hline
Фильм & Оценка & Softmax\\
\hline
Мстители: Война бесконечности & 0.98 & 0.42932\\
Дэдпул 2 & 0.82 & 0.36584\\
Веном & 0.24 & 0.20484\\
\hline
\end{array}
И мы можем видеть, что:
$ 0.42932 + 0.36584 + 0.20484 = 1 $
Ответ или решение
Чтобы решить задачу предсказания вероятности выигрыша в категории "Лучший фильм" на премии Oscars, мы можем воспользоваться подходом, который учитывает описанные вами правила.
Основные принципы:
- Единственный победитель в каждом году: Для каждого года у нас будет только один фильм, который получит награду, что означает, что предсказанные вероятности должны быть взаимно исключающимися.
- Сумма вероятностей: Вероятности должны в сумме составлять 1, чтобы соответствовать логике премии.
Рекомендуемый подход:
Мы можем реализовать модель, которая будет учитывать год и при этом обеспечивать соблюдение упомянутых правил, воспользовавшись функцией softmax.
Шаги процедуры:
-
Создание набора признаков: Для каждого фильма необходимо создать набор признаков, используя такие данные, как рейтинг критиков и зрителей, собранные с касс, бюджет, общее количество проданных билетов и другие параметры.
-
Обучение модели: Обучите модель (например, логистическую регрессию или любую другую подходящую модель) на вашем наборе данных, так чтобы она могла выдавать оценочный балл для каждого фильма. Этот балл будет находиться в произвольной шкале.
-
Построение вектора оценок: После обучения модели необходимо вычислить оценочные баллы для всех рассматриваемых фильмов в конкретном году. Например, если вы рассматриваете три фильма, ваша модель может выдать такие оценки, как 0.98, 0.82 и 0.24.
-
Применение функции softmax: Для перевода оценок в вероятности используйте функцию softmax, которая нормализует выходные значения вашей модели, чтобы они в сумме составляли 1.
Формула функции softmax выглядит следующим образом:
[
\sigma(z_i) = \frac{e^{zi}}{\sum{n=1}^{N} e^{z_n}}
]
где (z) — это вектор сырых оценок.
Пример:
Предположим, что мы получили следующие оценки для фильмов:
Фильм | Оценка |
---|---|
Avengers Infinity War | 0.98 |
Deadpool 2 | 0.82 |
Venom | 0.24 |
Для преобразования этих оценок в вероятности, мы применяем softmax:
-
Вычисляем сумму экспонент оценок:
[
\sum_{n=1}^{N} e^{z_n} = e^{0.98} + e^{0.82} + e^{0.24}
] -
Для каждого фильма рассчитываем softmax:
[
P(Avengers\ Infinity\ War) = \frac{e^{0.98}}{e^{0.98} + e^{0.82} + e^{0.24}}
]
(аналогично для других фильмов).
Проверив, что сумма вероятностей равна 1, мы можем удостовериться, что модель отвечает требованиям задачи.
Заключение:
Использование функции softmax предоставляет способ гарантировать, что выходные вероятности будут соответствовать правилам премии Oscars. Это не только дает возможность предсказания, но и улучшает интерпретируемость результатов, позволяя вам понимать, как каждый фильм соотносится с другими номинантами.