2012-06-06 2 views
2

У меня есть набор данных, которые я классифицирую их в Matlab с помощью дерева решений. Я делю множество на две части; одна обучающая информация (85%) и другие данные теста (15%). Проблема в том, что точность составляет около 90%, и я не знаю, как я могу ее улучшить. Буду признателен, если у вас есть представление об этом.Как повысить точность дерева решений в matlab

+0

Какова размерность набора данных? Есть ли какая-то причина, по которой вы должны использовать дерево решений, или можете ли вы изучить другие алгоритмы? –

ответ

1

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

Кстати, 90%, если не переоборудован, является отличным результатом, возможно, вам даже не нужно его улучшать.

0

Вы можете изучить листья, чтобы улучшить обобщение дерева решений. Но, как уже упоминалось, точность 90% можно считать неплохой.

3

Я думаю, что более важным вопросом является то, что является хорошей точностью для данного домена: если вы классифицируете спам, то 90% может быть немного низким , но если вы прогнозируете цены на акции, то 90% действительно высоки!

Если вы делаете это на известном наборе домена и существуют предыдущие примеры точности классификации, которая выше, чем у вас, то вы можете попробовать несколько вещей:

0

90% хорошо или плохо, зависит от области данных.

Однако, возможно, классы в ваших данных перекрываются, и вы действительно не можете сделать более 90%.

Вы можете попытаться просмотреть, в каких узлах есть ошибки, и проверить, можно ли улучшить классификацию, изменив их.

Вы также можете попробовать Случайный лес.

5

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

Для повышения производительности эти несколько вещей, которые можно сделать:

  • Variable отбор: Различные тесты можно сделать как тест мультиколлинеарности, расчет VIF, расчет IV на переменных, чтобы выбрать только несколько лучших переменных. Это приведет к повышению производительности, поскольку оно будет строго отключать нежелательные переменные.

  • Ensemble Learning Использование нескольких деревьев (случайных лесов) для прогнозирования результатов. Случайные леса в целом работают лучше, чем единое дерево решений, поскольку им удается уменьшить как смещение, так и дисперсию. Они менее склонны к переобучению.

  • K-Fold cross validation: Перекрестная проверка в данных обучения сама по себе может немного улучшить производительность модели.

  • Hybrid Model: Использование гибридной модели, то есть использование логистической регрессии после использования деревьев решений для повышения производительности.

Смежные вопросы