Это зависит от распределения ваших классов, и определение может быть сделано только со знанием предметной области под рукой.
Вы можете задать следующие вопросы:
- Существуют ли какие-либо два класса, которые очень похожи, и достаточно ли у ученика информации, чтобы различать их?
- Есть большая разница в априорных вероятностях каждого класса?
Если это так, вы, вероятно, должны распространять классы.
По моему опыту, нет никакого вреда в перераспределении классов, но это не всегда необходимо.
Это действительно зависит от распределения ваших классов. В случае обнаружения мошенничества или вторжения распределение класса прогнозирования может составлять менее 1%.
В этом случае вы должны распределять классы равномерно в обучающем наборе, если вы хотите, чтобы классификатор изучал различия между каждым классом. В противном случае он создаст классификатор, который правильно классифицирует более 99% случаев, без правильного определения случая мошенничества, что является главной целью создания классификатора для начала.
Если у вас есть набор равномерно распределенных классов, вы можете использовать любую технику, например, k-fold, для выполнения фактического обучения.
Другим примером, когда распределения классов должны быть скорректированы, но не обязательно в равном количестве записей для каждого, является случай определения букв алфавита в верхнем регистре по их формам.
Если вы используете распределение букв, обычно используемых в английском языке, для обучения классификатора, почти не будет случаев, если таковые вообще имеются, буквы Q
. С другой стороны, буква O
очень распространена. Если вы не перераспределяете классы, чтобы учесть одинаковое количество Q
и O
, классификатор не имеет достаточно информации, чтобы когда-либо различить Q
. Вам нужно предоставить ему достаточно информации (то есть больше Q
s), чтобы можно было определить, что Q
и O
действительно разные буквы.