#python #scikit-learn #decision-tree #tfidfvectorizer
#python #scikit-learn #дерево решений #tfidfvectorizer
Вопрос:
Я выбираю лучшие 5 тыс. объектов из X_train
использования feature_importances_
. После получения индексов этих 5 тысяч объектов в порядке убывания мне нужно соответствующим образом подготовить свой набор данных X_train
форма (24000,56000)
# fit has to happen only on train
X_train_essay_tfidf = vectorizer.fit_transform(X_train['clean_essays'].values)
clf=DecisionTreeClassifier(max_depth=5)
clf = clf.fit(X_train_essay_tfidf,y_train)
importances=clf.feature_importances_
Я ожидаю, что мой окончательный набор данных будет иметь форму (24000,5000)
из лучших функций 5K
Ответ №1:
Вы должны найти индексы тех объектов top 5K, которые имеют более высокие feature_importance_
значения. Используйте индексы для подмножества объектов исходного X_train.
k = 5000
ind = clf.feature_importances_.argsort()[-k:][::-1]
X_train_shortlisted = X_train_essay_tfidf[:,ind]
Теперь вы можете использовать X_train_shortlisted
для окончательного классификатора.