python - 如何从拟合的 scikit-learn 模型中获取特征数量?

标签 python scikit-learn

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

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

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

X, y    # dataset

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

model.fit(X,y)

后面想用这个模型求原始数据集的维度,有点碍事

model.n_features_

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

最佳答案

Sklearn 中的所有分类器都没有单一的公共(public)属性。

我会推荐以下内容:

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

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

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

>>> clf.n_features_

更新:

1.0 版中的新增功能。

n_features_in_:整数

Number of features seen during fit.

feature_names_in_:

Names of features seen during fit. Defined only when X has feature names that are all strings.

关于python - 如何从拟合的 scikit-learn 模型中获取特征数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55380554/

相关文章:

python - tar (Unix) 和 tarfile (Python) 之间的根本区别是什么?

python-3.x - 运行经过训练的机器学习模型时出现错误

python - python 中数据的多维缩放

python - django - 在 ManyToMany 和 ForeignKey 中使用 related_name

python - 语法错误: EOF while scanning triple-quoted string literal (nothing seems to work)

python - 尝试删除具有 Unicode 名称的文件夹

python - 训练什么机器学习算法来使用特征权重作为决策树的输出?

scikit-learn - 如何在线性回归模型中定义保留排名的得分函数?

machine-learning - 多项式朴素贝叶斯中 coef_ 和 feature_log_prob_ 之间的区别?

python - 在 numpy 二项式函数上设置输出矩阵