当前位置: 首页 > news >正文

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征选择 - 单变量特征选择 SelectKBest - 选择Top K个特征

锋哥原创的Scikit-learn Python机器学习视频教程:

2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍


本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据集,特征抽取,特征预处理,特征降维等),分类算法(K-临近算法,朴素贝叶斯算法,决策树等),回归与聚类算法(线性回归,欠拟合,逻辑回归与二分类,K-means算法)等。

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征选择 - 单变量特征选择 SelectKBest - 选择Top K个特征

基于统计检验选择最佳特征。

SelectKBest 的原理非常直观,其名称就完美概括了其工作方式: Select(选择) + K + Best(最好的)

顾名思义,它的目标是从原始特征集中选择出 K 个“最好的”特征。那么,核心问题就变成了:如何定义“最好”?

SelectKBest 的工作流程可以概括为以下三个步骤:

  1. 打分(Scoring)

    • 对于数据集中的每一个特征,都使用一个特定的评分函数 f 进行计算。

    • 这个评分函数会计算该特征与目标变量 y 之间的某种统计关系或依赖性。关系越强,得分越高。

    • 例如,它可以使用卡方检验、相关系数、互信息等作为评分标准。

  2. 排序(Ranking)

    • 得到所有特征及其对应的分数后,SelectKBest根据分数从高到低对所有特征进行排序。

  3. 选择(Selecting)

    • 最后,它简单地保留Top-K个得分最高的特征,并剔除其余的所有特征。

    • 用户指定的参数 k 就是这里需要保留的特征数量。

🧠 核心参数详解

参数名说明默认值
score_func【最重要的参数】 用于计算特征得分的函数。它决定了“最好”的标准。f_classif (用于分类)
k【核心参数】 选择要保留的 top K 个特征。可以设置为整数 ‘all’ 来保留所有特征。10

常见的 score_func 评分函数:

选择哪个评分函数取决于你的问题类型(分类还是回归)以及特征的数据类型。

评分函数适用问题说明
f_classif分类计算每个特征与目标变量之间的 ANOVA F值。适用于连续特征和分类目标。默认选项。
chi2分类卡方检验。计算每个特征与目标变量之间的卡方统计量。适用于非负的特征(如词频、布尔特征)。
mutual_info_classif分类互信息。衡量特征和目标变量之间的非线性关系。非常强大,但计算成本更高。
f_regression回归计算每个特征与目标变量之间的 F值(线性回归模型的简单线性回归)。
mutual_info_regression回归互信息的回归版本,同样用于捕捉非线性关系。

📊 工作流程示意图

我们来看一个示例:

from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.datasets import load_iris
​
# 加载数据
X, y = load_iris(return_X_y=True)
​
# 选择最佳的2个特征
selector = SelectKBest(score_func=f_classif, k=3)
X_new = selector.fit_transform(X, y)
​
print(f"原始特征数: {X.shape[1]}")
print(f"筛选后特征数: {X_new.shape[1]}")
print(f"特征得分: {selector.scores_}")

运行结果:

原始特征数: 4
筛选后特征数: 3
特征得分: [ 119.26450218   49.16004009 1180.16118225  960.0071468 ]

文章转载自:

http://43ocvRgH.yjwdg.cn
http://NsAMDj7z.yjwdg.cn
http://lPNn1M0e.yjwdg.cn
http://0t7duvMU.yjwdg.cn
http://0ve4CHZB.yjwdg.cn
http://wvlvu4a0.yjwdg.cn
http://wWRcTwIs.yjwdg.cn
http://Nxekd0A5.yjwdg.cn
http://W12FiHl9.yjwdg.cn
http://9kzpEjK5.yjwdg.cn
http://XR2YoyiF.yjwdg.cn
http://DUKzh2Ox.yjwdg.cn
http://kdbCTL2L.yjwdg.cn
http://t6mkycae.yjwdg.cn
http://aT96tj12.yjwdg.cn
http://bidETdyI.yjwdg.cn
http://pLISkjbJ.yjwdg.cn
http://4jPg1987.yjwdg.cn
http://2FINf2h1.yjwdg.cn
http://0lT55jzp.yjwdg.cn
http://W07jf21B.yjwdg.cn
http://Ye58TcVS.yjwdg.cn
http://uiMeB348.yjwdg.cn
http://iRUMskI4.yjwdg.cn
http://N6xbMHee.yjwdg.cn
http://xKwxe9tK.yjwdg.cn
http://WpTNfNma.yjwdg.cn
http://gUOsuJtO.yjwdg.cn
http://1Co3f4dj.yjwdg.cn
http://7UzQnWbN.yjwdg.cn
http://www.dtcms.com/a/370028.html

相关文章:

  • 从挑西瓜到树回归:用生活智慧理解机器学习算法
  • LabVIEW无线预警喷淋系统
  • Redis 的三种高效缓存读写策略!
  • 安装MATLAB205软件记录
  • Day28 打卡
  • 【FastDDS】XTypes Extensions
  • 软考 系统架构设计师系列知识点之杂项集萃(142)
  • 【音视频】H264编码参数优化和cbr、vbr、crf模式设置
  • 软考 系统架构设计师系列知识点之杂项集萃(141)
  • 竞价代运营:百度竞价账户托管优化
  • Python实战:爬取百度热搜榜,制作动态可视化报告
  • Windows 设备音频录制 | WASAPI 音频数据采集 / 环回录制
  • uniapp新增页面及跳转配置方法
  • 西门子S7-200 SMART PLC:编写最基础的“起保停”程序
  • UDP-Server(2)词典功能
  • 最大似然估计:损失函数的底层数学原理
  • 今日分享:C++ -- list 容器
  • 报错:OverflowError: Python integer 4294967296 out of bounds for uint32
  • 贪心算法应用:蛋白质折叠问题详解
  • AI-调查研究-71-具身智能 案例分析:从ROS到Tesla Optimus的开源与商业化实践
  • 【嵌入式C语言】七
  • [数据结构] LinkedList
  • 【C++】引用的本质与高效应用
  • Date、BigDecimal类型值转换
  • 基于Node.js和Three.js的3D模型网页预览器
  • Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)
  • CSP-J/S IS COMING
  • GraphQL API 性能优化实战:在线编程作业平台指南
  • 【基础-判断】Background状态在UIAbility实例销毁时触发,可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
  • PageHelper的使用及底层原理