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

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

文章目录

  • 一、特性类型分析
    • 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)来判断特征的添加是否显著提升了模型性能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像 检测 - RetinaNet: Focal Loss for Dense Object Detection (arXiv 2018)

图像 检测 - RetinaNet: Focal Loss for Dense Object Detection - 密集目标检测中的焦点损失(arXiv 2018) 摘要1. 引言2. 相关工作References 声明:此翻译仅为个人学习记录 文章信息 标题:RetinaNet: Focal Loss for Dense Obje…

CentOS 搭建 Harbor 镜像仓库(图文详解)

本文目录 1. 下载 Harbor 安装包2. 解压3. 修改配置文件4. 安装 Harbor5. 修改 docker 配置6. docker 登录方式7. 访问 Harbor Web 界面8. 创建证书9. 生成证书10. 更新配置11. 网页登录 说明:在搭建 Harbor 镜像仓库之前,虚拟机要先安装 docker 和 dock…

数据安全治理5大关键技术实践分享

近年来,国内外对数据安全的重视程度持续提升,数据安全技术领域发展备受关注。从2017-2021年Gartner发布的“数据安全技术成熟度曲线”研究报告来看, 新兴数据安全技术呈逐年递增趋势,其中安全多方计算、同态加密、差分隐私等隐私增…

增强型Web安全网关在银行的应用

销售,绝不是降低身份去取悦客户,而是像朋友一样给予合理的建议。你刚好需要,我刚好专业!仅此而已! 乔.吉拉德 健康的安全体系,还可以更完善 浙江某商业银行股份有限公司是一家成立多年的商业银行&#xf…

linux 系统初始化基本yum命令

安装可能用到的系统工具 yum -y install vim telnet wget net-tools lrzsz unzip zip 安装常用工具和开发包 yum install -y which openssh-clients openssh-server less iproute bzip2 cmake gcc gcc-c gdb git libtool make man net-tools sysstat sudo psmisc nc net-t…

vue中transition动画的使用

1.vue文件 说明&#xff1a;加name属性 <transition name"sort"><div class"sort" v-show"show"><div class"all-sort-list2" click"goSearch"><div class"item bo" v-for"(item1, in…

windows系统的IP、路由、网关、内外网同时访问路由以及修改系统文件hosts的配置

当我们刚刚入职一家公司的时候、一般公司会给我下发一个ip地址和mac地址、还有访问一些公司的平台需要修改hosts之后的路由配置、以及第一次配置内网、如何内外网同时上网。 目录 一、ip的配置 1.1、IP的配置 1.2、mac地址的配置 1.3、内外网路由的配置&#xff08;w11系统需…

小程序学习(五):WXSS模板语法

1.什么是WXSS WXSS是一套样式语言,用于美化WXML的组件样式,类似于网页开发中的CSS 2.WXSS和CSS的关系 WXSS模板样式-rpx 3.什么是rpx尺寸单位 4.rpx的实现原理 5.rpx与px之间的单位换算* WXSS模板样式-样式导入 6.什么是样式导入 使用WXSS提供的import语法,可以导入外联的样式…

前端js--剪刀石头布

效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><linkrel"stylesheet"href"ht…

微服务——操作索引库+文档操作+RestClient操作索引库和文档(java程序)

索引库操作 mapping属性 mapping是对文档的约束&#xff0c;常见约束属性包括: 创建索引库 #创建索引库 PUT /heima {"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},…

带头循环双向链表详解

目录 一、什么是带头循环双向链表&#xff1f; 1.特点&#xff1a; 2.优点&#xff1a; 二、实现接口 1.前置准备 1.1需要的三个文件 1.2结构体的创建和头文件的引用 2.接口实现 2.1函数创建新节点 2.2打印链表内容 2.3尾插新节点 2.4头插新节点 2.5头删节点 2.6尾删…

【CSS】倾斜按钮

效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…

Pytest简介及jenkins集成

一、pytest介绍 pytest介绍 - unittest\nose pytest&#xff1a;基于unittest之上的单元测试框架 自动发现测试模块和测试方法 断言使用assert表达式即可 可以设置测试会话级、模块级、类级、函数级的fixtures 数据准备 清理工作 unittest&#xff1a;setUp、teardown、…

16. Spring Boot 统一功能处理

目录 1. 用户登录权限校验 1.1 最初用户登录验证 1.2 Spring AOP 用户统一登陆验证 1.3 Spring 拦截器 1.3.1 创建自定义拦截器 1.3.2 将自定义拦截器加入系统配置 1.4 练习&#xff1a;登录拦截器 1.5 拦截器实现原理 1.6 统一访问前缀添加 2. 统一异常处理 3. 统…

心跳跟随的心形灯(STM32(HAL)+WS2812+MAX30102)

文章目录 前言介绍系统框架原项目地址本项目开发开源地址硬件PCB软件功能 详细内容硬件外壳制作WS2812级联及控制MAX30102血氧传感器0.96OLEDFreeRTOS 效果视频总结 前言 在好几年前&#xff0c;我好像就看到了焊武帝 jiripraus在纪念结婚五周年时&#xff0c;制作的一个心跳跟…

R语言中数据重塑(长宽表的转化)

学习笔记&#xff0c;仅供学习使用。 目录 1-什么是整洁的数据&#xff1f; 2-宽表变成长表 示例1&#xff1a; 示例2&#xff1a; 示例3&#xff1a; 3-长表变宽表 示例1&#xff1a; 示例2&#xff1a; 1-什么是整洁的数据&#xff1f; 按照Hadley的表述&#xf…

【redis】redis的认识和安装

目录 1.redis是什么2.Redis的特点3.安装redis4.设置远程连接4.1 开启隧道4.2 可视化客户端连接4.3 开启防火墙 5.redis常见数据类型5.1 redis的一些全局命令5.2 数据结构 6. redis的典型应用---缓存&#xff08;cache&#xff09;6.1 使用redis做缓存6.2 缓存穿透&#xff0c;缓…

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

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

《吐血整理》高级系列教程-吃透Fiddler抓包教程(30)-Fiddler如何抓Android7.0以上的Https包-番外篇

1.简介 通过宏哥前边几篇文章的讲解和介绍想必大家都知道android7.0以上&#xff0c;有android的机制不在信任用户证书&#xff0c;导致https协议无法抓包。除非把证书装在系统信任的证书里&#xff0c;此时手机需要root权限。但是大家都知道root手机是非常繁琐的且不安全&…

HDFS中的sequence file

sequence file序列化文件 介绍优缺点格式未压缩格式基于record压缩格式基于block压缩格式 介绍 sequence file是hadoop提供的一种二进制文件存储格式一条数据称之为record&#xff08;记录&#xff09;&#xff0c;底层直接以<key, value>键值对形式序列化到文件中 优…