как вернуть функции, которые использовались в дереве решений, созданном DecisionTreeClassifier в sklearn - PullRequest
0 голосов
/ 09 июля 2020

Я хочу сделать выбор функций для моего набора данных с помощью дерева решений CART и C4.5. Таким образом, дерево решений применяется к набору данных, а затем извлекаются функции, которые алгоритм дерева решений использует для создания дерева. поэтому мне нужно вернуть функции, которые используются в созданном дереве. Я использую DecisionTreeClassifier в модуле sklearn.tree. Мне нужен метод или функция, чтобы дать мне (вернуть) функции, которые использовались в созданном дереве !! для использования этих функций в качестве более важных функций в основном алгоритме модуляции.

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете подойти к проблеме, как показано ниже:

Я предполагаю, что у вас есть наборы train (x_train, y_train) и test (x_test, y_test).

from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score

tree_clf1 = DecisionTreeClassifier().fit(x_train, y_train)

y_pred = tree_clf1.predict(x_test)

print(confusion_matrix(y_test, y_pred))
print("\n\nAccuracy:{:,.2f}%".format(accuracy_score(y_test, y_pred)*100))
print("Precision:{:,.2f}%".format(precision_score(y_test, y_pred)*100))
print("Recall:{:,.2f}%".format(recall_score(y_test, y_pred)*100))
print("F1-Score:{:,.2f}%".format(f1_score(y_test, y_pred)*100))

feature_importances = DataFrame(tree_clf1.feature_importances_,
                                index = x_train.columns,
                                columns['importance']).sort_values('importance', 
                                                                    ascending=False)

print(feature_importances)

Ниже Пример выходных данных показывает, какие функции важны для вашей классификации.

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...