sklearn函数总结五——特征降维 压缩数据 - 特征选择

纯手打,代码整理中,持续更新中^-^

需要延用总结四

本节学习特征降维的相关知识点

特征降维是机器学习中常用的技术,用于减少特征的数量,同时尽可能保留原始数据的信息。在Scikit learn中,特征降维主要有两种方法:特征选择和特征提取。

1.特征选择:从原始特征中选择一部分特征。方法包括:移除低方差特征(VarianceThreshold),单变量统计(SelectKBest, SelectPercentile)、基于模型的特征选择(如SelectFromModel)、递归特征 消除(RFE)等。,

2.特征提取:将原始特征转换到新的特征空间,从而减少特征数量。常用的方法有主成分分析 (PCA)、线性判别分析(LDA)、非负矩阵分解(NMF)等。

10、特征选择-移除低 方差 特征(VarianceThreshold)

适用于移除 方差 低于阈值的特征,这些特征通常包含很少的信息。

VarianceThreshold 是机器学习中一个简单但实用的特征选择方法,它通过移除低方差特征来简化数据集。

VarianceThreshold 的主要参数是threshold ,它决定了特征被保留与否的方差门槛。

我们来看一个示例:

python 复制代码
from sklearn.feature_selection import VarianceThreshold
from sklearn.datasets import load_iris
 # 加载示例数据
X, y = load_iris(return_X_y=True)
# 设置阈值,移除方差低于0.8的特征
#主要是threshold这个浮点数,指定保留特征的最低的方差阈值。
#训练集中方差低于此阈值的特征将被移出
selector = VarianceThreshold(threshold=0.8)
X_new = selector.fit_transform(X)
print(f"原始特征数: {X.shape[1]}")
print(f"筛选后特征数: {X_new.shape[1]}")

输出

python 复制代码
原始特征数: 4
筛选后特征数: 1

数学知识:方差

方差公式是一个数学公式,是数学统计学中的重要公式,应用于生活中各种事情,方差越小,代表这组数据越稳定,方差越大,代表这组数据越不稳定。

x 1,x 2,x 3...xn 的平均数为 M,则方差公式可表示为:

11、单变量特征选择 SelectKBest - 选择Top K个特征

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

SelectKBest 的原理非常直观,其名称就完美概括了其工作方式:

Select(选择) + K + Best(最好的)

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

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

  1. 打分(Scoring):

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

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

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

  1. 排序(Ranking):

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

  1. 选择(Selecting):

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

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

我们先来看一个示例:

python 复制代码
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_}")

输出

python 复制代码
原始特征数: 4
筛选后特征数: 3
特征得分: [ 119.26450218   49.16004009 1180.16118225  960.0071468 ]

主要函数

1.score_func 用于计算特征得分的函数。2、k 选择要保留的topK个特征。可以设置为'all'来保留所有特征。

常见的 score_func 评分函数:

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

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

相关推荐
老刘说AI几秒前
Coze:从入门到精通
人工智能·低代码·语言模型·开放原子·知识图谱·持续部署
qq_白羊座2 分钟前
Langchain、Cursor、python的关系
开发语言·python·langchain
小陈的进阶之路2 分钟前
接口Mock测试
python·mock
kiku18185 分钟前
Python网络编程
开发语言·网络·python
IT观测7 分钟前
选高低温环境试验箱,品牌、生产商、厂家哪个维度更可靠?
大数据·人工智能
isNotNullX8 分钟前
BI如何落地?BI平台如何搭建?
大数据·数据库·人工智能
新新学长搞科研9 分钟前
【多所权威高校支持】第五届新能源系统与电力工程国际学术会议(NESP 2026)
运维·网络·人工智能·自动化·能源·信号处理·新能源
zncxCOS10 分钟前
【ETestDEV5教程30】ICD操作之信号组操作
python·测试工具·测试用例·集成测试
枫叶林FYL10 分钟前
第八章 长上下文建模与位置编码优化 (Long Context Modeling) 8.1 位置编码外推技术
人工智能
砍材农夫10 分钟前
spring-ai 第八模型介绍-图像模型
java·人工智能·spring