Здесь требуется некоторая осторожность, поскольку само определение случайного классификатора несколько двусмысленно; это лучше всего иллюстрируется в случае несбалансированных данных.
По определению, точность двоичного классификатора составляет
acc = P(class=0) * P(prediction=0) + P(class=1) * P(prediction=1)
, где P
обозначает вероятность.
Действительно, если мы будем придерживаться интуитивного определения случайного двоичного классификатора как:
P(prediction=0) = P(prediction=1) = 0.5
тогда точность, вычисленная по вышеприведенной формуле, всегда равна 0,5, независимо от распределения классов (то есть значений P(class=0)
и P(class=1)
).
Однако в этом определении есть неявное предположение , то есть, что наши классы сбалансированы , каждый из которых состоит из 50% нашего набора данных.
Это предположение (и соответствующая интуиция) нарушается в случаях дисбаланса класса : если у нас есть набор данных, где, скажем, 90% выборок относятся к классу 0 (т.е. P(class=0)=0.9
), то не имеет смысла использовать приведенное выше определение случайного двоичного классификатора; вместо этого мы должны использовать процентные доли самих распределений классов в качестве вероятностей нашего случайного классификатора, т.е.
P(prediction=0) = P(class=0) = 0.9
P(prediction=1) = P(class=1) = 0.1
Теперь, добавив эти значения в формулу, определяющую точность, мы получим:
acc = P(class=0) * P(prediction=0) + P(class=1) * P(prediction=1)
= (0.9 * 0.9) + (0.1 * 0.1)
= 0.82
, что не близко к наивному значению 0,5 ...
Как я уже сказал, AFAIK, в литературе нет четких определений случайного классификатора. Иногда «наивный» случайный классификатор (всегда подбрасывает справедливую монету) упоминается как классификатор «случайное предположение», тогда как то, что я описал, называется «взвешенное предположение» "один, но все же это далеко не принято в качестве стандарта ...
Суть здесь в следующем: поскольку основной причиной использования случайного классификатора является baseline , имеет смысл делать это только в относительно сбалансированных наборах данных. В вашем случае баланса 60-40 результат оказывается равным 0,52, что, по общему признанию, недалеко от наивного 0,5; но для сильно несбалансированных наборов данных (например, 90-10) сама полезность случайного классификатора в качестве базовой линии перестает существовать, поскольку правильная базовая линия стала «всегда предсказывать класс большинства», что в данном случае дает точность 90%, в отличие от случайного классификатора точность всего 82% ...