как подготовить мой набор данных после выбора лучших функций 5k.Исходная форма была (24500,56000). ожидаемый = (24k, 5k)

#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 для окончательного классификатора.