首页 > 其他分享 >特征工程思路

特征工程思路

时间:2024-03-04 15:44:24浏览次数:19  
标签:或者 工程 特征 使用 思路 进行 数据 属性

特征工程

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。

拿到一份新的数据,需要对特征进行一定的处理使其变成我们可用的数据,具体应该怎么做呢?下面是我整理的分析思路。

 

特征使用方案

拿到数据之前,需要结合业务经验、市场预分析对数据里需要使用的特征进行预筛选,初步确定对因变量可能有影响的所有变量。

特征的可用性评估可以由以下几个方案进行考察:

①数据的获取难度:历史数据的获取是否花销在可控范围内,存储形式,需要考虑在预测阶段也可获得与可存储。

②覆盖率:已经获得的数据是否有较多的空缺值。

③准确率:对于已经获得的数据是否准确需要进行预判定。

综合判定数据的质量,需要从准确性、完整性、一致性、时效性、可信性、可解释性定义等角度出发进行判别。

特征处理

特征清洗:清洗异常样本(异常值处理);若数据不均衡,考虑采样:允许使用数据小得多的随机样本表示大型的数据集。

常见的数据清洗思路 填补空缺值、光滑噪声、识别离群点、纠正数据的不一致性

特征预处理:

①单项特征

常见特征有如下类型:

标称属性:与名称相关,是一些符号或者事物的名称,代表某种类别、编码或者状态,是分类的;在计算机科学中可视为枚举类型。

标称属性的数学运算没有意义,一般不定量使用;可以观察”众数“,是一种中心趋势度量。

二元属性:一种标称属性,只有两个类别或者状态:0或者1,0通常表示属性不出现,1表示出现。二元属性称为“布尔属性”,对应ture与false值。

对称的二元属性:如果两种状态具有等价值并且携带相同的权重,关键结果用0或者1编码 无偏好(如男或者女)

非对称的二元属性:状态结果不是同样重要,用1用于最重要的结果。用0编码另一个结果。

序数属性:可能的值之间具有意义的序或者秩,但是相继值之间的差未知。如:饮料店的值小、中 、大,具有有意义的先后次序;grade:A、B、C、D等,职位可以按照顺序枚举,对于教师按照列兵、军事、下士等。序数属性是有用的,一般按照顺序排列:如0-很不满意,1-不太满意,2-中性,3-满意,4-和满意。

序数属性可以通过数质量划分优先有序类别,将数值属性离散化得到。

中心趋势可以使用众数或者中位数进行表示,不能用于定义均值。

数值属性:提供对象的定量度量,属性可以以区间的标度或者比率标度的。

区间标度属性:用相等的单位尺度度量,区间属性的值有序,可以为0、或者负值,允许我们比较与定量评估值之间的差。如温度(区间标度)除了中心趋势度度量中位数与众数之外,可以计算他们的均值。

比率标度属性:比率标度:是具有固有零点的数值属性,如果度量是比率标度,可以说一个值是另一个的倍数或者比率。值是有序的,可以计算值之间的差、均值、中位数、众数。如员工工作年限、字数(有计数属性的特征)、重量、货币量等。

离散属性与连续属性:使用许多方法组织属性类型,类型不是互斥的。开发分类算法通常把属性分成离散或者连续,离散属性具有有限或者无限可数个值。如果属性不是离散的,则是连续的。经典意义下,连续值是实数,数值类型是整数或者实数。

 

对于离散型属性,根据特征特点对应进行填补空缺值、数据编码(独热编码 或者序数编码,需根据特征类型进行决策)。

对于连续性属性,根据特征需求可进行数据规约、填补空缺值、光滑噪声、离群点识别等操作进行预处理。

常见特征缺失值处理思路

1、忽略元组:缺失值超过一半,一般场景下直接整个不用。

2、人工填写缺失值:费时,缺失很多值的时候可能不好使。

3、使用一个全局常量填充:简单,但并非十分可靠。

4、使用属性的中心度量(均值或者中位数)填充缺失值:对于中心非对称的数据,可以使用中位数进行填充。

5、使用与给定元组同一类的所有样本的属性均值或者中位数:如 同一类的使用同一数据收入进行替换。

6、使用最可能的值填充缺失值:可以使用回归、贝叶斯方法基于推理工具或者决策树归纳决定。通过使用数据集中其他顾客的属性,可以构造一颗决策树,来预测缺失值。

有缺失值不一定代表有错误,在有可能一开始就存在留白的情况。

 

多个特征

特征数量比较多时,需要筛选最有用的特征进行降维或者特征挑选,常见处理思路如下。

特征降维:PCA

通过搜索k个最能代表数据的n维正交向量,k<=n,原始数投影到一个小得多的空间上,导致维归约。与属性子集选择,通过保留原属性集的一个子集来减少属性集的大小不同,PCA通过创建一个替换的,比较小的变量集来组合属性的基本要素。

PCA常常能揭示先前未察觉的联系,允许揭示不寻常的结果。

PCA处理流程如下:

(1)对输入数据规范化,每一个数据都落入相同的区间。该步骤助于确保具有较大定义域的属性不会支配具有较小定义域的属性。

(2)PCA计算k个标准正交向量,作为规范化输入数据的基。这些是单位向量,每一个都垂直于其它向量。这些向量称为主成分,输入数据是主成分的线性组合。

(3)对于主成分按照重要性强度降序排列。本质上充当新数据的新坐标系,提供关于方差的重要信息,对坐标轴进行排序,使得第一个坐标轴显示数据的最大方差,第二个显示数据的第二大方差。该信息有助于识别数据中的组群或者模式。

(4)由于主成分分析是有顺序排列,可以去掉较弱的成分来规约数据。

可以用于有序或者无序的属性,并且可以处理系数与倾斜的数据。多于二维的多维数据可以通过将问题规约为二维问题来处理,也可以做多元回归和聚类分析的输入,能更好的处理稀疏数据。

 

特征挑选

特征维度太多时,重点考虑自变量与因变量的关联。

常见的处理思路有如下几个点:

相关性分析:皮尔逊系数、卡方分析,最直接判定哪些特征与目标因变量有关系

信息增益

使用学习器进行筛选:用学习器自动学习特征,如使用Xgboost、随机森林 判断特征重要属性进行特征筛选。

xgboost和随机森林是两种常用的机器习算法,它们都可以用于特征选择和特征重要性评估。它们在特征重要性评估方面有一些区别。

对于xgboost算法,特征重要性是通过计算特征在所有决策树中被使用的次数或被用于分裂的平均增益来评估的。具体来说,xgboost会统计每个特征在所有决策树中被选择为分裂节点的次数,然后将这些次数进行归一化处理,得到特征重要性的评分。这个评分可以用来判断特征的重要性,评分越高表示特征越重要。(Gain)

而对于随机森林算法,特征重要性是通过计算特征在随机森林中被用于分裂时所带来的不纯度减少量来评估的。具体来说,随机森林会统计每个特征在所有决策树中被选择为分裂节点时所带来的不纯度减少量,并将这些减少量进行平均或加权平均,得到特征重要性的评分。同样,评分越高表示特征越重要。

在使用这两个算法时,可以根据特征重要性的评分来判定特征的重要性。一种常见的方法是选择评分较高的特征作为重要特征,可以根据评分的阈值进行筛选。另外,还可以根据特征重要性的排序来选择前几个或者一定比例的特征作为重要特征。

 

标准化:适用于需要消除不同特征之间量纲差异的情况,使得各个特征具有相同的尺度。常用于基于距离的算法(如KNN、聚类)和梯度下降优化算法(如线性回归、逻辑回归)。

归一化:适用于需要将数据映射到固定范围内的情况,保留原始数据的分布信息。常用于神经网络等对输入数据敏感的模型。

 

根据特征选择的形式又可以将特征选择方法分为3种:

Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。 Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。 Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。

 

 

总结:现实特征处理流程

①确定特征使用方案:判断数据集里可用的部分,结合对数据质量的判断,初步筛选可用特征。

②对特征进行单项处理:根据具体的特征类型确定特征处理的方案,进行特征清洗与特征转换。

③特征筛选:结合应用场景的可行性,选择降维或筛选特征,确定最终使用的特征组。

标签:或者,工程,特征,使用,思路,进行,数据,属性
From: https://www.cnblogs.com/AKsnoopy/p/18051948

相关文章

  • 服务端工程师进化史-从零开始的APP开发(1)
    引题笔者开发了个漫画小说阅读APP,前前后后花了三个月,从服务端到前端,再到客户端,一路艰辛不言而喻。附上github的提交记录:起因2023年年末,笔者正为“高级系统架构师”的考试准备中,因资料太过于无聊,期间走神无数、三天打鱼两天晒网,到了临考期,已经是预计考不过的;也不知道为啥,在某......
  • 20211121杨博川《密码工程》1、2章笔记
    一二章笔记@目录一二章笔记第1章密码学研究范围思维导图知识概述1.1密码学作用1.2木桶原理1.3对手设定1.4专业偏执狂1.5威胁模式1.6密码学不是唯一解决方案1.7密码学是非常难的1.8密码学是简单的部分1.9通用攻击1.10安全性和其他设计准则1.11更多阅读材料1.12专业偏执狂练习第2......
  • KY148 还是畅通工程c
    这题好像更新了呀,不压缩路径的话,find函数用递归的话会栈溢出。#include<stdio.h>#include<stdbool.h>#include<stdlib.h>intset[101];typedefstructnode{intlength;inte1;inte2;}edge;voidinit_set(int*set){for(inti=0;i<101;i++){......
  • 使用STM32CubeMX创建工程
    1,选择芯片新建工程 2.时钟模块的设置分别设置HSE,LSE,MCO 3.时钟系统配置分别配置PLL,SYSCLK,AHB,APB1,APB2等等,配置修改如下红色标记部分 4.Cortex内核配置分别配置SYS(DEBUG),NVIC(优先级分组) 5.GPIO引脚配置我的板子的原理图的PB5引脚是LED0  6.修改工程配......
  • 算法工程师面试常考手撕题
    手撕numpy写线性回归的随机梯度下降(stochasticgradientdescent,SGD)  在每次更新时用1个样本,可以看到多了随机两个字,随机也就是说我们用样本中的一个例子来近似我所有的样本,来调整θ,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,对于最优化问题,凸问......
  • GNS3打开工程报错 --Dynamips error xxx:unable to create UDP NIO 解决方法
    GNS3打开工程报错--Dynamipserrorwhenrunningcommandxxx:unabletocreateUDPNIO报错原因:GNS3(v2.2)serverUDP连接端口号使用了10000-20000,NvidiaGeForceExperience也使用了相同的UDP端口号,发生冲突。解决方法:方法一:卸载NvidiaGeForceExperience,此过程不会......
  • 智慧治水丨计讯物联水利RTU助推小型水库出险加固工程建设与管理
    日前,水利部印发《关于健全小型水库除险加固和运行管护机制的意见》(以下简称《意见》),健全小型水库除险加固和运行管护常态化机制,提高小型水库安全管理水平。《意见》提出了“十四五”的两大管理机制,通过加快监测设施建设与全管理信息融合共享机制健全小型水库除险加固和运行管护。......
  • SOLIDWORKS参数化设计之工程图更新 慧德敏学
    SOLIDWORKS参数化设计不仅仅包括三维模型的参数化设计,还包括工程图的自动更新,由于自动出图仍然存在一定的局限性,不能完美的实现视图的布局及尺寸的标注,因此,现阶段采用的最多的仍然是图纸的更新,也就是利用SOLIDWORKS本身三维与二维模型的关联性,当三维模型尺寸变化之后,二维图纸随着......
  • Pycharm:在工程目录下新建一个Python.exe
    1、起因公司电脑上把Python安装在了系统盘,但是我没有系统盘的修改权限,导致用pip时无法把包安装到系统盘2、解决方案在工程目录下,为工程新建一个Python.exe,之后该工程都采用这个python和它的pip,把包安装在工程包下。1)File→Settings→Project:xxx→PythonInterpreter2)Python......
  • 岩土工程中的振弦采集仪技术发展与前景展望
    岩土工程中的振弦采集仪技术发展与前景展望河北稳控科技振弦采集仪是一种常用的岩土工程监测仪器,用于测量土壤或岩石的振动特性。随着岩土工程领域的发展和技术的进步,振弦采集仪技术也得到了不断的发展和改进。以下是对振弦采集仪技术发展与前景的展望: 1.技术改进:随着传感器......