#scikit-learn #selection
#scikit-learn #выбор
Вопрос:
У меня есть набор функций Train = [a1, a2, …, aN] и Train_label = [y1, y2, …, yN]. У меня есть 3 класса. Я применил LDA
clf = LDA(store_covariance = True)
clf.fit(Train, Train_label)
и попытался понять важность этих функций с помощью
clf.coef_.
Результатом является массив размером 3XN. Диапазон возвращаемых значений составляет от примерно отрицательных 800 до примерно положительных 800. На графике показаны веса одного classclf.coef_[1,:]
Что означают отрицательные значения?
Я выбираю функции для каждого класса с первыми 3 наибольшими значениями coef_ для повторной классификации (перекрестной проверки, обучения и тестирования).
selected_features = [a27, a22, a5, a23, a10, a42]
где a27, a22, a5 выбираются 3 объекта с наибольшим коэффициентом для первого класса, a27, a23, a10 для второго класса и a27, a10, a42 для третьего класса.
Но точность классификации сильно снизилась! Результаты даже хуже, чем у нескольких функций, которые я выбирал ранее.Я попробовал с 6 выбранными функциями с наибольшим значением coef_, и результаты также были плохими.
Может ли кто-нибудь сказать мне, где что-то не так, и объяснить мне, как правильно сделать выбор функций с помощью LDA?
Комментарии:
1. поделитесь также своим кодом, пожалуйста
2. Привет, MMF, добавлен код.