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 管道中的特征选择:如何确定特征名称? 的相关文章

  • 使用 scikit-learn 进行二次采样 + 分类

    我正在使用 Scikit learn 进行二元分类任务 并且我有 0 级 有 200 个观察值 第 1 类 有 50 个观察值 而且因为我有不平衡的数据 我想抽取多数类的随机子样本 其中观察数量与少数类相同 并且希望使用新获得的数据集作为分
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 在 shell 中处理 json 时,例如使用curl,如何正确地将多个 jq 语句链接在一起?

    我是 jq 新手 所以如果这不是 jq 问题或 json 问题 请为我指出正确的方向 我不确定正确的术语 因此我很难正确地阐明问题 我正在使用curl 来提取一些json 我想过滤掉具有特定值的键 以下是一些示例 json id 593f4
  • 与 GridSearchCV 的并行错误,与其他方法一起工作正常

    我使用 GridSearchCV 时遇到以下问题 它在使用时给我一个并行错误n jobs gt 1 同时n jobs gt 1与 RadonmForestClassifier 等单一模型配合良好 下面是一个显示错误的简单工作示例 train
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发
  • 使用 joblib 加载 pickled scikit-learn 模型时出现 KeyError

    我有一个对象 其中包含两个scikit learn模型 一个IsolationForest and a RandomForestClassifier 我想对其进行 pickle 然后将其解开并用于生成预测 除了两个模型之外 该对象还包含几个
  • 敏感性特异性图 python

    我正在尝试重现类似于此的灵敏度特异性图 其中 X 轴是阈值 但我还没有找到如何做到这一点 一些 skalern 指标 如 ROC 曲线 会返回真阳性和假阳性 但我还没有找到任何选项来制作此图 我试图将概率与实际标签进行比较以保持计数 我得到
  • scikit随机森林sample_weights的使用

    我一直在试图弄清楚 scikit 的随机森林样本权重的使用 但我无法解释我看到的一些结果 从根本上说 我需要它来平衡分类问题和不平衡类 特别是 我期望如果我使用全 1 的 sample weights 数组 我会得到与以下相同的结果w sa
  • 是否可以使用具有余弦相似度的 KDTree?

    看来我不能使用这个相似度度量sklearn例如 KDTree 但我需要 因为我正在使用测量单词向量相似度 对于这种情况 快速鲁棒定制算法是什么 我知道关于Local Sensitivity Hashing 但它应该经过大量调整和测试才能找到
  • 为什么我的精确率-召回率和 ROC 曲线不平滑?

    我有一些标记为 0 或 1 的数据 我正在尝试使用随机森林来预测这些类别 每个实例都标有 20 个用于训练随机森林的特征 约 30 000 个训练实例和约 6000 个测试实例 我使用以下代码绘制精确召回率和 ROC 曲线 precisio
  • scikit学习逻辑回归方程

    我已经在 iris 数据集上运行了逻辑回归 直到这段代码我才清楚 之后我想形成方程来对测试数据进行评分 该怎么做 我知道我可以使用预测函数对测试进行评分 但是我想查看参数和各自的权重 能否请你帮忙 from sklearn import d
  • scikit-learn LinearRegression 的意外交叉验证分数

    我正在尝试学习使用 scikit learn 来完成一些基本的统计学习任务 我认为我已经成功创建了适合我的数据的线性回归模型 X train X test y train y test cross validation train test
  • “KMeans”对象没有属性“k”

    我使用 Yellowbrick 包绘制数据集的肘部曲线 以使用 KMeans 作为模型找到数据集的最佳簇数 我正在使用 Scikit learn KMeans 和 Yellowbrick kelbowvisualizer 函数 生成了肘部曲
  • 使用 array.reshape(-1, 1) 重塑数组

    我有一个名为的数据框data我试图从中找出任何异常价格 数据帧头如下所示 Date Last Price 0 29 12 2017 487 74 1 28 12 2017 422 85 2 27 12 2017 420 64 3 22 12
  • 训练多维高斯过程回归的超参数

    这是一个简单的代码工作实现 我在 Python 的 scikit learn 中使用高斯过程回归 GPR 和二维输入 即网格x1 and x2 和一维输出 y import numpy as np from matplotlib impor
  • 如何组合多个朴素贝叶斯分类器的输出?

    我是新来的 我有一组使用 Sklearn 工具包中的朴素贝叶斯分类器 NBC 构建的弱分类器 我的问题是如何结合每个 NBC 的输出来做出最终决定 我希望我的决定是基于概率而不是标签 我用 python 编写了以下程序 我假设 sklean
  • Scikit - 结合比例和网格搜索

    我是 scikit 的新手 在结合数据规模和网格搜索时遇到两个小问题 高效洁牙机 考虑使用 Kfolds 进行交叉验证 我希望每次我们在 K 1 折叠上训练模型时 数据缩放器 例如使用 preprocessing StandardScale
  • 如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python

    Scikit learn 具有相当用户友好的用于机器学习的 python 模块 我正在尝试训练用于自然语言处理 NLP 的 SVM 标记器 其中我的标签和输入数据是单词和注释 例如 词性标记 而不是使用双精度 整数数据作为输入元组 1 2
  • 我无法使用 scikeras.wrappers.KerasRegressor 执行 cross_val_score

    from tensorflow import keras from sklearn model selection import cross val score from sklearn datasets import make regre

随机推荐

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

    在分页媒体中 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