首页 > 解决方案 > 如何从拟合的 scikit-learn 模型中获取特征数量?

问题描述

在我将此模型拟合到我的数据后,我试图从模型中提取特征数量。

我查看了模型的目录并找到了仅获取特定模型的数字的方法(例如查看 SVM 的支持向量的维度),但我没有找到可用于任何类型模型的通用方法。

假设我有我的实例数据集和相应的类

X, y    # dataset

并使用scikit-learn库中的任意模型来拟合此数据

model.fit(X,y)

后来我想用这个模型找到原始数据集的维度,有点像

model.n_features_

有没有一种快速通用的方法来做到这一点?

标签: pythonscikit-learn

解决方案


Sklearn 中的所有分类器没有一个共同的属性。

我会推荐以下内容:

对于任何sklearn.linear_model/ sklearn.svm.svc,您可以使用以下方法。

>>> clf.coef_.shape[-1]
    

对于任何基于树的模型 ( DecisionTreeClassifier/ RandomForestClassifier/ GradientBoostingClassifier),您可以使用

>>> clf.n_features_

更新

1.0 版中的新功能。

n_features_in_: 整数

拟合期间看到的特征数。

feature_names_in_

拟合期间看到的特征名称。仅当 X 具有全为字符串的特征名称时才定义。


推荐阅读