Переоснащение дерева решений даже данными обучения / валидации / тестирования - PullRequest
1 голос
/ 17 февраля 2012

Моя проблема заключается в следующем.У меня есть 6 наборов данных (собранных за разные дни), для которых я хочу построить классификатор дерева решений.Мне нужно найти оптимальный параметр глубины дерева, чтобы избежать перебора и иметь хороший прогноз для новых данных.

Моя первая попытка состояла в том, чтобы разделить каждый набор данных на 50% / 25% / 25% на обучение / проверку / тестированиеи объединил их в три больших файла.Я составил график точности в зависимости от глубины дерева, обучился с использованием большого обучающего набора и рассчитал точность по большому набору проверки.Тем не менее, я заметил, что точность набора проверки продолжала увеличиваться с увеличением глубины дерева и никогда не уменьшалась!

Точность достигала около 99% при глубине дерева 20. Даже точность тестового набора составляла около 99%.Я предположил, что это должно быть более подходящим, основываясь на моих знаниях данных.Я подтвердил это, удалив один из наборов данных, оставив только 5. Я тренировался на оставшихся 5 наборах данных, используя ту же процедуру, что и выше, разделив их на обучение / валидацию / тестирование и тренировку на глубине 20. На этот раз я проверил его понабор данных, который я пропустил, и он дал очень плохой результат, с точностью 50%.

Оказывается, мой набор данных содержит много «повторяющихся» данных из-за характера временных рядов.До такой степени, что выборка 25-50% любого набора данных, вероятно, эквивалентна выборке 100%, отсюда и перевыбор.Я решил попробовать другую стратегию, случайным образом перетасовывая набор данных 6 и разделяя их на обучение / проверку с помощью 3/3, повторяя это 20 раз и усредняя результаты, чтобы найти оптимальную глубину дерева.Я все еще жду результата, который должен быть сделан через несколько дней ...

Итак, мой вопрос (наконец-то!): Является ли то, что я сделал, звуковым методом?Какие еще виды забавных данных я должен знать?Похоже, у моего набора данных есть «гоча», о котором я уже упоминал.

1 Ответ

1 голос
/ 22 февраля 2012

Оказывается, проблема была довольно тонкой.Короче говоря, НЕ проверяйте данные (для несбалансированного набора данных) и не выполняйте перекрестную проверку!

Длинная история.У меня был несбалансированный набор данных, где у меня было больше отрицательных образцов, чем положительных, примерно в 7-10 раз.Мой выбор заключался в том, чтобы либо увеличить выборку положительного с помощью дублирования, либо уменьшить выборку отрицательного.Я пошел с сэмплированием.Это означает, что во время перекрестной проверки каждая складка имеет очень высокий шанс выбрать все исходные положительные образцы и, таким образом, превзойти положительные образцы.Я сейчас отбираю отрицательные выборки, несколько раз провожу перекрестную проверку и перетасовываю данные.Кажется, сейчас работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...