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 | 回归 | 互信息的回归版本,同样用于捕捉非线性关系。 |

相关推荐
华玥作者1 天前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
AAD555888991 天前
YOLO11-EfficientRepBiPAN载重汽车轮胎热成像检测与分类_3
人工智能·分类·数据挖掘
王建文go1 天前
RAG(宠物健康AI)
人工智能·宠物·rag
ALINX技术博客1 天前
【202601芯动态】全球 FPGA 异构热潮,ALINX 高性能异构新品预告
人工智能·fpga开发·gpu算力·fpga
易营宝1 天前
多语言网站建设避坑指南:既要“数据同步”,又能“按市场个性化”,别踩这 5 个坑
大数据·人工智能
春日见1 天前
vscode代码无法跳转
大数据·人工智能·深度学习·elasticsearch·搜索引擎
Drgfd1 天前
真智能 vs 伪智能:天选 WE H7 Lite 用 AI 人脸识别 + 呼吸灯带,重新定义智能化充电桩
人工智能·智能充电桩·家用充电桩·充电桩推荐
好家伙VCC1 天前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
萤丰信息1 天前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
盖雅工场1 天前
排班+成本双管控,餐饮零售精细化运营破局
人工智能·零售餐饮·ai智能排班