特征工程知识点总结

news2024/11/16 9:23:16

非系统且不严谨的总结

一、数据清洗

数据清洗部分主要包括:缺失值处理、重复值处理、异常值处理。前两者简单,要么直接删掉,要么按照我们心仪的规则进行插值填充。而对于异常值,也可以直接删掉,但是并不是最好的做法。

如何检测异常值:

  • 基于数据分布,当总体有先验的分布时,可以确定一个允许的概率,概率密度小于该值的观测视为异常值
  • 基于分位数(四分位),一般取上限为比 Q3 大 1.5*(Q3-Q1) 的位置,下限同理

在以下情况下,可以直接删除异常值:

  • 可以确定是有测量错误引起的,例如:2020年13月14日
  • 异常值的占比非常小,具体多小看实际需要

反之则建议保留异常值,一般在检测异常值时已经确定上限和下限,可以通过盖帽法将数值限制在合理范围。具体如何处理还需要考虑用到的算法和建模需要。

二、特征转换

简单来说就是原始数据中可能存在非数值的特征,需要转换为数值型的特征。

对于分类数据(一般为文本形式),使用编码的方式将其赋值而转化为数值数据。如果本来存在先后顺序(如:高、中、低),则可以根据其含义赋值。如果是无顺序的分类(如:男、女),用的最多的是 One-Hot 编码,及其衍生的形式。更多的编码方式可以参考这篇文章。

对于数值数据,也可能需要进行进一步的编码(数值转为分类),即进行离散化。常见的方式有等宽分箱、等频分箱,或者通过无监督聚类来进行离散化。另外还可以将连续型数据二值化转化为离散数据(常用于计算机视觉中的特征转换)。

三、特征缩放

所谓特征缩放,就是当数据存在多个特征时,将各个特征的数值以某种规则限制在一个接近的范围。例如,特征中存在一个百分比数据(0-1),一个年龄数据(0-100)。在一些算法中(一般指使用欧氏距离衡量误差的算法),这种尺度的差异会影响各个特征的权重,导致结果受度量尺度的影响(但是从实际意义来看这个尺度不应该产生影响),因此需要进行特征缩放。常见方法有:

  • 绝对最大值缩放:所有数据同时除以最大值;这样做的效果是,压缩到 [-1, 1] 的范围
  • 最小最大缩放(归一化):最小值作为 0,最大值作为 1,然后等比例压缩到 [0, 1] 之间;相比上一个方法,好处是不会出现负值
  • Standardization(标准化):所有数据同时减去均值再除以标准差
  • Normalization(好像也叫标准化??):所有数据同时减去最小值再除以极差
  • Regularization(正则化):准确来说不属于特征缩放方法,而是在损失函数中加入惩罚项,作用类似放一起说了

如何选取特征缩放方法:

  • 归一化:对数据结果范围有要求时使用;不存在极大或极小的离群值(否则大部分数据都挤在很小的范围内了)时使用
  • 标准化:不适用归一化时使用
  • 正则化:有 L1-Norm 和 L2-Norm 两种形式;前者得到 Lasso 模型,适用于需要筛选特征时(无关特征权重会置零);后者得到 Ridge 模型,不会置零

关于上述方法的数学表示,这篇文章总结得很清晰,这里就懒得 latex 了。

三、特征选择

特征选择与后面提到的特征提取,同属于降维方法,关于降维技术的完整总结(含代码)参考这篇文章(备用链接),其关系大致如下:

  • 降维
    • 特征选择
      • 相关性、前向选择、后向消除
    • 特征提取
      • 主成分分析、线性判别分析

数据存在多个特征,选择其中一个子集进行建模,称作特征选择。之所以要筛除部分特征,是因为维度过高的数据训练模型时容易产生过拟合,需要减小数据的维度以提高模型泛化能力。另一方面,也提高模型解释性和减少训练的难度。主要有以下方法:

  • 过滤式选择:根据特征的信息量对特征进行排序,并筛除信息量较低的特征。衡量信息量一般有两类方法,一种是以特征和目标变量的相关性衡量(如皮尔逊相关系数),另一种是以特征的发散性衡量(如方差)。

  • 包裹式选择:需要先确定一个算法模型,然后在不同特征子集上进行训练评估,最后选取最佳的子集。对于子集的分割,最直白的方式就是遍历所有组合。但是这样算法复杂度过高,因此衍生出不同的优化搜索算法。这个方法存在的问题是,需要事先确定一个学习算法,但是我们一开始不可能知道最优的算法。并且,不同算法得到的最优子集也是不同的。

  • 嵌入式选择:Lasso 即为一个典型例子,将特征选择的功能“嵌入”在损失函数的惩罚项中。

四、特征提取

主成分分析(PCA)

简单来说,主成分分析执行的操作就是将特征进行一系列线性运算,将其映射到一个新的空间,用新的特征表示。具体怎么执行运算呢?其目标就是使新的特征相互正交,每个新的特征负责解释一个维度,并且使投影到新的空间时样本点的方差最大化(最大可分性)。原理很好理解,数学推导有点复杂,没捋清…

使用 PCA 可以将高维空间的特征投影到低维空间,丢弃了权重较小的主成分(往往是与目标变量的解释无关的信息,即噪声),使样本的采样密度增大,可以有效避免过拟合的问题。

核主成分分析(KPCA)是 PCA 的一个衍生方法,当特征从高维空间映射到低维空间不存在线性函数时,则需要进行核化,即非线性降维。下图很直观地解释了为什么需要非线性降维(来自“西瓜书”):

在这里插入图片描述

进行 PCA 时的注意事项:

  • 什么时候适合使用 PCA:变量之间存在相关性、样本量足够大、数据无显著的异常值
  • 由于协方差矩阵(PCA 算法的大致过程为:中心化、计算协方差矩阵、确定特征向量、通过特征向量投影特征空间)对变量的尺度敏感,所以进行 PCA 前需要进行数据缩放,即标准化
  • 生成的主成分的性质:所有主成分均为原始特征的线性组合,所有主成分相互正交,按照解释的变异量排序
  • PCA 的缺点:原始特征被组合在主成分之中,难以通过新的特征解释模型;并且有可能丢失重要的信息
  • 评估 PCA 的效果:第一主成分权重越高越好

线性判别分析(LDA)

由于 PCA 是一种无监督学习方法,在将特征投影到新的空间时不考虑目标变量,有时候会导致在新特征上学习分类(分类问题中的特征多为不相关)变得更加困难,因此需要一种有监督的降维方法。LDA 有监督体现在,对特征进行投影时考虑了目标变量,它的目标是:使同类的尽可能靠近,不同类的点尽可能远离,最后将所有点投影到一条直线上。在进行分类时,同样将新样本投影到该直线,根据投影的位置来确定类别。在 PCA 中可以根据主成分解释的变异,选择任意需要的主成分数目,新特征的维度是任意的。在 LDA 中(分类问题),假设目标变量有 N 个类,则 LDA 产生的新特征的维度为 N-1。对于二分类问题,即投影到一条直线上。

在这里插入图片描述

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

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

相关文章

烂sql导致clickhouse集群memory_tracking直线飙升触发熔断

版 本 v e r s i o n 1 9 . 1 7 . 4 . 1 1 c l i c k h o u s e 集 群 , 主 要 存 日 志 数 据 与 监 控 数 据 。 架 构 为 4 台 主 机 1 2 个 实 例 数 , 数 据 为 单 副 本 。 近 日 , 该 c l i c k h o u s e 集 群 有 一 台 物…

JavaWeb之jsp技术的个人理解

一.介绍 是什么:ava Server Pages: java服务器端页面(可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码),用于简化书写!!&#xf…

Elasticsearch 安装使用

下载安装 elasticsearch下载链接 运行:bin\elasticsearch.bat 设置密码:.\bin\elasticsearch-setup-passwords interactive 这边设置密码遇到一个坑 PS G:\elasticsearch-8.8.1> .\bin\elasticsearch-setup-passwords interactiveFailed to authe…

arcpy对图层文件的属性表实现查询、插入、更新、删除

前言 对属性表进行增删改查要用到插入游标、删除游标、更新游标、查询游标。 官方文档地址如下:https://resources.arcgis.com/zh-cn/help/main/10.2/ 授人以鱼不如授人以渔!! 一、查询游标SearchCursor SearchCursor 函数用于在要素类或…

代码复现:基于竞争学习的灰狼优化算法Clb-GWO

代码复现:基于竞争学习的灰狼优化算法Clb-GWO,可用于算法对比 参考文献:Aala Kalananda V K R, Komanapalli V L N. A competitive learning-based Grey wolf Optimizer for engineering problems and its application to multi-layer perce…

MeterSphere(基于JMeter)常用断言汇总

JSONPath方式断言 {"success": true,"errCode": null,"errMessage": null,"statDate":"6月28日","data": [{"name": "人口","value": "1","unit": "万人…

数字孪生与 GIS 融合为环保领域带来新的变化

在当今日益关注环境保护和可持续发展的时代,数字孪生和 GIS 的融合为环境保护领域带来了巨大的变化。数字孪生是一种以 3D 模型为基础的仿真技术,能够对真实世界进行精确的建模和模拟,而 GIS 则是一种用于收集、管理、分析和可视化地理数据的…

【Uni-app 引入海康h5player并接入ws视频流】

uni-app 海康h5player接入ws视频流 内容简介 采用uni-app中的renderjs 引入海康H5 SDK 后端接入海康综合安防平台的开放API获取预览流 海康H5 SDK 下载地址 接入原因 因在移动端接入不管是hls flv rtsp rtmp流的播放稳定性和速度均很慢,特采用ws直连流来播放&#…

REVIT技巧|一面接一面,叠层墙就是这样堆出来的?

​Revit中有3种墙族:基本墙、幕墙和叠层墙。幕墙定义为由网格和嵌板组成的系统。 基本墙是由从外部到内部的材质层组成的墙。基本墙自底部到顶部的厚度都相同。 叠层墙由相互堆叠的基本墙组成,可以设计具有自底部到顶部厚度不同的墙。 今天&#xff0c…

1.4 MyBatis数据库逆向生成工具

步骤1: mybatis-generator工程 步骤2&#xff1a;修改generatorConfig.xml内容 1.通用mapper所在目录 2.数据库链接 3.对应生成的pojo所在包 4.对应生成的mapper所在目录 5.配置mapper对应的java映射 6.数据库表 具体内容&#xff1a;<!-- 通用mapper所在目录 --> &l…

记录两个不同的域名使用同一个微应用遇到的坑(micro-app)

由于公司的项目越来越多&#xff0c;很多的系统&#xff0c;也有很多相似的模块&#xff0c;为了解决重复造轮子&#xff0c;降低开发维护成本&#xff0c;故将这些抽出来单独作为微应用。经过调研&#xff0c;发现某东出品的micro-app比较吻合。使用过程省略。 在多个项目&am…

Grafana 配置告警 配置 dubbo windows_exporter 报告页面图 其他公共报告可参考相近

目录 安装部署 官网下载 配置中文 启动 访问 账户密码 界面效果 图表操作 新建添加仪表 添加 Prometheus 数据源 导入已有报告示例 下载 windows_exporter Grafana 的图表模板 node_exporter 中文版&#xff1a;windows_exporter for Prometheus Dashboard CN v2…

2023年全网最全接口自动化测试框架搭建,没有之一

一、原理及特点 参数放在XML文件中进行管理 用httpClient简单封装一个httpUtils工具类 测试用例管理使用了testNg管理&#xff0c;使用了TestNG参数化测试&#xff0c;通过xml文件来执行case。 测试报告这里用到第三方的包ReportNG 项目组织用Maven 二、准备 使用工具&am…

期货和现货白银的区别

白银期货和现货白银既有区别&#xff0c;也有联系&#xff0c;它们二者都是以银价跟跟踪对象的保证金交易品种&#xff0c;因此都具有一定的杠杆效应&#xff0c;都可以双向操作&#xff0c;但是它们在交易制度、时间、杠杆水平等诸多方面&#xff0c;都存在明显的区别。 投资者…

为什么你总学不会编程?到底差什么?

为什么你总学不会编程&#xff1f;到底差什么&#xff1f; 笔者看到太多太多的人花上钱、耗费一两年的时间都学不会编程&#xff0c;甚至一门C语言都反反复复学不完、学不会&#xff0c;游走在大门边缘&#xff0c;总是入不了门&#xff0c;到底是什么因为什么&#xff1f; 因…

020、数据库管理之数据导出工具(Dumpling)

Dumpling dumpling详解dumpling介绍dumpling架构与特点dumpling 适用场景dumpling的部署dumpling 所需权限dumpling 导出SQL文件dumpling 导出csv文件对导出数据进行筛选导出数据的格式导出数据的一致性dumpling 性能优化 实验导出TiDB 数据库中的单张表和单个库导出mysql数据库…

tomcat接入skywalking

tomcat接入skywalking 一、说明二、步骤2.1 准备java-agent包2.2 tomcat部署2.2.1 下载2.2.2 tomcat修改catalina.sh文件2.2.3 tomcat修改启动端口2.2.4 启动tomcat 三、验证四、问题排查4.1 tomcat的启动日志 一、说明 服务器中已经运行着skywalking&#xff0c;准备在同一台…

【Jmeter教程】_设置请求的参数

目录 一、Jmeter传参 二、区分参数格式 在做接口测试时&#xff0c;发送请求的参数有两种格式&#xff0c;一种是Parameters&#xff0c;一种是JSON 一、Jmeter传参 Jmeter 传Parameters格式的参数 Jmeter 传JSON格式的参数 二、区分参数格式 在不清楚参数到底是何种格式时…

使用Arthas查看JDK代理源码

【README】 本文总结自黑马程序员-设计模式&#xff0c;老师讲的非常棒&#xff1b; 【1】jdk代理案例 卖票接口 public interface SellTickets2 {void sell(); }火车站 public class TrainStation2 implements SellTickets2 {Overridepublic void sell() {System.out.prin…