编辑导读:企业为了更精准地定位用户,通常会开展自己的用户洞察项目。既包括分析现有用户特征,也包括寻找符合目标特征的用户。更进一步,想要针对用户进行精细化运营,则可以用逻辑回归算法。本文对此进行了五个方面的分析,希望对你有帮助。
随着用户数据的丰富,越来越多的公司开始开展自己的用户洞察项目。所谓用户洞察,其输出主要是两种,其一是现有用户的画像:通俗的讲就是通过现有用户群去分析自己的目标用户特征;其二是目标用户的挖掘:以用户画像为标准,去寻找符合目标特征的用户。
而这里的目标落实到业务层面,其实可以是正面的也可以是负面的。正面的如注册目标、活跃目标、下单目标、复购目标等,毫无疑问,找到这些意向的用户,能帮助我们提升业绩;而负面的流失目标、沉睡目标、投诉目标,也自有其价值,我们预先知道可能产生这类行为的用户,就能未雨绸缪提前做好应对措施。
但是如果仅仅知道用户是否是我们的目标用户还不够,我们还需要知道其意向度。比如同样是下单目标用户: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分成两个部分:
- RFE:递归特征消除,用来对特征进行重要性评级
- CV:交叉验证,在特征评级后,通过交叉验证,获得最佳数量的特征
其具体过程如下:
RFE阶段:
- 初始的特征集(若之前操作有进行特征删除,则最新的特征为初始特征集)作为所有可用的特征
- 使用当前特征进行建模,然后计算每个特征的重要性
- 删除最不重要的一个(或多个特征),更新特征集
- 跳转到步骤2,直到完成所有的特征重要性评级
CV阶段:
- 根据RFE阶段确定的特征重要性,依次选择不同数量的特征
- 对选定的特征进行交叉验证
- 确定平均分最高的特征数量,完成特征选择
在上述多步清洗操作过程中,我们可以每完成一个环节,看一下新模型的拟合优度。有时候处理的步骤并非越多,拟合优度就越好。我们可以根据实际需要,选择合适拟合优度的模型,对那些未下单用户进行预估,得到其最终下单的可能性。