Я ищу, чтобы выполнить выбор функции с помощью набора данных с несколькими метками, используя sklearn. Я хочу получить окончательный набор функций через ярлыки, которые я буду использовать в другом пакете обучения. Я планировал использовать метод, который я видел here, который выбирает соответствующие функции для каждой метки отдельно.Выбор нескольких ярлыков с использованием sklearn
from sklearn.svm import LinearSVC
from sklearn.feature_selection import chi2, SelectKBest
from sklearn.multiclass import OneVsRestClassifier
clf = Pipeline([('chi2', SelectKBest(chi2, k=1000)),
('svm', LinearSVC())])
multi_clf = OneVsRestClassifier(clf)
я планирую извлечь индексы включенных функций, на этикетке, с помощью этого:
selected_features = []
for i in multi_clf.estimators_:
selected_features += list(i.named_steps["chi2"].get_support(indices=True))
Теперь мой вопрос, как я могу выбрать, какие выбраны функции, чтобы включить в мой последний модель? Я мог бы использовать каждую уникальную функцию (которая включала бы функции, которые были бы релевантны только для одной метки), или я мог бы сделать что-то, чтобы выбрать функции, которые были бы важны для большего количества меток.
Моя первоначальная идея - создать гистограмму количества меток, на которые была выбрана данная функция, и определить порог, основанный на визуальном осмотре. Я обеспокоен тем, что этот метод является субъективным. Существует ли более принципиальный способ выполнения выбора функций для многоуровневых наборов данных с использованием sklearn?
Из того, что я понимаю, методы выбора объектов в sklearn для двоичных классификаторов. Вы можете получить выбранные функции для каждой метки отдельно, но мой вопрос заключается в том, как определить окончательный набор функций, которые работают на всех ярлыках принципиально. – user2589328
Я не уверен, что понимаю, что вы имеете в виду. Например, SelectKBest является независимым от модели, и вы можете увидеть пример RFE, который показывает вам, как получить окончательный набор функций в документах. http: // scikit-learn.org/stable/auto_examples/feature_selection/plot_rfe_with_cross_validation.html # example-feature-selection-plot-rfe-with-cross-validation-py Кроме того, многие/большинство реализуют функцию преобразования, которая выберет наилучшие функции обучения с входов. – Chris
Но этот последний набор функций для одного классификатора, правильно? Поскольку методы бинарной релевантности ломают проблему многовариантной классификации в ряд бинарных классификаций, этот окончательный набор функций соответствует только одному из моих многих меток. У меня будет набор функций, возвращаемый методами выбора объектов для каждой из моих отдельных меток, но я хочу объединить выбранные функции для создания набора функций, который хорошо работает для всех меток. – user2589328