【问题标题】:How to get the number of features from a fitted scikit-learn model?如何从拟合的 scikit-learn 模型中获取特征数量?
【发布时间】:2019-08-18 05:13:53
【问题描述】:

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

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

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

X, y    # dataset

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

model.fit(X,y)

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

model.n_features_

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

【问题讨论】:

  • 一种骇人听闻的方法是将您自己的自定义成员注入您创建和训练的任何模型实例,例如:clf.__my_num_features = ...
  • @InonPeled 这是个好主意。谢谢你的回答。

标签: python scikit-learn


【解决方案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 具有全为字符串的特征名称时才定义。

【讨论】:

    猜你喜欢
    • 2015-11-21
    • 2016-09-11
    • 2020-11-03
    • 2018-06-01
    • 2012-09-25
    • 2016-09-02
    • 2021-05-09
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多