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

相关推荐
weixin_437497773 小时前
读书笔记:Context Engineering 2.0 (上)
人工智能·nlp
cnxy1883 小时前
围棋对弈Python程序开发完整指南:步骤1 - 棋盘基础框架搭建
开发语言·python
喝拿铁写前端3 小时前
前端开发者使用 AI 的能力层级——从表面使用到工程化能力的真正分水岭
前端·人工智能·程序员
goodfat3 小时前
Win11如何关闭自动更新 Win11暂停系统更新的设置方法【教程】
人工智能·禁止windows更新·win11优化工具
北京领雁科技3 小时前
领雁科技反洗钱案例白皮书暨人工智能在反洗钱系统中的深度应用
人工智能·科技·安全
落叶,听雪3 小时前
河南建站系统哪个好
大数据·人工智能·python
清月电子3 小时前
杰理AC109N系列AC1082 AC1074 AC1090 芯片停产替代及资料说明
人工智能·单片机·嵌入式硬件·物联网
Dev7z3 小时前
非线性MPC在自动驾驶路径跟踪与避障控制中的应用及Matlab实现
人工智能·matlab·自动驾驶
七月shi人3 小时前
AI浪潮下,前端路在何方
前端·人工智能·ai编程
橙汁味的风4 小时前
1隐马尔科夫模型HMM与条件随机场CRF
人工智能·深度学习·机器学习