【机器学习】编码、创造和筛选特征

在机器学习和数据科学领域中,特征工程是提取、转换和选择原始数据以创建更具信息价值的特征的过程。假设拿到一份数据集之后,如何逐步完成特征工程呢?

文章目录

  • 一、特性类型分析
    • 1.1 数值型特征
    • 1.2 类别型特征
    • 1.3 时间型特征
    • 1.4 文本型特征
    • 1.5 图像型特征
    • 1.6 组合特征
  • 二、找到关键特征
    • 2.1 相关性分析
    • 2.2 树模型重要性
  • 三、对特征进行编码
  • 四、构建基础模型
  • 五、构造新的特征
  • 六、特征筛选与验证

一、特性类型分析

不同类型的特征包含的信息不同的,首先需要按照赛题字段的说明去对每个字段的类型进行区分。

在这里插入图片描述
下面是对不同类型的特征进行编码和操作的方法,其中取值特征本身包含的信息较多,因此可以直接考虑进行缩放:

1.1 数值型特征

  1. 缩放:将数值特征缩放到一个范围,通常使用Min-Max缩放或标准化(z-score)。
  2. 离散化:将连续数值转换为离散类别,例如分箱操作。
  3. 平滑化:应用平滑算法(如指数平滑)来减少噪声和波动。
  4. 派生新特征:通过组合或数学运算创建新的数值型特征。

1.2 类别型特征

  1. 标签编码:将类别映射为整数,常用于树模型。
  2. 独热编码:将类别转换成二进制向量,适用于线性模型和神经网络。
  3. 有序编码:根据类别的有序关系,将其转换成整数编码。
  4. 统计特征:基于类别特征进行统计计算,如均值、频率等。

1.3 时间型特征

  1. 提取时间信息:从时间戳中提取年、月、日、小时等信息作为新特征。
  2. 周期性处理:对于循环时间特征,可以使用正弦余弦变换将其转换为线性空间。

1.4 文本型特征

  1. 词袋模型:将文本转换为向量表示,如TF-IDF、词频等。
  2. 词嵌入:使用词向量将单词映射到连续向量空间,如Word2Vec、GloVe。
  3. 文本长度:记录文本的长度作为一个特征。

1.5 图像型特征

  1. 预训练网络特征提取:使用预训练的卷积神经网络(如VGG、ResNet)提取图像特征。
  2. 图像直方图:提取图像的颜色直方图作为特征。

1.6 组合特征

  1. 特征交叉:将不同特征进行交叉组合,创造新的特征。
  2. 特征合并:将多个特征合并为一个更有意义的特征。

二、找到关键特征

数据往往具有大量的特征,而并非所有特征都对目标变量有同等重要的影响。为了建立高性能的机器学习模型,我们需要找到关键特征,即对预测目标具有显著贡献的特征。

在这里插入图片描述

2.1 相关性分析

相关性是衡量两个变量之间线性关系强度的指标,可以用来发现特征与目标变量之间的关联程度。常用的相关性计算方法包括皮尔逊相关系数和斯皮尔曼等级相关系数。通过计算各个特征与目标变量之间的相关性,我们可以找到与目标变量强相关的特征。

2.2 树模型重要性

决策树和随机森林等树模型可以通过测量特征在树中分裂中的贡献度来评估特征的重要性。树模型重要性的计算方法通常包括特征在树中分裂的次数、特征带来的信息增益或基尼系数的变化等。

三、对特征进行编码

在将数据纳入模型之前,还需要对特征进行编码,将原有的特征转换成数值形式,或者抽取出特征中的信息。

在这里插入图片描述

  1. 特征抽取:某些特征可能含有大量信息,但以原始形式难以表达,特征编码有助于从中抽取出有用的信息,提高模型的表现。
  2. 处理类别型数据:类别型特征常常需要进行编码,以便模型能够理解并学习它们之间的关系。

类别特征编码有多种方法可供选择,常见的包括标签编码、独热编码、二进制编码等。每种方法都有其优势和限制,因此需要综合考虑特征的属性和模型的要求,选择最适合的编码方式。在实际应用中,我们需要根据具体情况选择适合的编码方法,这需要考虑以下因素:

类别特征的性质:

  1. 若类别特征存在顺序关系,标签编码可能更合适,以保留类别之间的相对大小关系。
  2. 若类别特征之间没有顺序关系,独热编码或二进制编码可能更为合适,以避免引入错误的信息。

数据集的规模:

当数据集规模较大时,独热编码可能导致高维度问题,增加计算开销,可以考虑使用二进制编码或其他降维方法。

机器学习算法的要求:

不同的机器学习算法对特征编码的要求不同,需要根据使用的模型类型来选择合适的编码方式。

四、构建基础模型

在进行特征工程后,下一步是构建Baseline(基础模型),这是机器学习任务中的重要步骤。Baseline是一个简单而基础的模型,用来作为后续模型优化和改进的起点。

在这里插入图片描述

五、构造新的特征

在特征工程的过程中,创造性地构造新的特征是一个关键步骤。通过构造新特征,我们可以进一步提取数据中的有用信息,增强模型的表达能力和泛化能力。

在这里插入图片描述
在特征构造时,我们可以优先从已确定的重要特征入手,因为这些特征对目标变量有显著贡献,可能携带着更多有用的信息。

分组统计特征:

  • 对数据进行分组,例如按照类别特征、时间窗口等分组。
  • 在每个组内,计算各种统计量,如平均值、标准差、最大值、最小值等,作为新特征。

排序特征:

  • 对数据进行排序,例如按照时间顺序、数值大小等排序。
  • 可以计算位置特征,如第一个出现、最后一个出现,或者计算排序之间的差值等。

时间序列特征:

  • 如果数据具有时间性质,可以提取时间序列特征。
  • 如计算滚动平均、滚动标准差、时间差分等。

统计特征:

  • 利用历史信息计算统计特征,如过去一段时间内的均值、方差等。
  • 这些统计特征可以反映数据的动态变化和趋势。

组合特征:

  • 将不同特征进行组合,创建新的特征。
  • 可以通过加、减、乘、除等数学运算进行组合。

在创造新特征时,需要注意新特征的含义和对问题的贡献。新特征应该能够更好地表达数据的特点和模式,同时避免引入噪声或不必要的信息。理解新特征的意义,有助于我们更好地解释模型的预测结果,并为特征选择提供指导。

六、特征筛选与验证

特征筛选是特征工程中的关键步骤之一,它有助于优化模型的复杂度和性能,同时保留对目标有意义的有效特征。在特征筛选过程中,我们需要添加新特征并验证Baseline模型的精度变化,同时注意精度变化是否是随机波动引起的。

在这里插入图片描述
在特征筛选过程中,我们需要注意精度变化是否只是由于随机波动导致的。为了排除随机性的影响,可以采用以下方法:

  1. 交叉验证(Cross-Validation):使用交叉验证可以降低随机性带来的影响,通过多次实验取平均值来评估特征的性能变化。
  2. 统计显著性检验:使用统计显著性检验(如t-test)来判断特征的添加是否显著提升了模型性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/61568.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio安装AI编程助手Github Copilot

csdn原创谢绝转载 简介 文档链接 https://docs.github.com/en/copilot/getting-started-with-github-copilot 它是个很牛B的编程辅助工具,装它,快装它. 支持以下IDE: IntelliJ IDEA (Ultimate, Community, Educational)Android StudioAppC…

数据库操作系列-Mysql, Postgres常用sql语句总结

文章目录 1.如果我想要写一句sql语句,实现 如果存在则更新,否则就插入新数据,如何解决?MySQL数据库实现方案: ON DUPLICATE KEY UPDATE写法 Postgres数据库实现方案:方案1:方案2:关于更新:如何实…

【云原生】K8S二进制搭建一

目录 一、环境部署1.1操作系统初始化 二、部署etcd集群2.1 准备签发证书环境在 master01 节点上操作在 node01与02 节点上操作 三、部署docker引擎四、部署 Master 组件4.1在 master01 节点上操 五、部署Worker Node组件 一、环境部署 集群IP组件k8s集群master01192.168.243.1…

【雕爷学编程】MicroPython动手做(31)——物联网之Easy IoT

1、物联网的诞生 美国计算机巨头微软(Microsoft)创办人、世界首富比尔盖茨,在1995年出版的《未来之路》一书中,提及“物物互联”。1998年麻省理工学院提出,当时被称作EPC系统的物联网构想。2005年11月,国际电信联盟发布《ITU互联网…

在 Ubuntu 上安装 Docker 桌面

Ubuntu 22.04 (LTS) 安装 Docker 桌面 要成功安装 Docker Desktop,您必须: 满足系统要求拥有 64 位版本的 Ubuntu Jammy Jellyfish 22.04 (LTS) 或 Ubuntu Impish Indri 21.10。对于非 Gnome 桌面环境,必须安装 gnome-terminal:…

机器学习笔记 - YOLO-NAS 最高效的目标检测算法之一

一、YOLO-NAS概述 YOLO(You Only Look Once)是一种对象检测算法,它使用深度神经网络模型,特别是卷积神经网络,来实时检测和分类对象。该算法首次在 2016 年由 Joseph Redmon、Santosh Divvala、Ross Girshick 和 Ali Farhadi 发表的论文《You Only Look Once: Unified, Re…

Excel·VBA表格横向、纵向相互转换

如图:对图中区域 A1:M6 横向表格,转换成区域 A1:C20 纵向表格,即 B:M 列转换成每2列一组按行写入,并删除空行。同理,反向操作就是纵向表格转换成横向表格 目录 横向转纵向实现方法1转换结果 实现方法2转换结果 纵向转横…

ThreadLocal有内存泄漏问题吗

对于ThreadLocal的原理不了解或者连Java中的引用类型都不了解的可以看一下我的之前的一篇文章Java中的引用和ThreadLocal_鱼跃鹰飞的博客-CSDN博客 我这里也简单总结一下: 1. 每个Thread里都存储着一个成员变量,ThreadLocalMap 2. ThreadLocal本身不存储数据&…

Jenkins 自动化部署实例讲解,另附安装教程!

【2023】Jenkins入门与安装_jenkins最新版本_丶重明的博客-CSDN博客 也可以结合这个互补看 前言 你平常在做自己的项目时,是否有过部署项目太麻烦的想法?如果你是单体项目,可能没什么感触,但如果你是微服务项目,相…

Android的Handler消息通信详解

目录 背景 1. Handler基本使用 2. Handler的Looper源码分析 3. Handler的Message以及消息池、MessageQueue 4. Handler的Native实现 4.1 MessageQueue 4.2 Native结构体和类 4.2.1 Message结构体 4.2.2 消息处理类 4.2.3 回调类 4.2.5 ALooper类 5. 总结&…

【千题百解】华为机试题:求最小公倍数

“所有命运馈赠的礼物,都已在暗中标好了价格” 👨🏻‍💻作者:鳄鱼儿 🍀个人简介 👨🏻‍🎓计算机专业硕士研究生 🦨阿里云社区专家博主 🌙CSDN博客专家 & Java领域优质创作者 题目 解题 Java实现 注意a和b相乘时可能超过int最大值。 import java.uti

python调用pytorch的clip模型时报错

使用python调用pytorch中的clip模型时报错:AttributeError: partially initialized module ‘clip’ has no attribute ‘load’ (most likely due to a circular import) 目录 现象解决方案一、查看项目中是否有为clip名的文件二、查看clip是否安装成功 现象 clip…

命令模式(Command)

命令模式是一种行为设计模式,可将一个请求封装为一个对象,用不同的请求将方法参数化,从而实现延迟请求执行或将其放入队列中或记录请求日志,以及支持可撤销操作。其别名为动作(Action)模式或事务(Transaction)模式。 Command is …

Spring Cloud Eureka 和 zookeeper 的区别

CAP理论 在了解eureka和zookeeper区别之前,我们先来了解一下这个知识,cap理论。 1998年的加州大学的计算机科学家 Eric Brewer 提出,分布式有三个指标。Consistency,Availability,Partition tolerance。简称即为CAP。…

初识性能测试

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 什么是性能测试?为什么要做性能测试?性能测试常见术语及性能测试衡量指标并发用户数响应时间/平均响应…

华为Mate30报名鸿蒙 HarmonyOS 4.0.0.108 系统更新

华为 Mate 30 系列于 2019 年 11 月 1 日上市,包括 Mate 30 4G / 5G、Mate 30 Pro 4G / 5G、保时捷设计版 Mate30 共五款机型。华为 Mate 30 系列 5G 版搭载麒麟 990 5G 处理器,同时支持 SA 及 NSA 5G 双模,适配三大运营商的 5G / 4G / 3G / …

Mac显示隐藏文件夹

1、设置隐藏文件可见 defaults write com.apple.finder AppleShowAllFiles TRUE 2、killall Finder killall Finder

opencv的Mask操作,选择图片中感兴趣的区域

最近做目标检测任务的时候,需要对固定区域的内容进行检测,要用到opencv的mask操作,选择图片固定的区域 代码 import cv2 import numpy as npimg cv2.imread(data/images/smoking.png)# 弹出一个框 让你选择ROI | x,y是左上角的坐标 x,y,w,…

岩土工程仪器多通道振弦传感器信号转换器应用于隧道安全监测

岩土工程仪器多通道振弦传感器信号转换器应用于隧道安全监测 多通道振弦传感器信号转换器VTI104_DIN 是轨道安装式振弦传感器信号转换器,可将振弦、温度传感器信号转换为 RS485 数字信号和模拟信号输出,方便的接入已有监测系统。 传感器状态 专用指示灯方…

8.15锁的优化

1.锁升级(锁膨胀) 无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 偏向锁:不是真的加锁,而是做了一个标记,如果有别的线程来竞争才会真的加锁,如果没有别的线程竞争就不会加锁. 轻量级锁:一个线程占领锁资源后,另一个线程通过自旋的方式反复确认锁是否被是否(这个过程比较…