机器学习-特征衍生

来源:互联网 发布:wps当前网络受限 编辑:程序博客网 时间:2024/05/16 18:25

   特征衍生是现有的特征进行某种组合,生成新的具有含义的特征。特征衍生其 实是特征工程中很重要的一环,因为通常我们所釆集到数据的特征维度不会很大,而且直 接采集到的特征并不能完全体现数据的全部信息,需要通过已有的数据组合来发现 新的意义,新生成的特征对目标列的影响大小可以通过特征重要性评估方法来获得。

  下面结合一个例子介绍如何通过业务的视角进行特征衍生。业务视角是指通过数据挖掘工程师对数据的理解与业务场景的认识来进行特征。下面有份 数据集,,这份数据表示的是用户在电商平台上的购物行为(购物行为0表示点击但未购买1表示购买)


上表中只采样了 5个样本,这组数据一共有以下4个字段。

•用户ID:用户的唯一标识。

•产品1D:电商平台产品的唯一标识。

•购物行为:0表示点击但是未购买,1表示购买。

•日期:行为发生的日期。

通过这份数据(1〜9月的购物数据),需要解决的场景是预测接下来3个月(10〜12 月)用户会购买哪些产品。这是一个典型的机器学习算法在购物推荐场景的应用,如果我 们通过过往数据成功预测出用户接下来几个月的购物意向,就可以通过向这些用户推荐相应产品來提高成交概率。基础数据只有4个字段,真正可以用来作为特征的只有后两个(ID列没法带入计算)。机器学习雜的特点是通过高维的特征数据挖掘其中的最优 模型,所以我们需要进行一定的特征衍生,增加相应特征量,从而挖掘更有价值的特征提高算法的结果准确性。

   首先我们可以分析出,这是一个购物行为预测,只有买或不买两种,所以是一个二分类场景。其次,购物这个行为包含两个对象(购物者和商品)和—种购买关系,所以可以 从这两个对象和购买关系的角度分别去思考。在进行特征衍生的过程中,我们可以分别从 3个角度去分析:购物者、商品、购物者和商品的关系。下面就详细介绍一下如何从 这三个角度进行特征衍生

一 购物者。购物者是购买行为的发起者,在日常生活中,我们几乎每天都要进行不同次数的购物行为二每个独立的人都有自己的性格,都有自己的行为方式。在购物方面, 可能有的人很喜欢买东西,有的人不喜欢买东西,有的人喜欢点击各种商品但是不买,有 的人点了产品就一定会买等,这些行为特点都可以通过特征衍生量化表示并且带入算法去计算


   首先我们想一下如何表示一个人是否是购物狂呢,最简单的方法就是计算这个人一共买了多少商品,对这份数据就计算在过去2-9个月,每个人一共买了多少件商品,并且这些不分商品的种类,从在一段时间段内的购买量表示这个人的购买欲望有多大,如下图:


  但是,仅仅用历史购买量来衡量用户购买欲望是不准确的,假如A用户在2-9个月买了100件商品,B用户7-9个月买了90件商品,如果依据历史购买量来衡量用户购买欲望的话A是大于B的,但从实际角度去看,B在2个月内就买了90件商品,而A在7个月内才买了100件,显然B购买的欲望更大,所以在引入一个特征,购买频率:

购买频率 = 用户购买总量  / (用户最后购买时间 - 用户第一次购买时间)


  

    在历史购买量和购物频率确定了之后,我们可以继续对这两个特征优化,因为最终需要预测的是10〜12月的购物行为。假设一个用户只在3〜6月进行了购物,后来换号了,或者因为不相信网购退出了,那么他在10〜12月期间是不太可能有购物行为的。针对这况,我们可以通过添加时间序列的判断来强化已有的特征,可以按照每3个月计算一次历史昀买量和购物频率来进行特征衍生


  

   对用户的性格刻画还可以从其他的维度入手,我们可以衍生一种特征来区分这样两种,一种是“光看不买’,还有—种是“一就买”,把这个特征叫作“点击购买率'

   购买点击率 = (用户购物行为为0的次数)  / ( 用户购物行为为1的次数)


   当然,类似对购买量添加时间序列,你也可以对购买率添加时间序列


二 商品。相较于人的个性多样性,商品的属性显得较为单一。商品的特点主要可以 通过3方面来刻画,分别是产品的产品热度、季节因素和产品的消耗频率。产品的热度该怎么理解呢?产品的热度可以看作产品的受欢迎程度。比如一款产品被点击的次数很多或者被购买了很多次,那么就可以通过一个特征来表示这个产品的受欢迎度。这个指标可以通过两种方式来获得,一种是计算这个商品的总被购买量,另—种就是首先算一下全部产品的总购买量然后求平均值,通过总购买量和平均值的对比进行打标针对第二种方式的公式如下:

  

        产品热度 = 产品购买总量>平均值吗 ? 1 : 0



  产品的季节因素比较好理解,因为很多商品如衣服和水果,都是有季节限制的。比如一件商品是短袖,可能在天会卖得很好.在冬入可能就不会被购买。这里要对产品 的被购买行为加上时间序列的考虑,时间粒度根据场景自行判断。

 


 对产品的刻画,我们还需要衍生产品消耗频率这样的特征,这个特征主要是用来区分低消品和高消品.因为毎款商品都有自己的消耗频率。比方说卫生纸和手机的消耗频率就大不同,因为卫生纸用得很快。但是手机机这样的产品,用户消费的频率可能就不会像卫生纸那样频繁。

  假如一个商品被A B C三人购买,且只有A B购买了2次,C购买了一次,A购买的时间间隔是0.4个月,B购买的间隔是2.6个月,那么:

商品的二次购买率为 2 / 3

商品的消费间隔为 (0.4+2.6)/ 2 = 1.5




三 购物者和商品关系。购买者和商品之间的关系特征是最难被衍生出来的,这个特汪主要表示的是特定用户对特定产品的喜爱程度。这里举一个简单的例子,假设小美看上 了一条连衣裙,但是因为价格太贵,小美直没有下定决心要买,于是小美就每周都会点击这条连衣裙的店铺.等待店铺促销或者这条连衣裙打折出售的时候入手。这种行为其实 并不少又,我们可以通过一个特征来刻画。这个特征就是用户A对产品B的点击频率,可以统计每个月A对B的点击数量,这是一种用户和商品的对应属性特征。