sklearn случайный лес, чтобы найти количество выбранных функций

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

Я пробовал это до сих пор:

 classifier = 
 SelectFromModel(RandomForestClassifier(n_estimators = 100))
 m = classifier.fit(train.drop(columns='indicator'), train.rg_risk)
 X_train = train.drop(columns='indicator')
selected_feat=X_train.columns[(classifier.get_support())]
len(selected_feat)

person Lilz    schedule 04.05.2020    source источник


Ответы (1)


SelectFromModel — это встроенный метод: он использует алгоритмы со встроенными методами выбора признаков.

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

При прохождении threshold=None окончательный порог важности функции рассчитывается по умолчанию как среднее значение важности всех функций дерева решений. Другими возможными вариантами являются медиана (работает так же, как среднее, но с медианой) или коэффициент масштабирования для корректировки медианы/среднего ("1.25*mean", "1.25*median").

исходный код sklearn

person Marco Cerliani    schedule 04.05.2020