数据分析中的特征构建方法:属性生成、随机数/ID生成、特征交叉等
2023-12-11 16:52:02
次
在数据分析中,特征工程是一项至关重要的任务。特征工程指的是对原始数据进行处理,以提取出对数据模型建立有价值的特征,同时也帮助减少数据集上预测模型的误差。下文将介绍几种常见的特征工程方法,包括特征构建、特征变换和特征降维,以及一些常用的特征处理工具和方法。
特征构建
对于特征构建产生新变量,可以使用属性生成、随机数/ID生成、特征交叉、高级特征交叉、WOE编码、特征编码和过程查询分析器节点来实现。
属性生成节点包括字符函数、数值函数、日期函数、逻辑函数、业务函数、正则函数和其它函数,除了直接使用现有的一些函数外,还可以实现一些指标之间的加减乘除等基本运算。
随机数/ID生成节点可以在原数据集上新增一列随机数或ID列,生成的ID列可用于之后对数据进行排序、两张表通过ID列进行连接等情况。
特征交叉节点对于数值属性可以进行加减乘除生成新变量,对于字符型属性,可以进行两两拼接产生新变量。还可以在设置因变量后,通过设置最小标准差的方式保留大于指定的标准差的特征或设置最大相关系数的方式保留小于指定的相关系数的特征。
高级特征交叉节点通过按照给定的条件筛选字段、自动生成特征、输出模型需要的特征向量。对于数值型因变量支持FM算法,对于字符型因变量支持GBDT_Feature算法。
WOE编码节点是对原始自变量的一种编码形式,表示自变量取某个值的时候对响应比例的一种影响。该节点执行后输出每个属性每个区间的woe编码值和属性的IV值,可根据IV值进行变量筛选。
特征编码节点是将字段按照给的方法完成由原始数据到新数据的映射,生成新的特征,方便数据进行建模。对字符型属性支持OneHotEncoder、LabelEncoder编码,对数值型属性支持Binarizer编码。
过程查询分析器节点打开节点配置界面后首先点击数据表,之后再点击计算列可以对现有的表中变量进行函数计算生成新变量,支持数值函数、字符函数、日期函数、类型转换和逻辑运算。
特征变换
对于特征变换可以使用属性变换类节点、数据分组、分箱和数据标准化节点。
属性变换类节点包括数值型属性变换、字符型属性变换和日期型属性变换节点,通过这些节点可以将指标类型进行变换。
数据分组节点支持将数值型数据按用户指定的范围进行分组,将字符型数据按照指定的类别进行分组。分箱节点用于将连续型数据离散化的情况。
数据标准化节点支持最大最小归一化、最大归一化和Z标准化。
特征降维
特征降维可以使用主成分分析、因子分析、奇异值分析和变量选择节点对数据进行降维。
主成分分析的目的是为了使用最少数量的主成分来解释最大量的方差。可以使用主成分分析减少变量数目并避免多重共线性,也可以在相对于观测值数目而言有太多预测变量时使用主成分分析。提取方法可选择因子数或累计贡献度。
因子分析是一种非常有用的多变量分析技术,通常用来研究没有因变量和自变量之分的一组变量之间的关系。该节点可以对输入的多元数据分析,判断这些相互依赖的变量是否指示了潜在的结构,可以对多变量实现消减,用新的、更小的由原始变量组合而成的新变量进一步分析。该节点的因子提取方法可以选择MINRES、最大似然估计、主成分,对于最终提取的因子个数可以选择直接设置因子数或挑选特征值大于1的因子数。
当数据存在噪声时,大的奇异值对应了矩阵中的主要信息,利用其来逼近矩阵并保留80%至90%的能量就能够提取出数据中的重要特征并去掉噪声。奇异值分解通过将一个复杂的任意矩阵用更小更简单的几个矩阵相乘来表示,这些小矩阵就是矩阵的重要特征,可以有效地对数据进行泛化的同时又可以降维减少运算量。该节点可通过最大因子数来指定需要分解的因子数。
变量选择节点可以根据特征变量和响应变量之间关系输出特征变量重要性,根据变量重要性用户可以选择有效变量以降低数据集维度,用于提高学习算法性能。当特征向量为数值型,响应变量为字符型时,变量选择方法为“卡方检验”;当特征向量为数值型,响应变量为数值型时,变量选择方法为“lasso”;当特征向量为字符型,响应变量为数值型时,变量选择方法为“F检验”。
使用Tempo人工智能平台构建的案例
根据业务知识,使用属性生成节点构造正常运行次数和正常运行点数指标,如下图:
之后对各指标进行数据标准化,为后续数据模型建立做准备,数据标准化节点参数配置界面如下:
因自变量个数太多,直接参与数据建模效果不佳,故可以先进行降维,这里选择主成分分析节点,最终选择3个主成分参与模型建立,主成分分析节点输出模型和结果如下图:
特征工程是对数据进行特征构建、转换、降维等处理,目标是为后续建模过程提供数据。
总之,特征工程是数据分析中不可或缺的一环。数据分析师必须有过硬的技术背景和领域知识,才能通过一些数学和工程的手段,将原始数据生成更有用和有效的数据特征,以达到更好更准确的数据建模目的。