дополнительные функции снижают точность - случайный лес - PullRequest
0 голосов
/ 05 мая 2019

Я использую модуль случайных лесов sklearn для прогнозирования двоичной целевой переменной на основе 166 функций.Когда я увеличиваю число измерений до 175, точность модели уменьшается (с точности = 0,86 до 0,81 и от отзыва = 0,37 до 0,32).

Я ожидаю, что больше данных сделает модель более точной,особенно когда добавленные функции имели деловую ценность.

Я построил модель, используя sklearn в python.Почему новые функции не набрали вес 0 и оставили точность такой, какой она была?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

В принципе, вы можете «путать» вашу модель с бесполезными функциями.БОЛЬШЕ ОСОБЕННОСТЕЙ или БОЛЬШЕ ДАННЫХ НЕ ВСЕГДА СДЕЛАЕТ ВАШУ МОДЕЛЬ.Новые функции также не получат нулевого веса, потому что модель будет стараться использовать их!Поскольку их так много (175!), RF просто не может вернуться к предыдущей «нетронутой» модели с большей точностью и отзывом (возможно, эти 9 функций действительно не добавляют ничего полезного).

Подумайте о том, как по существу работает дерево решений.Эти новые функции вызовут некоторые новые расколы, которые могут ухудшить результаты.Попробуйте выработать это из основ и медленно добавляя новую информацию, всегда проверяя производительность.Кроме того, обратите внимание, например, на количество функций, используемых на разделение (mtry).Для стольких функций вам нужно иметь очень высокое значение mtry (чтобы можно было учитывать большую выборку для каждого разделения).Рассматривали ли вы добавить еще 1 или 2 и проверить, как реагирует точность?Кроме того, не забудьте mtry!

0 голосов
/ 05 мая 2019

Дополнительные данные не всегда делают модель более точной.Случайный лес - это традиционный метод машинного обучения, при котором программист должен выбирать функции.Если модели дано много данных, но они плохие, то модель попытается разобраться и в этих плохих данных, и в итоге все испортится.Больше данных лучше для нейронных сетей, поскольку эти сети самостоятельно выбирают из данных наилучшие возможности.

Кроме того, 175 функций - это слишком много, и вам определенно следует изучить методы уменьшения размерности и выбрать функции, которыетесно связаны с целью.в sklearn есть несколько способов сделать это.Вы можете попробовать PCA, если ваши данные числовые или RFE, чтобы удалить плохие функции и т. Д.

...