如何找出 sklearn SelectBest 选出几个重要的特征名称(column name)

简介: 如何找出 sklearn SelectBest 选出几个重要的特征名称(column name)

如何找出 sklearn SelectBest 选出几个重要的特征名称(column name)


一、需求

sklearn SelectBest 函数可以指定参数 k 的值,就能选出最重要的 k 个特征。也能通过 model.scores_ 和 model.pvalues_ 来输出得分和 p-value 的值,如果特征量小,可以通过肉眼对比 model.scores_ 来得知选出来的是哪几列,但是如果特征个数特别多,如何能通过排序方法知道排序结果,并输出选中的列名呢?

二、解决方法

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.datasets import load_iris
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from  scipy.stats import chi2_contingency
import numpy as np
#导入IRIS数据集
iris = load_iris()
def get_feature_importance():
"""
此处省略 feature_data, label_data 的生成代码。
如果是 CSV 文件,可通过 read_csv() 函数获得特征和标签。
"""
    model = SelectKBest(chi2, k=2)#选择k个最佳特征
    X_new = model.fit_transform(feature_data, label_data)
    #feature_data是特征数据,label_data是标签数据,该函数可以选择出k个特征 
    print("model shape: ",X_new.shape)
    scores = model.scores_
    print('model scores:', scores)  # 得分越高,特征越重要
    p_values = model.pvalues_
    print('model p-values', p_values)  # p-values 越小,置信度越高,特征越重要
    # 按重要性排序,选出最重要的 k 个
    indices = np.argsort(scores)[::-1]
    k_best_features = list(feature_data.columns.values[indices[0:2]])
    print('k best features are: ',k_best_features)
    return k_best_features

以上,问题解决~

相关文章
|
11月前
|
自然语言处理 算法 JavaScript
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
多LLM摘要框架通过生成和评估两个步骤处理长文档,支持集中式和分散式两种策略。每个LLM独立生成文本摘要,集中式方法由单一LLM评估并选择最佳摘要,而分散式方法则由多个LLM共同评估,达成共识。论文提出两阶段流程:先分块摘要,再汇总生成最终摘要。实验结果显示,多LLM框架显著优于单LLM基准,性能提升最高达3倍,且仅需少量LLM和一轮生成评估即可获得显著效果。
530 10
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
|
11月前
|
机器学习/深度学习 存储 人工智能
《深度剖析:Q-learning与策略梯度方法的本质区别》
在强化学习领域,Q-learning和策略梯度方法是两种重要的算法。Q-learning通过迭代更新状态-动作值(Q值),评估动作价值,适用于离散动作空间;策略梯度方法则直接优化参数化策略,适合连续动作空间。前者收敛稳定但速度较慢,后者收敛快但稳定性差。两者各有优劣,适用于不同场景。
430 27
|
9月前
|
弹性计算 人工智能 架构师
一文揭秘|如何速成RAG+Agent框架大模型应用搭建(二)
一文揭秘|如何速成RAG+Agent框架大模型应用搭建
637 4
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
1240 11
|
机器学习/深度学习 供应链 Python
使用Python实现深度学习模型:智能供应链管理与优化
使用Python实现深度学习模型:智能供应链管理与优化 【10月更文挑战第4天】
734 0
使用Python实现深度学习模型:智能供应链管理与优化
WK
|
机器学习/深度学习 算法
神经网络的反向传播是什么
反向传播(Backpropagation)是用于训练神经网络的一种关键算法,其目标是通过计算损失函数关于网络参数的梯度来优化这些参数,从而提升网络性能。该算法包括前向传播和反向传播两个阶段:前者计算预测结果与损失值,后者利用链式法则逐层计算梯度以更新权重和偏置。作为深度学习中最常用的优化方法之一,反向传播广泛应用于多种神经网络模型中,通过不断迭代改进模型的预测准确性和泛化能力。
WK
664 5
|
存储 JSON Serverless
无法将模型上传到Serverless DataHub(SD)可能有以下几种原因
无法将模型上传到Serverless DataHub(SD)可能有以下几种原因
648 2
|
算法 Python
打造高效生产排程:Python在APS解决方案中的应用
打造高效生产排程:Python在APS解决方案中的应用
788 2
|
NoSQL Java MongoDB
使用Spring Boot构建响应式应用
使用Spring Boot构建响应式应用