Определение важности трех основных функций с помощью Ensemble Voting Classifier - PullRequest
0 голосов
/ 30 октября 2019

У меня есть проблема с классификацией, когда я должен найти 3 основных функции, используя метод VOTING CLASSIFIER, в котором есть PCA, xgboost, RANDOM FOREST, LOGISTIC REG и TREECION TREE.

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

from sklearn.linear_model import LogisticRegression  
from sklearn.ensemble import RandomForestClassifier  
from sklearn.ensemble import GradientBoostingClassifier  
from sklearn.decomposition import PCA  
from sklearn.ensemble import VotingClassifier   

log_clf = LogisticRegression(random_state=2)

rnd_clf = RandomForestClassifier
(n_estimators=150, max_depth=3, min_samples_leaf=6, 
max_features=0.3, n_jobs=-1, random_state=2)

gbm_clf= GradientBoostingClassifier 
(n_estimators=150, max_depth=3, min_samples_leaf=3, max_features=0.3, 
learning_rate=0.05, subsample=0.4,random_state=2)`

estimators = [('lr', log_clf), ('rf', rnd_clf), ('gbm', gbm_clf)]

voting_clf = VotingClassifier(estimators=estimators,voting='hard')

voting_clf.fit(train.drop(['target'],1),train['target'])

Исключение: это должно дать мне особенность важности переменных с использованием классификатора голосования, имеющего pca, xgboost, dt, rf и lr.

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете получить доступ к базовым классификаторам из вашего объекта voting_clf и извлечь из них важность функций. Например:

for alg in voting_clf.named_estimators:
    clf = voting_clf.named_estimators[alg]
    # extract feature importance for clf
    # Note different algorithms have different 
    # methods for feature importance

Поскольку вы объединяете алгоритмы с принципиально разными понятиями «важности признаков», я не думаю, что существует четко определенный способ определения того, какие функции являются наиболее важными в ансамблевом результате.

...