Прежде всего, ответьте на один вопрос: Что вы пытаетесь достичь? Другими словами - что ваша модель должна делать «в дикой природе». Оценочный показатель должен просто ответить на этот вопрос, и ничего другого. Во-вторых - всегда первый сплит данные, затем препроцесс. Это имеет решающее значение, когда вы пытаетесь воспроизвести некоторые данные, как вы предлагаете, - если вы сначала реплицируете, а затем разделите, вы можете получить те же самые точек в обоих поездах и тестах, что было бы ужасно для вашей оценки.
В частности - вы имеете дело с несбалансированным набором данных. Главный вопрос: Почему неуравновешен? Причина в том, что данные real являются несбалансированными (например, вы имеете дело с бинарной классификацией с различными редкими положительными классами), или это является следствием некоторого нечетного способа сбора данных, что на самом деле не является случайной выборкой из основного процесса (например, обычные классы полностью сбалансированы, но ваш помеченный набор данных не является, поскольку люди предпочитают помечать положительные образцы в вашей проблеме). Если реальные данные не сбалансированы, то вы не можете изменить баланс в тестовом наборе, это полностью нарушит любые выводы, которые вы попытаетесь извлечь из экспериментов. Данные испытаний должны соответствовать репрезентативным образцом достоверных данных. Вы не можете изменить его «для своих нужд», никогда. Если последнее верно, то вы можете попытаться изменить тест, чтобы сделать его более похожим на истинные данные (тот же аргумент, что и раньше).
Что вы можете сделать, это изменить метрику в соответствии с тем, что вам нужно (и да, данные передискретизации теста могут достичь того же эффекта, но важно понять, что вы здесь делаете - вы можете изменить метрику, но вы не можете трогать тестовый набор, если вы хотите получить вероятные вероятностные рассуждения вообще). Если вам просто нужна модель, которая имеет высокую вероятность правильной классификации со случайными точками использования данных. Если вам больше нравится какой-то класс (в неуравновешенном сценарии вы часто это делаете), вы всегда можете получить избыточный вес стоимость ошибки путем добавления разных затрат на FP или FN и вычисления собственного показателя на основе матрицы смешения. Просто помните, что если вы используете пользовательскую метрику, вам нужно «рассказать» свою модель, которую вы делаете. 90% наших классификаторов предполагают, что вы заботитесь о точности, и они максимизируют ее. Если вы измените метрику - «наивное» применение классификатора снова может привести к неверным выводам (с точки зрения выбора модели).
Подводя итог:
- не изменяют распределение тестовых данных (без передискретизации!)
- установить метрику, который соответствует , что вы хотите узнать
- добавить эту информацию в схему обучения (например - присоединять классы весов для SVM, логистическая регрессия и т.д.)
Просто общее замечание - вы не может ничего научиться с ** отдельным примером ** в классе. собрать ** порядков ** больше данных. – lejlot