Poniższy kod działa przy użyciu losowego modelu lasu, aby dać mi wykres pokazujący znaczenie funkcji: od sklearn.featrere_selection Import selectfultl Import MATPOTLIB CLF = ...

1
DSouthy 22 marzec 2021, 20:11

2 odpowiedzi

Najlepsza odpowiedź

Regresja logistyczna nie ma atrybutu dla funkcji rankingu. Jeśli chcesz wizualizować współczynniki, których możesz użyć, aby pokazać znaczenie funkcji. Zasadniczo zakładamy, że większe współczynniki ma większego wkładu w modelu, ale muszą być pewni, że funkcje mają tej samej skali w przeciwnym razie to założenie nie jest poprawne. Zauważ, że niektóre współczynniki mogą być negatywne, więc twoja fabuła wygląda inaczej, jeśli chcesz zamówić, jakbyś miał na swojej działce, możesz konwertować je na pozytywne.

Po dopasowaniu modelu regresji logistycznej możesz wizualizować swoje współczynniki:

logistic_model.fit(X,Y)
importance = logistic_model.coef_[0]
#importance is a list so you can plot it. 
feat_importances = pd.Series(importance)
feat_importances.nlargest(20).plot(kind='barh',title = 'Feature Importance')

Wyjście będzie takie:

enter image description here

Uwaga: Możesz przeprowadzić niektórych testów statystycznych lub analizy korelacji na swojej funkcji, aby zrozumieć wkład w model. To zależy od typu danych (kategoryczne, numeryczne itp), które test należy użyć.

2
Inputvector 22 marzec 2021, 17:54

Jest dokładnie taki, jak mówi błąd: 'LogisticRegression' object has no attribute 'feature_importances_'

Zaproponowałem spojrzenie na <-a href="https://github.com/slundberg/shap" rel="nofollow NefErrer"> Biblioteka Shap , może to być to, czego szukasz w tym przypadku :)

1
Dr. Casual 22 marzec 2021, 17:25