Настройка мультиклассового леса принятия решений/нейронной сети на меньшем наборе данных

Итак, у меня есть набор данных, 1900 строк и 22 столбца. 21 столбец - это просто числа, но тот, который имеет решающее значение, для которого я хочу обучить данные, имеет 3 этапа: a, b и c.

Я пробовал и деревья решений/джунгли, и нейронные сети, и независимо от того, как я их настраивал, я не могу получить точность более 55%.

Обычно это около 50% точности, и лучшее, что я когда-либо мог получить, было 55% общей точности и около 70% в среднем.

Стоит ли вообще использовать NN для такого небольшого набора данных? Как я уже сказал, я пытался использовать другие алгоритмы ML, но они не дают ничего лучшего.


person Filip Kramarić    schedule 03.05.2016    source источник
comment
1900 строк для 22 столбцов на самом деле не лучший набор данных для модели NN ... Но пробовали ли вы сначала методы уменьшения размерности, такие как PCA? Вы можете сделать это, возможно, чтобы уменьшить количество столбцов до 4 или 5... В этом случае вы, вероятно, сможете найти хорошую модель...   -  person Gaurav    schedule 03.05.2016


Ответы (1)


Я думаю, что нет четкого ответа на ваш вопрос. Низкий показатель точности может быть вызван несколькими причинами. Я изложу некоторые из них в следующих пунктах:

  1. Когда вы используете деревья решений/нейронные сети - низкая точность может быть результатом неправильной настройки метапараметров (таких как максимальная высота дерева или количество деревьев в DT или неправильная топология или подготовка данных в случае NN). Я советую вам использовать сетку или случайный поиск как для NN, так и для DT, чтобы искать лучшие метапараметры для вашего алгоритма (в случае «статических» (не последовательных данных) пакетов, таких как, например, h20 в R или Scikit-learn в Python может отлично сработать), а в случае с нейронной сетью - правильно нормализовать ваши данные (например, вычесть среднее значение и разделить на стандартное отклонение каждый x столбец ваших данных).
  2. Ваш набор данных может быть несогласованным. Если, например. ваши данные не обладают свойством существования функциональной зависимости между x и y (что означает, что y = f(x) для некоторого f), то во время тренировки вы узнаете вероятность того, что данный x - ваш пример принадлежит к какому-то указанному классу. Это несоответствие может серьезно повредить вашей точности. Что я советую вам в этом случае, так это попытаться указать, происходит ли это явление, а затем, например. попробуйте сегментировать ваши данные, чтобы решить проблему.
  3. Возможно, ваш набор данных слишком мал. Попытайтесь получить больше данных в этом случае.
person Marcin Możejko    schedule 03.05.2016
comment
Я пробовал то, что вы и Гаурав предложили, но не повезло. Я просто продолжаю застревать на уровне около 60% (теперь у меня больше набор данных и меньше столбцов). Может ли кто-нибудь взглянуть на данные здесь www97.zippyshare.com/v/LqqORkx5/file .html Если бы можно было получить до 80%, было бы здорово. - person Filip Kramarić; 09.05.2016