机器学习——特征工程

特征工程

特征工程:将原始数据转换为可以更好地表示问题的特征形式,帮助模型更好地理解和学习数据中的规律

  • 特征工程是一个迭代过程。特征工程取决于具体情境。它需要大量的数据分析和领域知识。
  • 其中的原因在于,特征的有效编码可由所用的模型类型、预测变量与输出之间的关系以及模型要解决的问题来确定

特征选择

特征选择:从原始特征中挑选出与目标变量关系最密切的特征,剔除冗余、无关或噪声特征

  • 可以减少模型的复杂度、加速训练过程、并减少过拟合的风险
  • 特征选择不会创建新特征,也不会改变数据结构

特征选择分类:

  1. 过滤法:基于统计测试 (如卡方检验、相关系数、信息增益等)来评估特征与目标变量之间的关系,选择最相关的特征。
    • 低方差过滤法:直接基于方差来判断。低方差的特征意味着该特征的所有样本值几乎相同,对预测影响极小,可以将其去掉。
  2. 包裹法:使用模型(如递归特征消除 RFE)来评估特征的重要性,并根据模型的表现进行特征选择。
  3. 嵌入法:使用模型本身的特征选择机制(如决策树的特征重要性,L1正则化的特征选择)来选择最重要的特征。

特征转换

特征转换:对数据进行数学或统计处理,使其变得更加适合模型的输入要求。

特征转换方法:

  1. 归一化:将特征缩放到特定的范围(通常是0到1之间)。适用于对尺度敏感的模型(如KNN、SVM)。
  2. 标准化:通过减去均值并除以标准差,使特征的分布具有均值0,标准差1。
  3. 对数变换:对于有偏态的分布(如收入、价格等),对数变换可以将其转化为更接近正态分布的形式。
  4. 类别变量的编码:
    • 独热编码(One-Hot Encoding):将类别型变量转换为二进制列,常用于无序类别特征。
    • 标签编码(Label Encoding):将类别型变量映射为整数,常用于有序类别特征。
    • 目标编码(Target Encoding):将类别变量的每个类别替换为其对应目标变量的平均值或其他统计量。
    • 频率编码(Frequency Encoding):将类别变量的每个类别替换为该类别在数据集中的出现频率。

特征构造

特征构造是基于现有的特征创造出新的、更有代表性的特征。通过组合、转换、或者聚合现有的特征,形成能够更好反映数据规律的特征。

  1. 交互特征
    • 将两个特征组合起来,形成新的特征。
    • 例如,将年龄与收入结合创建新的特征,可能能更好地反映某些模式。
  2. 统计特征
    • 从原始特征中提取统计值
    • 例如求某个时间窗口的平均值、最大值、最小值、标准差等。
  3. 日期和时间特征
    • 从日期时间数据中提取如星期几、月份、年份、季度等特征。

特征降维

当数据集的特征数量非常大时,特征降维可以帮助减少计算复杂度并避免过拟合。通过降维方法,可以在保持数据本质的情况下减少特征的数量。

  1. 主成分分析(PCA):通过线性变换将原始特征映射到一个新的空间,使得新的特征(主成分)尽可能地保留数据的方差
  2. 线性判别分析(LDA):一种监督学习的降维方法,通过最大化类间距离与类内距离的比率来降维。
  3. t-SNE(t分布随机近邻嵌入):一种非线性的降维技术,特别适合可视化高维数据。
  4. 自编码器:一种神经网络模型,通过压缩编码器来实现数据的降维。
相关推荐
美好的事情能不能发生在我身上2 小时前
Leetcode热题100中的:哈希专题
算法·leetcode·哈希算法
wefg12 小时前
【算法】倍增思想(快速幂)
数据结构·c++·算法
Zik----2 小时前
Leetcode24 —— 两两交换链表中的节点(迭代法)
数据结构·算法·链表
SmartBrain2 小时前
通俗讲解:Agent Skill和智能体的技术概念
人工智能·算法
爱喝热水的呀哈喽2 小时前
副产品技法
算法
!停2 小时前
数据结构二叉树—链式结构(下)
数据结构·算法
逆境不可逃2 小时前
LeetCode 热题 100 之 41.缺失的第一个正数
算法·leetcode·职场和发展
码农小韩2 小时前
AIAgent应用开发——大模型理论基础与应用(六)
人工智能·python·提示词工程·aiagent·deepseek
lisw052 小时前
AI音乐技术及应用生态!
人工智能·机器学习