Я пытался понять важность функций, используемых в дереве решений, которое я смоделировал. Мне интересно узнать вес каждой функции, выбранной в узлах, а также самого термина. Мои данные представляют собой набор документов.
Это мой код для дерева решений, я изменил фрагмент кода из scikit-learn, который извлекает (http://scikit-learn.org/stable/auto_exa ... mportances .html):
from sklearn.feature_extraction.text import TfidfVectorizer
### Feature extraction
tfidf_vectorizer = TfidfVectorizer(stop_words=stopwords,
use_idf=True, tokenizer=None, ngram_range=(1,2))#ngram_range=(1,0)
tfidf_matrix = tfidf_vectorizer.fit_transform(data[:, 1])
terms = tfidf_vectorizer.get_features_names()
### Define Decision Tree and fit
dtclf = DecisionTreeClassifier(random_state=1234)
dt = data.copy()
y = dt["label"]
X = tfidf_matrix
fitdt = dtclf.fit(X, y)
from sklearn.datasets import load_iris
from sklearn import tree
### Visualize Devision Tree
with open('data.dot', 'w') as file:
tree.export_graphviz(dtclf, out_file = file, feature_names = terms)
file.close()
import subprocess
subprocess.call(['dot', '-Tpdf', 'data.dot', '-o' 'data.pdf'])
### Extract feature importance
importances = dtclf.feature_importances_
indices = np.argsort(importances)[::-1]
# Print the feature ranking
print('Feature Ranking:')
for f in range(tfidf_matrix.shape[1]):
if importances[indices[f]] > 0:
print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))
print ("feature name: ", terms[indices[f]])
Прав ли я, предполагая, что использование term[indices[f]] (который является вектором термина признака) приведет к печати фактического термина признака используется для разделения дерева в определенном узле?
Дерево решений, визуализируемое с помощью GraphViz, имеет, например, X[30], я предполагаю, что это относится к числовой интерпретации термина функции . Как извлечь сам термин, чтобы проверить процесс, который я развернул в №1?
Я пытался понять важность функций, используемых в дереве решений, которое я смоделировал. Мне интересно узнать вес каждой функции, выбранной в узлах, а также самого термина. Мои данные представляют собой набор документов. Это мой код для дерева решений, я изменил фрагмент кода из scikit-learn, который извлекает (http://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances .html):
# Print the feature ranking print('Feature Ranking:')
for f in range(tfidf_matrix.shape[1]): if importances[indices[f]] > 0: print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]])) print ("feature name: ", terms[indices[f]]) [/code]
[list] [*]Прав ли я, предполагая, что использование term[indices[f]] (который является вектором термина признака) приведет к печати фактического термина признака используется для разделения дерева в определенном узле? [*]Дерево решений, визуализируемое с помощью GraphViz, имеет, например, X[30], я предполагаю, что это относится к числовой интерпретации термина функции . Как извлечь сам термин, чтобы проверить процесс, который я развернул в №1? [/list]
Я работаю над конкурсом прогнозирования цен на цены Kaggle и создал трубопровод Scikit-Learn, который включает в себя:
Предварительная обработка (обработка пропущенных значений, масштабирование, кодирование)
Инженерная инженерия
incoding...
Я пытался понять важность функций, используемых в дереве решений, которые я смоделировал. Я заинтересован в обнаружении веса каждой функции, выбранной в узлах, а также сам термин. Мои данные-куча документов.
Это мой код для дерева решений, я...
проблема
Я использую Lightgbmmodel через дротики с некоторыми (будущими) ковариатами. Я хочу понять актуальность различных (отстающих) функций. В объекте модели LightGBM после подгонки я могу увидеть только общие имена столбцов ( column_0 ,...
Я пытаюсь кодировать процесс принятия решений, который в противном случае требует обширных сценариев, если иначе, и мне интересно, можно ли выразить весь процесс в форме корня, решения и оставить узлы в классификаторе дерева решений Scikit Learn....