Многое из этого влияет на то, насколько хороша «точность» как мера производительности, и это зависит от вашей проблемы. Если ошибочная классификация «A» как «B» так же плоха/нормальна, как и ошибочная классификация «B» как «A», то нет особых причин делать что-либо, кроме как просто помечать все как «A», поскольку вы знаете, что это гарантированно будет получено. вам точность 98% (при условии, что это несбалансированное распределение представляет истинное распределение).
Не зная вашей проблемы (и если точность - это мера, которую вы должны использовать), лучший ответ, который я мог бы дать, - «это зависит от набора данных». Вполне возможно, что вы могли бы получить точность выше 99% со стандартными наивными отсеками, хотя это маловероятно. В частности, для наивного Байеса вы можете отключить использование априорных значений (априорное значение — это, по сути, доля каждого класса). Это приводит к тому, что создается впечатление, что каждый класс имеет одинаковую вероятность появления, хотя параметры модели будут получены из неравных объемов данных.
Предлагаемое вами решение — обычная практика, иногда оно работает хорошо. Другой практикой является создание поддельных данных для меньшего класса (как бы это зависело от ваших данных, для текстовых документов я не знаю какого-либо особенно хорошего способа). Другой практикой является увеличение веса точек данных в недопредставленных классах.
Вы можете выполнить поиск по запросу «несбалансированная классификация» и найти гораздо больше информации об этих типах проблем (они одни из самых сложных).
Если точность на самом деле не является хорошей мерой для вашей проблемы, вы можете поискать дополнительную информацию о «классификации с учетом затрат», которая должна быть полезной.
person
Raff.Edward
schedule
25.06.2013