#python #scikit-learn
#python #scikit-learn
Вопрос:
Я пытаюсь извлечь количество функций из модели после того, как я адаптировал эту модель к своим данным.
Я просмотрел каталог модели и нашел способы получить количество только для определенных моделей (например, глядя на размеры опорных векторов для SVM), но я не нашел общего способа, который я мог бы использовать для любого типа модели.
Допустим, у меня есть мой набор данных экземпляров и соответствующих классов
X, y # dataset
и используйте произвольную модель из scikit-learn
библиотеки, чтобы соответствовать этим данным
model.fit(X,y)
Позже я хочу использовать эту модель для определения размеров исходного набора данных, что-то вроде
model.n_features_
Есть ли быстрый и общий способ сделать это?
Комментарии:
1. Хакерский способ so — внедрить свой собственный пользовательский элемент в любой экземпляр модели, который вы создаете и обучаете, например: clf.__my_num_features = …
2. @InonPeled Это довольно хорошая идея. Спасибо за ваш ответ.
Ответ №1:
В Sklearn нет единого общего атрибута для всех классификаторов.
Я бы рекомендовал следующее:
Для любого sklearn.linear_model
/ sklearn.svm.svc
вы можете использовать следующий подход.
>>> clf.coef_.shape[-1]
Для любых моделей на основе дерева ( DecisionTreeClassifier
/ RandomForestClassifier
/ GradientBoostingClassifier
) вы можете использовать
>>> clf.n_features_
Обновить:
Новое в версии 1.0.
n_features_in_
: int
Количество функций, видимых во время подгонки.
feature_names_in_
:
Названия функций, которые видны во время подгонки. Определяется только тогда, когда X имеет имена функций, которые все являются строками.