Вопрос или проблема
Теперь, конечно, не существует идеального числа, так как каждая задача уникальна, но я несколько дней искал в Google, ChatGPT и на YouTube ответ на этот вопрос и постоянно получал противоречивые отзывы. Некоторые источники говорят, что нужно использовать как можно больше доступных функций, которые можно разработать для данной задачи, а другие источники утверждают, что нужно воспользоваться знанием предмета и иметь более точный подход к выбору признаков. Я знаю, что это общий вопрос, но надеюсь, что кто-то сможет дать общее “правило большого пальца” в ответ на этот вопрос. Если говорить о конкретике, я работаю над моделью бинарной классификации, используя временные ряды / сбалансированные данные. У меня может быть около 600 признаков за 6 месяцев данных или 200, в зависимости от выбранного пути.
Выбор признаков — очень неоднозначная тема, так как у разных людей могут быть разные мнения. Кроме того, то, что работает с одним набором данных, может не сработать совсем для другого набора данных.
На мой взгляд, лучшая и наиболее точная техника выбора признаков — это Знание предмета. Используйте его, чтобы убрать шумовые признаки или создать новые полезные. Таким образом, вы уменьшаете шум/убеждение/искривление наиболее точным и правильным способом.
Тем не менее, не у всех есть знания о каждом возможном предмете. В этом случае попробуйте убрать шумовые признаки или создать новые полезные с помощью здравого смысла и поиска в Google. Вы будете удивлены, сколько информации о предмете можно получить просто с помощью простого поиска в Google.
Если всё else fails, тогда и только тогда используйте автоматизированные методы выбора признаков. Вероятно, используйте методы на основе машинного обучения (например, импорт важности на основе леса или бустинга и т. д.).
Это всего лишь мое мнение и предпочтение, так как это работало для меня довольно хорошо, но многие люди могут согласиться или не согласиться со мной. Вы можете попробовать несколько методов и посмотреть, какой из них сработает для вас лучше всего.
Удачи!
Я задал этот вопрос, когда был еще новичком в машинном обучении, после множества практики и обучения я смог значительно улучшить точность своих моделей и хочу дать ответ на основе своих находок. Не существует понятия слишком большого количества признаков при использовании выбора признаков. Однако важно убедиться, что вы определяете признаки, которые являются всего лишь шумом, чтобы не продолжать включать их в процесс выбора признаков. Знание предмета, пакетирование и несколько методов выбора признаков действительно помогли осветить те признаки, которые являются просто “шумих,” если вы потерялись.
Количество признаков, которые вы должны использовать в своей модели, зависит от нескольких факторов, включая сложность вашей задачи, объем данных, которые у вас есть, и вычислительные ресурсы, которые у вас есть. Некоторые моменты, которые вы могли бы учесть при выборе признаков:
Переобучение против недообучения: Если у вас слишком много признаков относительно количества наблюдений, ваша модель может переобучиться, что означает, что она будет хорошо работать на обучающих данных, но плохо на новых, не виденных данных. С другой стороны, если у вас слишком мало признаков, ваша модель может недообучиться, что означает, что она не сможет уловить сложность проблемы и будет плохо работать даже на обучающих данных.
Проклятие размерности: По мере увеличения количества признаков объем данных, необходимый для точной генерализации, возрастает экспоненциально. Это известно как проклятие размерности. Если у вас много признаков, но не так много данных, ваша модель может испытывать трудности с обучением.
Вычислительные ресурсы: Большее количество признаков требует больше вычислительных ресурсов для обработки. Если вы работаете с большим набором данных и имеете ограниченные вычислительные ресурсы, вам, возможно, придется уменьшить количество признаков.
Знание предмета: Если вы хорошо понимаете предмет, вы можете использовать эти знания для выбора наиболее релевантных признаков. Это часто может привести к лучшей производительности, чем просто добавлять как можно больше признаков.
Методы выбора признаков: Методы, такие как взаимная информация, тест хи-квадрат, коэффициент корреляции, рекурсивное устранение признаков и т. д., могут помочь выбрать наиболее релевантные признаки.
Сложность модели: Некоторые модели могут лучше обрабатывать данные высокой размерности, чем другие. Например, модели на основе деревьев, такие как случайные леса и градиентный бустинг, могут хорошо справляться с данными высокой размерности, тогда как линейные модели могут испытывать трудности. Вы можете создать модель случайного леса и выбрать топ-50 или 100 признаков (это зависит от вас, сколько признаков вам нужно) из модели. Это также может сработать.
В вашем случае, с данными временных рядов, важно учитывать временной аспект ваших признаков. Некоторые признаки могут быть высоко коррелированы друг с другом из-за временной природы данных, что может привести к проблемам многоколлинеарности. Методы выбора признаков, которые учитывают временной аспект, могут быть полезными.
В конечном итоге, нет однозначного ответа на этот вопрос. Часто рекомендуется начинать с более широкого набора признаков, а затем использовать методы выбора признаков и кросс-валидацию, чтобы уменьшить количество признаков до управляемого размера.
Ах, я искал ответ на этот вопрос, когда разбирался с этим, и нашел решение. Объясню, как это может помочь вам найти свой подход к работе с признаками.
Во-первых, если вы можете заметить, что группа признаков попадает в одну категорию, например (min_height, max_height и avg_height), то можете решить, что выбрать среди них в соответствии с вашей задачей; таким образом, вы можете устранить некоторые “шумовые признаки” и сосредоточиться на важных.
Во-вторых, после первой фильтрации я всегда строю корреляционные графики для каждой группы признаков и смотрю на многоколлинеарность, чтобы вы могли исключить один признак и посмотреть на признаки с сильной коллинеарностью, которые важны для вашей модели.
И на этом все, после этого вы можете провести дальнейшую фильтрацию, такую как прямой или обратный выбор, или использовать другие методы, такие как PCA.
Ответ или решение
Определение оптимального числа признаков при использовании методов выбора признаков — это вопрос, на который нет однозначного ответа. Каждая задача отличается, и подход к выбору признаков должен быть адаптирован в зависимости от конкретного контекста. Тем не менее, существует несколько общих рекомендаций и "правил большого пальца", которые могут помочь в принятии решения.
-
Понимание проблемы: Прежде всего, необходимо учитывать сложность задачи. В задачах бинарной классификации, таких как ваша, имеет значение как количество, так и качество признаков. Наличие избыточных признаков может привести к переобучению модели, в то время как слишком малое количество признаков рискует упустить важные паттерны в данных.
-
Оверфиттинг и недообучение: Если количество признаков значительно превышает количество наблюдений, это может привести к переобучению, когда модель хорошо работает на обучающих данных, но плохо на новых. В противоположность этому, слишком малое количество признаков может привести к недообучению, когда модель не способна уловить сложность данных.
-
Проклятие размерности: С увеличением числа признаков требуется экспоненциально больше данных для точного обобщения. Если у вас много признаков, но недостаточно данных, модель может не справиться с обучением.
-
Ресурсы вычислений: Чем больше признаков, тем больше вычислительных ресурсов необходимо для обработки. Если у вас ограниченные вычислительные мощности, это также следует учитывать.
-
Знание домена: Если у вас есть хорошие знания в конкретной области, это поможет вам определить наиболее значимые признаки и отсеять лишние. Это часто приводит к лучшему качеству модели по сравнению с подходом, в котором используется множество признаков без уточнений.
-
Методы выбора признаков: Используйте методы выбора признаков, такие как взаимная информация, тест хи-квадрат, корреляционные коэффициенты, рекурсивное удаление признаков и т.д. Эти методы могут помочь в идентификации наиболее значимых признаков.
-
Сложность модели: Некоторые модели хорошо справляются с высокоразмерными данными, такие как случайные леса и градиентный бустинг, в то время как линейные модели могут испытывать трудности. Вы можете создать модель на основе случайного леса и выбрать топ-50 или 100 признаков в зависимости от вашей задачи.
-
Корреляция и многократность признаков: Временные ряды могут содержать коррелированные признаки. Используйте корреляционные матрицы для удаления многоколоидных признаков и сосредоточьтесь на наиболее значимых.
В общем, нет универсального правила, касающегося количества признаков. Начните с более крупного набора признаков, а затем применяйте методы выбора и кросс-валидации, чтобы сократить их до управляемого количества. Как только вы идентифицируете шумовые признаки и оставите только полезные, ваша модель станет более устойчивой и точной.