python 管道中的特征选择:如何确定特征名称?

2024-02-26

我使用 pipeline 和 grid_search 选择最佳参数,然后使用这些参数来拟合最佳管道(“best_pipe”)。然而,由于 feature_selection (SelectKBest) 处于管道中,因此尚未对 SelectKBest 应用任何拟合。

我需要知道“k”个选定功能的功能名称。有什么想法如何检索它们吗?先感谢您

from sklearn import (cross_validation, feature_selection, pipeline,
                     preprocessing, linear_model, grid_search)
folds = 5
split = cross_validation.StratifiedKFold(target, n_folds=folds, shuffle = False, random_state = 0)

scores = []
for k, (train, test) in enumerate(split):

    X_train, X_test, y_train, y_test = X.ix[train], X.ix[test], y.ix[train], y.ix[test]

    top_feat = feature_selection.SelectKBest()

    pipe = pipeline.Pipeline([('scaler', preprocessing.StandardScaler()),
                                 ('feat', top_feat),
                                 ('clf', linear_model.LogisticRegression())])

    K = [40, 60, 80, 100]
    C = [1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001]
    penalty = ['l1', 'l2']

    param_grid = [{'feat__k': K,
                  'clf__C': C,
                  'clf__penalty': penalty}]

    scoring = 'precision'

    gs = grid_search.GridSearchCV(estimator=pipe, param_grid = param_grid, scoring = scoring)
    gs.fit(X_train, y_train)

    best_score = gs.best_score_
    scores.append(best_score)

    print "Fold: {} {} {:.4f}".format(k+1, scoring, best_score)
    print gs.best_params_

best_pipe = pipeline.Pipeline([('scale', preprocessing.StandardScaler()),
                          ('feat', feature_selection.SelectKBest(k=80)),
                          ('clf', linear_model.LogisticRegression(C=.0001, penalty='l2'))])

best_pipe.fit(X_train, y_train)
best_pipe.predict(X_test)

您可以通过名称访问功能选择器best_pipe:

features = best_pipe.named_steps['feat']

然后你可以打电话transform()在索引数组上获取所选列的名称:

X.columns[features.transform(np.arange(len(X.columns)))]

此处的输出将是管道中选择的 80 个列名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 管道中的特征选择:如何确定特征名称? 的相关文章

随机推荐

  • 如何为目标计数器设置计数器

    在分页媒体中 CSS 属性target counters http www w3 org TR css3 gcpm the target counter and target counters v可用于包含多个计数器 该规范给出了以下示例
  • Webpack ProvidePlugin 全局变量(找不到模块)

    我对 Webpack 还很陌生 但不明白为什么我的 ProvidePlugin 调用没有按预期工作 我有以下文件 App js var App function getSomething function size module expor
  • 输入二进制而不是十六进制[重复]

    这个问题在这里已经有答案了 可能的重复 我可以在 C 或 C 中使用二进制文字吗 https stackoverflow com questions 2611764 can i use a binary literal in c or c
  • Gradle 和多项目结构

    我试图了解应该如何进行以下项目设置 Top Android Project Project 1 Pure Java Modules Module A1 Module B1 Module Z1 Project 2 Android Librar
  • 如何在rails中后台运行rake任务

    这是我的命令 bundle exec rake resque work QUEUE trace 我想在我的服务器上作为后台进程运行此命令 请帮我 我经常使用的一个方法是 nohup bundle exec rake resque work
  • 如何创建 gzip 压缩的 HTTP::Response?

    我需要使用压缩数据创建 HTTP Response 我该如何对内容进行压缩 我是否只需添加适当的标头并使用 Compress Zlib 自行压缩它 或者 LWP 模块是否提供了处理此问题的方法 这是你需要的吗 您对数据进行压缩 设置内容编码
  • 从 Python 中打开的 Excel 文件中读取

    我有一个脚本每隔几个小时从 Excel 文件中提取数据 但是 如果这些 Excel 文件之一打开 我仍然希望能够读取它 在 python openpyxl 中 当我尝试执行此操作时 出现权限错误 以下是我尝试过的 我认为我可以捕获异常并创建
  • 暂停交易是什么意思?

    如果我们使用 Propagation Requires new 那么它会挂起现有事务并创建一个新事务 那么这意味着什么suspends a transaction 暂停的交易会怎样 幕后究竟发生了什么 update 暂停的事务持有的资源会发
  • scala 列表地图与mapConserve

    我试图理解mapConserve 据说 像xs map f 但如果函数f将所有元素映射到自身 则返回xs不变 来自List http www scala lang org api current index html scala colle
  • Java 8 - 无法在数组类型 Enum[] 上调用stream() [重复]

    这个问题在这里已经有答案了 为什么我无法调用stream 关于数组类型Enum DummyEnum array DummyEnum values array stream Compile Error ENUM public enum Dum
  • 如何使用 Java 获取我的电脑中可用串行端口的列表?

    我只是运行一些代码来获取计算机上的可用端口列表 当我有 3 个空闲的 com 端口时 它返回 false 我该如何解决这个问题 我的代码 public static void main String args SerialParameter
  • JavaScript 让 Firefox 开发者工具调试视图中的块作用域

    我正在调查该机构的工作情况let 块作用域在 JavaScript 中 特别是浏览器的调试视图如何显示信息 Using let在一个for循环创建一个块作用域 其中回调function timeoutHandler 可以访问 一切都很好 I
  • 格式化复数

    对于我的一个课程中的一个项目 我们必须输出最多五位小数的数字 输出可能是一个复数 而我无法弄清楚如何输出具有五位小数的复数 对于花车我知道它只是 print 0 5f variable name 复数有类似的东西吗 您可以使用如下所示的方法
  • 使用 Gradle 调用 powershell 脚本

    我是 Gradle 新手 所以请耐心等待 我只是想调用 ps1 文件来使用 gradle 执行 我将如何设置 build gradle 文件来执行同一目录中的 ps1 文件 提前致谢 你可以使用gradleExec https docs g
  • python in 和比较的运算符优先级

    以下比较产生True gt gt gt 1 in 11 True gt gt gt 1 in 11 True True 如果使用括号 我会得到一个 TypeError gt gt gt 1 in 11 True Traceback most
  • IBM Integration 总线 mqsicreatebar 及参考

    我对在我的环境中使用 mqsicreatebar 感到有点困惑 例如 我有以下文件结构 root Libraries Library1 Apps App1 project App1 是参考图书馆1 我想运行 mqsicreatebar 使其
  • 应用程序中的各个阶段在 Spark 中并行运行吗?

    我有一个疑问 阶段如何在 Spark 应用程序中执行 程序员可以定义的阶段执行是否具有一致性 或者是否由 Spark 引擎导出 检查这张图中的实体 阶段 分区 图片来源 http alvincjin blogspot in 2014 12
  • 显示宏选项

    在 Excel VBA 中 可以使用 MacroOptions 函数定义与宏或函数相关的一些信息 通过 VBA 输入后是否可以访问此类信息 谢谢 我已经搜索了一段时间但没有发现什么很棒的东西 我发现的唯一解决方法是使用 Chip Pears
  • 通过 URL 发布到 Reddit

    是否可以通过 URL 发布 Reddit 链接 例如对于 Facebook 你可以这样做 a href Share Stackoverflow on your profile a Reddit 是否有一个可以让我共享 URL 的等效端点 有
  • python 管道中的特征选择:如何确定特征名称?

    我使用 pipeline 和 grid search 选择最佳参数 然后使用这些参数来拟合最佳管道 best pipe 然而 由于 feature selection SelectKBest 处于管道中 因此尚未对 SelectKBest