Как подготовить мой набор данных после выбора топ 5k функций. Первоначальная форма была (24500,56000).ожидается = (24k, 5k) - PullRequest
1 голос
/ 03 апреля 2019

Я выбираю 5 лучших функций из X_train, используя feature_importances_. После получения индексов этих 5 k функций в порядке убывания, я нужно подготовить мой набор данных соответственно 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 Ответ

0 голосов
/ 03 апреля 2019

Вы должны найти индексы этих пяти основных функций, которые имеют более высокие значения feature_importance_.Используйте индексы для подмножества функций исходного X_train.

k = 5000
ind = clf.feature_importances_.argsort()[-k:][::-1]
X_train_shortlisted = X_train_essay_tfidf[:,ind]

Теперь вы можете использовать X_train_shortlisted для окончательного классификатора.

...