【问题标题】:Removing selected features from dataset从数据集中删除选定的特征
【发布时间】:2021-05-17 08:28:19
【问题描述】:

我正在关注这个程序:https://scikit-learn.org/dev/auto_examples/inspection/plot_permutation_importance_multicollinear.html

因为我的模型中存在高度相关特征的问题(与示例中显示的特征不同)。在这一步

selected_features = [v[0] for v in cluster_id_to_feature_ids.values()]

我可以获得有关需要从分类器中删除的特征的信息。它们以数字形式给出 ([0, 3, 5, 6, 8, 9, 10, 17])。如何获取这些功能的名称?

【问题讨论】:

    标签: pandas scikit-learn feature-selection


    【解决方案1】:

    好的,我认为这个问题有两个不同的元素。

    首先,您需要获取列名列表。在您链接的示例代码中,功能名称列表的存储方式如下:

    data.feature_names
    

    一旦您有了功能名称,您就需要一种方法来遍历它们并只获取您想要的名称。像这样的东西应该可以工作:

    columns = ['a', 'b', 'c', 'd']
    keep_index = [0, 3]
    
    new_columns = [columns[i] for i in keep_index]
    new_columns
    

    ['a', 'b']

    【讨论】:

    • 谢谢,泰勒罗萨克。使用我的数据(看起来像示例中的那些,但它们有一列用于推文),我收到此错误:AttributeError: 'DataFrame' object has no attribute 'feature_names'。你知道我能怎么处理吗?打印: print(orig_df.keys()) 我得到我的列列表。我一直在关注这个:stackoverflow.com/questions/66657420/…
    • 听起来你有一个 pandas DataFrame 而不是 scikit stores its data 的方式?在这种情况下,属性将是 .columns 而不是 .feature_names
    猜你喜欢
    • 2023-01-24
    • 2021-11-11
    • 2021-04-09
    • 2015-10-15
    • 2014-08-16
    • 2016-03-16
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多