Для классификации по нескольким меткам у вас есть два пути
Сначала рассмотрим следующее.
- количество примеров.
- это назначение метки истинности земли для примера
..
является примером
.
- это прогнозируемые метки для примера
.
Пример на основе
Метрики рассчитываются для каждого типа данных. Для каждой прогнозируемой метки вычисляется только ее оценка, а затем эти оценки агрегируются по всем точкам данных.
- Точность =
Отношение того, сколько из предсказанного является правильным. Числитель находит, сколько меток в предсказанном векторе имеет общее с основной истинностью, а соотношение вычисляет, сколько из предсказанных истинных меток на самом деле находится в основной истине.
- Напомним =
Отношение того, сколько фактических ярлыков было предсказано. Числитель определяет, сколько меток в прогнозируемом векторе имеет общее с основной истинностью (как указано выше), а затем находит отношение к числу фактических меток, получая, таким образом, какую долю фактических меток было предсказано.
Есть и другие метрики.
на основе метки
Здесь все сделано по меткам. Для каждой метки вычисляются метрики (например, точность, отзыв), а затем эти метрики по меткам агрегируются. Следовательно, в этом случае вы в конечном итоге вычисляете точность / отзыв для каждой метки по всему набору данных, как для двоичной классификации (поскольку каждая метка имеет двоичное назначение), а затем агрегируете ее.
Самый простой способ - представить общую форму.
Это просто расширение стандартного многоклассового эквивалента.
Макро усредненное ![$\frac{1}{q}\sum_{j=1}^{q}B(TP_{j},FP_{j},TN_{j},FN_{j})$](https://i.stack.imgur.com/7Jki1.gif)
Микро усредненный ![$B(\sum_{j=1}^{q}TP_{j},\sum_{j=1}^{q}FP_{j},\sum_{j=1}^{q}TN_{j},\sum_{j=1}^{q}FN_{j})$](https://i.stack.imgur.com/agJIc.gif)
Здесь
являются истинно положительным, ложно положительным, истинно отрицательным и ложно отрицательным значениями соответственно только для метки
.
Здесь $ B $ обозначает любую метрику на основе матрицы смешения. В вашем случае вы бы использовали стандартную точность и вызывали формулы. Для макро-среднего значения вы передаете счетчик для каждой метки, а затем сумму, для микро-среднего значения вы сначала усредняете значения, а затем применяете свою метрическую функцию.
Возможно, вам будет интересно взглянуть на код метрики для нескольких меток здесь , который входит в пакет mldr в R . Также вам может быть интересно заглянуть в библиотеку Java с несколькими метками MULAN .
Это хорошая статья, посвященная различным метрикам: Обзор алгоритмов обучения по нескольким меткам