逻辑回归在目标用户挖掘方面的应用

1 评论 4265 浏览 14 收藏 10 分钟

编辑导读:企业为了更精准地定位用户,通常会开展自己的用户洞察项目。既包括分析现有用户特征,也包括寻找符合目标特征的用户。更进一步,想要针对用户进行精细化运营,则可以用逻辑回归算法。本文对此进行了五个方面的分析,希望对你有帮助。

随着用户数据的丰富,越来越多的公司开始开展自己的用户洞察项目。所谓用户洞察,其输出主要是两种,其一是现有用户的画像:通俗的讲就是通过现有用户群去分析自己的目标用户特征;其二是目标用户的挖掘:以用户画像为标准,去寻找符合目标特征的用户。

而这里的目标落实到业务层面,其实可以是正面的也可以是负面的。正面的如注册目标、活跃目标、下单目标、复购目标等,毫无疑问,找到这些意向的用户,能帮助我们提升业绩;而负面的流失目标、沉睡目标、投诉目标,也自有其价值,我们预先知道可能产生这类行为的用户,就能未雨绸缪提前做好应对措施。

但是如果仅仅知道用户是否是我们的目标用户还不够,我们还需要知道其意向度。比如同样是下单目标用户:60%的下单可能和90%的下单可能,对我们的价值肯定是不一样的。从精细化运营考虑,这两个用户有必要采用不同的运营策略。

而要想在给用户进行分类的同时,又想知道他属于某个类的置信度,那逻辑回归算法能较好的满足我们的需求。

逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。

这次我们以挖掘某出行类产品的用户下单意向为需求,来介绍逻辑回归算法的实际应用。

一、需求背景

基于现有用户的下单情况,来预测新用户的下单的可能性。

二、特征圈定

首先我们要根据经验圈定出可能对用户下单产生影响的特征。

我们可以将相关特征分为通用特征和业务特征。通用特征即无论分析何种场景都可以参考的特征,业务特征指仅适用于具体分析场景的特征。

因为此次分析的场景是:分析用户租赁汽车类出行工具的可能性,其相关特征可以从如下几方面考虑。

通用特征:

  • 性别
  • 年龄
  • 所在地
  • 经济水平

业务特征:

对于汽车租赁类产品,用户租赁的目的一是日常上下班代步,二是节假日出行。

那么基于上下班代步需求,他的业务特征可以是:

  • 公司——家的通勤距离
  • 非驾车出行时的通勤时长

而节假日出行,可提炼的特征:

  • 出行频次
  • 出行距离

除此之外,还有一种特征我们也需要考虑:APP用户行为。

三、特征数据获得

“巧妇难为无米之炊”,要想做数据挖掘前提必然是有足够的数据源,而数据的获得可以分为自有和外采两类。

对于大部分的通用特征,我们往往通过注册、身份认证等渠道可以让用户主动给提供。而经济水平特征的获得可以通过短信分析,若用户未授权的短信权限的话,也可以通过所居住小区的平均房价预估用户经济水平。用户小区通过夜间GPS定位判断,房价则可以通过爬虫获得。

业务特征中的APP用户行为,可以通过APP埋点获得,用户的访问路径:注册-登录-首页-车辆列表页-车辆详情页-预订页-支付页等等。而通勤距离时间、节假日出行这些数据,可以通过向第三方采购。移动联通这种通讯公司往往可以通过信号基站获得用户的这类数据。

四、建立基模

我们圈定了凭经验推测的特征数据后,就可以进行建模了。上述的特征虽说是我们全凭经验所得,并不一定都会影响用户下单。即使有所关联,其相关程度也会分个三六九等,而且可能特征与特征之间也会有一定的相关性,所有这些问题,我们后续都需要进行相应处理。

但是这些并不影响,我们先用所有特征构建一个基础模型,得到最原始的拟合情况,作为我们后续不断调整的一个参照组。

五、特征工程

1. 数据标准化

很多算法对特征的数量级都是敏感的,逻辑回归也不例外。因此,我们最好将数据集中的特征转换成相同的量纲,从而消除不同量纲对算法造成的负面影响,我们将这个过程称为数据标准化。

实际上,即使原本数据的量纲已经是一样的了,多一步标准化也不会产生负面影响。

在scikit-learn中,常用的标准化方式为:

  • 均值标准差标准化(StandardScaler)
  • 最小最大值标准化(MinMaxScaler)

2. 去除多重共线性

在多元线性回归中,自变量与应变量应该要存在线性关系,但是如果自变量之间存在线性关系,那么这种情况我们就称之为多重共线性。多重共线性会造成权重的不稳定性,甚至会出现拟合后的权重与相关系数呈现相反的结果。

不过多重共线性并不会影响拟合优度,如果我们仅追求模型的拟合优度,而不考虑权重系数的大小,则可以不处理多重共线性。

我们一般使用方差膨胀系数(VIF)来检测多元线性回归中的多重共线性。如果变量之间存在多重共线性,则得到的VIF值就会较高,当VIF值大于10时,就意味着存在严重的多重共线性。

VIF的计算我们可以直接调用python的statsmodels.stats.outliers_influence 包里的variance_inflationfactor方法。

3. RFECV特征选择法

在建立模型时,特征并非越多越好,有些特征可能对模型质量没有什么改善,我们可以直接删除这类特征,所以特征选择是建模非常重要的一个环节。

特征选择的方法很多,这次我们介绍RFECV方法。

RFECV分成两个部分:

  1. RFE:递归特征消除,用来对特征进行重要性评级
  2. CV:交叉验证,在特征评级后,通过交叉验证,获得最佳数量的特征

其具体过程如下:

RFE阶段:

  1. 初始的特征集(若之前操作有进行特征删除,则最新的特征为初始特征集)作为所有可用的特征
  2. 使用当前特征进行建模,然后计算每个特征的重要性
  3. 删除最不重要的一个(或多个特征),更新特征集
  4. 跳转到步骤2,直到完成所有的特征重要性评级

CV阶段:

  1. 根据RFE阶段确定的特征重要性,依次选择不同数量的特征
  2. 对选定的特征进行交叉验证
  3. 确定平均分最高的特征数量,完成特征选择

在上述多步清洗操作过程中,我们可以每完成一个环节,看一下新模型的拟合优度。有时候处理的步骤并非越多,拟合优度就越好。我们可以根据实际需要,选择合适拟合优度的模型,对那些未下单用户进行预估,得到其最终下单的可能性。

#专栏作家#

唐豪杰,人人都是产品经理专栏作家,微信公众号:弈呓(ID:YiYi_TANG7980),互联网运营从业

本文由 @唐豪杰 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 概念抛的漂亮,没有任何实操介绍。

    来自北京 回复