新闻推荐比赛学习——任务04——特征工程

新闻推荐学习中可以用到的特征工程处理方法:
摘自ryluo特征工程(制作特征和标签, 转成监督学习问题)
首先做特征工程的主要目的是制作特征和标签,将新闻推荐问题转成监督学习问题。
原特征中可以利用的特征有:

  1. 文章的自身特征category_id表示这文章的类型, created_at_ts表示文章建立的时间,这个关系着文章的时效性,words_count是文章的字数,一般字数太长我们不太喜欢点击, 也不排除有人就喜欢读长文。
  2. 文章的内容embedding特征: 这个召回的时候用过,可以选择使用,也可以选择不用,也可以尝试其他类型的embedding特征,如W2V。
  3. 用户的设备特征信息
    上面这些是直接可以用的特征,特征工程处理之后,直接就可以根据article_id或者是user_id把这些特征加入进去。但是需要先基于召回的结果,构造一些特征,然后制作标签,形成一个监督学习的数据集。

构造监督数据集的思路,根据召回结果, 我们会得到一个{user_id: [可能点击的文章列表]}形式的字典。 那么我们就可以对于每个用户,每篇可能点击的文章构造一个监督测试集, 比如对于用户user1,假设得到的他的召回列表{user1: [item1, item2, item3]},我们就可以得到三行数据(user1, item1), (user1, item2), (user1, item3)的形式,这就是监督测试集时候的前两列特征。

构造特征的思路是这样,我们知道每个用户的点击文章是与其历史点击的文章信息是有很大关联的,比如同一个主题,相似等等。所以特征构造这块很重要的一系列特征是要结合用户的历史点击文章信息。我们已经得到了每个用户及点击候选文章的两列的一个数据集,而我们的目的是要预测最后一次点击的文章, 比较自然的一个思路就是和其最后几次点击的文章产生关系, 这样既考虑了其历史点击文章信息, 又得离最后一次点击较近,因为新闻很大的一个特点就是注重时效性往往用户的最后一次点击会和其最后几次点击有很大的关联。 所以我们就可以对于每个候选文章, 做出与最后几次点击相关的特征如下:

候选item与最后几次点击的相似性特征(embedding内积) — 这个直接关联用户历史行为
候选item与最后几次点击的相似性特征的统计特征 — 统计特征可以减少一些波动和异常
候选item与最后几次点击文章的字数差的特征 — 可以通过字数看用户偏好
候选item与最后几次点击的文章建立的时间差特征 — 时间差特征可以看出该用户对于文章的实时性的偏好
还需要考虑一下如果使用了youtube召回的话,还可以制作用户与候选item的相似特征。

操作逻辑是这样:
首先获得用户的最后一次点击操作和用户的历史点击,这个基于我们的日志数据集做基于用户的历史行为制作特征,这个会用到用户的历史点击表,最后的召回列表,文章的信息表和embedding向量制作标签, 形成最后的监督学习数据集。

特征工程

数据和特征决定了机器学习的上限,而算法只是去尽可能逼近这个上限。数据和特征的获取将依靠特征工程的处理。特征工程主要分为三大部分:特征构建特征提取特征选择。其中特征的构建较为麻烦,需要一定具备一定的实际业务场景工作经验;特征提取和特征选择则是从原始特征中挑选出对算法模型性能提升显著有效的特征。二者之间主要区别是:特征提取强调通过特征转换的方式得到具备物理、逻辑或统计意义的特征子集;特征选择时从特征集合中挑选具备物理、逻辑或统计意义的特征子集。二者在减少特征维度、数据冗余据有很好的效果。特征提取有时可以发现更加具有意义的特征属性,特征选择的过程常常可以表示出每个特征重要性对于模型构建的重要性。简单来说,进行特征工程时首先需要进行特征选择选择那些可以提高模型性能或加快模型训练速度的特征;然后通过特征提取对数据特征进行杂糅获得较为符合日常认知的特征,之后对其再次进行特征选择;最后即使通过特征构建挖掘数据更深层次所可以体现的信息。

特征构建

特征构建需要花时间去观察调研原始数据,思考问题的潜在形式和数据结构,以此通过人工从原始数据中找出一些具备物理意义的特征。特征构建方法较为吃经验,书籍里面少由提到具体的特征构建方法,需要对问题有较深的理解和对数据较强的敏感性。较为常见的集中特征构建方法有以下几种:

  1. 时间戳型数据:对于时间戳类型数据常通过时间窗方法获取同一属性在不同时间窗下的特征体现。注意处理时间时有大量的信息是可以被舍去的,我们在呈现时间时需要保证所得到的时间数据是模型所需要的,同时需要注意时间的一个标准化,在某些情况下会因为数据的来源原因导致时区的不同,我们需要保证时间数据的标准化。
  2. 离散型数:对于值范围较小离散型变量常通过构建One-Hot独热编码将其转换。
  3. 连续型数据:对于连续性数据,常通过分区/分箱方法将一定范围内的数值划分成确定的块,之后可通过LabelEncoder或One-Hot方法将其转换为类别,同时可减少噪声对算法模型的干扰。分区时需要具备变量的领域知识,确定属性能够划分成简洁的范围时分区才具备意义,既具备当所有的数值落入一个分区时将呈现出共同的特征。需要注意的是,在实际运用中分区时需要注意分值之间是否过近,避免过拟合情况的发生。
  4. 交叉特征:将两个或更多的特征组合成具备物理意义、符合逻辑常识或统计意义的特征,当组合的特征比单个特征更好时,这将会大幅减小数据的冗余和显著提高算法模型的性能效率。

特征提取

特征选择主要目的是剔除冗余的特征、减少有效特征的个数、减少模型训练的时间、提高模型的精确度。特征选择主要是依靠统计学方法或基于机器学习模型本身的特征选择功能实现降维,这个过程中,我们主要通过修剪特征来获得更好的数据体现。特征选择算法可能会通过评分来对特征进行排序或进行选择;也有通过试错的方法来搜索特征子集;也可以通过构建辅助模型的方法。需要注意的是,特征选择是一个重复迭代的过程,每次所选择的特征都需要使用模型去验证,因为特征选择时常常会因为主观意愿的原因导致所选择的特征并不能使模型性能进一步提高,更甚者会导致模型性能的大幅下降,因为特征选择是往往需要进行多次选择——训练——评估——再选择的过程。特征选择中常用算法有以下几个:

  1. PCA主成分分析: 主要实现功能即对规模大、维度高的特征集进行映射,从而获得更少的特征,同时保证信息不丢失或尽量少丢失。原理:特征工程中,很多特征之间是具备一定的相关关系,当两个特征之间有一定相关关系时,可以反映出两个特征对于数据信息的体现具有一定的重叠。主成分分析主要是对原特征中信息提供重叠的特征进行一定的舍去,建立尽可能少的特征,从而使处理过的特征集互相之间不相关,并保证得到特征尽可能保持原有的信息。
  2. LDA线性判别分析: 简单来说就是寻找一个可以将同类数据尽可能靠近,异类数据尽可能远离的一个向量。原理:将数据集投影到维度更低的空间,使得投影后的点会形成按类别区分,使得投影后同类的点尽可能靠近,异类点尽可能远离。LDA和PCA的一个差异点就是LDA考虑到类别所提供的信息。
  3. ICA独立成分分析: 和PCA主成分分析获取特征集中不相关的特征类似,ICA独立成分分析的目标特征集使那些相互独立的属性。本质上是寻找一个使特征各个分量之间独立性最大的变换,ICA相对于PCA来说更能够刻画变量的随机统计特征,噪声的抑制效果更好。

特征选择

定义:从给定的特征集中选出相关特征子集的过程即为特征选择。对于一个给定数据集的任务,数据的特征中必有某些对算法模型来说影响不大的特征即无关特征,也有对模型来说很关键的属性即相关特征(此时相关定义为特征和算法模型训练之间的相关性),特征选择有可能将会降低模型的预测能力,因为被剔除的特征中可能或多或少的包含数据的有关信息,当抛弃这部分信息后会在一定程度上降低模型的性能,但这是必须要在计算复杂度和模型性能之间所必须要做的取舍。这个过程中我们不会构建或修改所已经拥有的特征,主要通过修建特征来达到减小噪声和冗余。不同的特征对模型的影响程度不同,我们需要自动地选择出对问题重要地一些特征,移除于问题相关性不大的特征。常用的特征选择方法主要有三大种:Filter、Wrapper、Embedding。每种方法主要去别就是机器学习模型在特征选择过程中所起到的具体用处。

  1. 过滤式(Filter): 单纯的设计一些统计量来过滤特征从而对数据集特征进行选择,不考虑后续学习器所导致的影响。

Relief(Relevent Features)方法:设计一个统计量来度量特征的重要性,统计量是一个向量,每各分量都对应一个初始特征值,而特征的重要性则是通过该子集中每个特征所对应的相关统计量分量之和来决定。
方差选择法: 即计算每个特征的方差,然后根据阈值来进行特征的选择。
卡方检验法: 即统计定性自变量对定性因变量的相关性。 X 2 = ∑ ( A − E ) 2 E X^2 = \sum{ \frac {(A-E)^2}{E}} X2=E(AE)2
皮尔逊相关系数法(Pearson Correlation): 衡量变量之间的线性关系,结果取值为[-1,+1],-1表示完全负相关,+1表示完全正相关,0则表示不线性相关(并不代表没有其他关系的存在)。Pearon系数一个明显缺陷是,只衡量了线性关系,而未考虑到非线性关系,当两个变量之间具有非线性关系时,即使两个变量具有一一对应的关系,Pearson关系也会趋于0。Pearson系数的公式为样本共变异数除以X的标准差和Y的标准差的乘积。 公式定义为: 两个连续变量(X,Y)的Pearson相关性系数(Px,y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX,σY)。系数的取值总是在-1.0到1.0之间,接近0的变量被成为无相关性,接近1或者-1被称为具有强相关性。 ρ X , Y = c o v ( X , Y ) σ X σ Y = E ( ( X − μ X ) ( Y − μ y ) ) σ X σ Y = E ( X Y ) − E ( X ) E ( Y ) E ( X 2 ) − E 2 ( X ) E ( Y 2 ) − E 2 ( Y ) \rho_{X,Y}=\frac{cov(X,Y)}{\sigma_X \sigma_Y}=\frac{E((X-\mu_X)(Y-\mu_y))}{\sigma_X\sigma_Y}=\frac{E(XY)-E(X)E(Y)}{\sqrt{E(X^2)-E^2(X)} \sqrt{E(Y^2)-E^2(Y)}} ρX,Y=σXσYcov(X,Y)=σXσYE((XμX)(Yμy))=E(X2)E2(X) E(Y2)E2(Y) E(XY)E(X)E(Y)化简处理后有 ρ X , Y = ∑ X Y − ∑ X ∑ Y N ( ∑ X 2 − ( ∑ X ) 2 N ) ( ∑ Y 2 − ( ∑ Y ) 2 N ) \rho_{X,Y}=\frac{\sum{XY-\frac{\sum{X}\sum{Y}}{N}}}{\sqrt{(\sum{X^2}-\frac{(\sum{X})^2}{N})} \sqrt{(\sum{Y^2}-\frac{(\sum{Y})^2}{N})}} ρX,Y=(X2N(X)2) (Y2N(Y)2) XYNXY
最大信息系数(MIC): 最大信息系数是根据互信息所得到的,最大信息系数不仅可以得到像Pearson系数度量变量之间的线性关系,更可以度量变量之间的非线性关系。虽然MIC可以度量变量之间的非线性关系,当当变量之间的关系接近线性相关时Pearson系数的仍然是无可替代的。原因在于:1.Pearson系数计算速度较快,这点在处理大规模数据时主要重点考虑;2.Pearson系数的取值区间是[-1,1],而MIC和距离相关系数都是[0,1],这点使得Pearson相关系数可以表征更为丰富的关系,即符号表示关系的正负,绝对值表示关系的强度。 I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g p ( x , y ) p ( x ) p ( y ) I(X;Y) = \sum_{x\in X}\sum_{y\in Y}{p(x,y)log{\frac {p(x,y)}{p(x)p(y)}}} I(X;Y)=xXyYp(x,y)logp(x)p(y)p(x,y)
斯皮尔曼相关系数(Spearman Correlation): 主要用于解决名称数据和顺序数据相关的问题,适用于两列变量,而且具有等级变量性质具有线性关系的数据。一些人把斯皮尔曼等级相关看做积差相关的特殊形式。对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,di就是秩次的差值,n就是变量中数据的个数,公式为 ρ = 1 − n ∑ d i 2 n ( n 2 − 1 ) \rho=1-\frac{n\sum{{d_i}^2}}{n(n^2-1)} ρ=1n(n21)ndi2
肯德尔(Kendall Correlation): 乏了,不抄了

  1. 包裹式(Wrapper): 将后续学习器的性能表现作为选择特征子集时所依据的评价标准,即为给定的学习器选择对其性能提升最大的特征子集。Wrapper的优缺点也很明显,因为是针对特定的学习器进行选择特定的特征集,学习器的性能也能得到更好的体现。也因为是针对特定的学习器选择特征集,需要对学习器进行多次训练来进行数据集的选择,二者将导致算力的开销增大。

递归特征消除 : 使用一个基模型来进行多轮训练,每轮训练后将消除若干权值系数的特征,再基于新的特征集进行下一轮的训练。
LVW:Las Vegas Wrapper: LVW 基于拉斯维加斯方法的框架,拉斯维加斯方法是一个典型的随机化方法,即概率算法中的一种。它具有概率算法的特点,允许算法在执行的过程中随机选择下一步,许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择要省时,因此概率算法可在很大程度上降低算法的复杂度。

  1. 嵌入式(Embedding): 在学习器训练期间由学习器自身进行特征选择,即具备特征选择功能的学习器。常用方法有以下几种:

引入正则化或惩罚项的模型: 通过添加L1、L2范数来对数据特征进行约束。引入L1范数不仅可以降低过拟合风险,而且更容易获得稀疏解。在Lasso(线性回归模型)中λ越大则稀疏性越大,被选择的特征越少;λ越小则稀疏性越小,被选择的特征越多。在SVM(支持向量机)和逻辑回归中,C越大则稀疏性越小,被选择的特征越多;C越小则稀疏性越大,被选择的特征少。
基于决策树的模型: 决策树、随机森林、Gradient Booting等基于决策树的模型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值