Nano Hash - криптовалюты, майнинг, программирование

Почему (rf)clf feature_importance придает значение функции, все значения которой одинаковы?

Я сравниваю мультиклассификацию со случайными лесами и CART в scikit-learn.

Два моих признака (признак 4 и признак 6) не имеют отношения к классификации, поскольку все значения одинаковы. Но вывод feature_importances RandomForestClassifier следующий:

Рейтинг характеристик:

  1. функция 3 (0,437165)
  2. функция 2 (0,216415)
  3. функция 6 (0.102238)
  4. функция 5 (0,084897)
  5. функция 1 (0,064624)
  6. функция 4 (0,059332)
  7. функция 0 (0,035328)

Выход CART feature_importance:

Рейтинг характеристик:

  1. функция 3 (0,954666)
  2. функция 6 (0,014117)
  3. функция 0 (0,011529)
  4. функция 1 (0,010586)
  5. функция 2 (0,006785)
  6. функция 4 (0,002204)
  7. функция 5 (0,000112)

В каждой строке признак 4 имеет одинаковое значение. То же самое для функции 6.

Вот код

Случайный лес

importances = rfclf.feature_importances_
std = np.std([tree.feature_importances_ for tree in rfclf.estimators_],
             axis=0)
indices = np.argsort(importances)[::-1]

# Print the feature ranking
print("Feature ranking:")

for f in range(x.shape[1]):
    print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))

КОРЗИНА

importances = clf.feature_importances_
std = np.std([tree.feature_importances_ for tree in rfclf.estimators_],
             axis=0)
indices = np.argsort(importances)[::-1]

# Print the feature ranking
print("Feature ranking:")

for f in range(x.shape[1]):
    print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))

Я бы хотел, чтобы важность была такой:

  1. функция 6 (0,000000)
  2. функция 4 (0,000000)

Когда я просто не использую эти две функции, мои модели перекрываются.


  • Я думаю, это означает, что RF не нашла более важную функцию для разделения, что, вероятно, означает, что функции с меньшей важностью являются просто шумом. Ты задал глубину? Вы должны попробовать depth=None, чтобы увидеть, продолжает ли он использовать функции 4 и 6. Еще одна вещь, которую можно попробовать, - это просто сохранить функции 2 и 3 и посмотреть, изменится ли оценка. 27.03.2019
  • Когда я просто не использую эти две функции, мои модели перекрываются. @CoMartel, но я попробую ваши рекомендации 27.03.2019

Ответы:


1

Вам нужно установить ограничение на глубину ваших деревьев. Я рекомендую выполнить поиск по сетке по min_samples_leaf=[0,001, 0,1] — попробовать от 0,1% до 10% в каждом листе.

Любые расчеты важности функций должны выполняться на надежной модели, чтобы иметь смысл.

29.03.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..