Вопрос или проблема
Существует существующий балл, состоящий из 10 параметров; каждый параметр имеет равный вес, и общий балл определяется путем суммирования баллов для каждого параметра.
Я хочу попытаться уменьшить число параметров в этом балле, но сохранить их равный вес.
У меня есть данные о 500 людях с баллом и двумя интересующими результатами.
Поскольку количество параметров небольшое, я начал с грубого метода, чтобы рассмотреть все возможные комбинации параметров и оценить их производительность по AUC двух результатов.
Меня беспокоит, что полученные параметры могут быть не генерализуемыми (т.е. я переобучаюсь), поэтому для уменьшения этого я хочу использовать кросс-валидацию.
Я думаю, что мне следует сделать это 10 раз:
- Случайным образом отсортировать 500 людей и разделить их на тестовый и обучающий наборы.
- Используя обучающий набор, определить лучшие параметры.
- Вывести AUC двух результатов, используя лучшую комбинацию параметров (из шага 2) с использованием тестового набора.
Затем выбрать комбинацию параметров, которая выбиралась чаще всего.
Имеет ли это смысл? Если есть совершенно другой способ выполнения выбора признаков, который лучше подходит для этого типа сценария, это тоже было бы полезно!
Я думаю, что ваш метод имеет смысл, это действительно своего рода кросс-валидация и это поможет получить более надежную оценку производительности.
Технически я думаю, что процесс, который вы описываете, это агрегирование по принципу бутстрэп (или бэггинг): многократная выборка (обычно с заменой) и расчет средней производительности на тестовом наборе. Это также предлагает несколько преимуществ:
- вы можете наблюдать подмножество параметров, выбранных каждый раз, что дает вам представление о стабильности подмножества.
- вы также можете рассчитать доверительный интервал для производительности, а не только среднюю производительность.
Однако с этим методом я бы рекомендовал повторить процесс более 10 раз, если возможно, попробуйте 100 или даже 1000 раз.
Обратите внимание, что существует множество методов кросс-валидации, у Википедии есть довольно хороший список, на мой взгляд.
Ответ или решение
Выбор признаков с помощью брутфорса и кросс-валидация
В контексте вашей ситуации, вы стремитесь сократить количество параметров в уже существующей модели, не теряя при этом их равнозначности. Ваша идея использования брутфорса с кросс-валидацией для оценки значимости параметров является подходящей, но есть несколько моментов, которые стоит учесть для улучшения вашего подхода.
Ваш текущий подход
Вы описали следующие шаги, которые вы интуитивно наметили:
- Случайным образом перемешать 500 человек и разделить их на обучающую и тестовую выборки.
- На обучающей выборке определить наилучшие параметры.
- Оценить AUC (площадь под кривой) для двух исходов, используя выбранные параметры на тестовой выборке.
Этот метод действительно помогает защитить от переобучения, но я бы рекомендовал вам подумать о нескольких улучшениях.
Рекомендации по улучшению
-
Увеличение количества итераций: Как вы уже заметили, стоит увеличить число повторений с 10 до 100 или даже 1000. Более высокое количество повторений даст вам более устойчивые результаты и более точные оценки.
-
Стратегия выбора параметров: Возможно, вместо простого брутфорса, стоит рассмотреть использование методов, таких как пошаговая регрессия (Forward/Backward Selection), деревья решений, или методы, основанные на регуляризации (например, Lasso или Ridge), которые могут более эффективно обрабатывать малое количество параметров и избегать избыточности.
-
Стратегии кросс-валидации: Вместо простого разбиения на обучающую и тестовую выборки, рассмотрите использование k-fold кросс-валидации, где данные делятся на k подвыборок. В каждом цикле k ваш алгоритм будет обучаться на k-1 подвыборках и тестироваться на одной. Это дает более стабильную оценку.
-
Метрики оценки: Хотя AUC — отличная метрика для оценки производительности модели при наличии несбалансированных классов, также рассмотрите другие метрики, такие как F1-мера, точность и полнота, в зависимости от ваших конкретных целей.
-
Использование бутстрепа: Как уже упоминали в ответе, метод бутстраппинга (Bootstrap Aggregating) может обеспечить стабильность результатов и поможет оценить доверительные интервалы производительности. Выбор нескольких моделей в зависимости от их частоты появления может повысить надежность вашего окончательного решения.
-
Анализ стабильности признаков: Важно фиксировать количество раз, когда каждый параметр выбирается в различных итерациях, и анализировать их стабильность. Если какой-то параметр часто выбирается, это может свидетельствовать о его значимости.
Заключение
Ваш метод имеет свою логику и может быть полезным, но улучшение в виде многократного проведения эксперимента, применение методов кросс-валидации, альтернативных методов выбора признаков и тщательный анализ стабильности выбранных параметров приведут к гораздо более стабильным и обоснованным результатам. Постоянное использование методов отслеживания и улучшенных оценок также повысит понимание влияния каждого параметра.
Таким образом, повышая количество итераций и используя разнообразные методы выбора и оценки признаков, вы сможете быть более уверенными в том, что выбранные параметры действительно являются значимыми и обобщаемыми при использовании на новых данных.