数据产品经理需要掌握最常用的逻辑回归算法
单纯理解算法还算容易,但是到实际工作中就往往理不清头绪,特征变量从哪来,又怎么选,模型的输出结果是什么,如何评价模型好坏,有了模型如何应用,模型上线之后还要做什么等等一系列问题。今天我们就以常用的逻辑回归为例,结合实际场景说说如何应用结果问题的过程。对于数据产品经理、数据建模师、数据挖掘工程师、数据分析师来说,都必须了解全部流程。
算法描述
逻辑回归(Logistic Regression)是应用非常广泛的一种分类机器学习算法,算法简单且高效、预测速度快,而且容易学习和理解。进一步说,逻辑回归是一个二分类算法,主要解决离散的两元分类【是、否】预测的问题。听得最多的线性回归是解决连续型变量预测的问题,例如已知近年的销售数据预测下季度的销售额。
对于多个分类问题,y不在[0, 1]中取值,而是有K个分类。多非类有两种情况,一是K个类别不是互斥的,比如用户会购买哪些品类,就可以为每个品类分别训练一个二元分类器。 如果K个类别是互斥的,即y=1时不能取其它值,比如预测用户的年龄段,这种情况可以利用Softmax Regression算法,是对LR的改进。
下面这张图非常清晰的描述了算法的原理,n个自变量(X1,X2,…Xn)会影响分类结果, Beta系数代表是每个变量对分类的影响程度,需要通过训练数据集做最大似然估计(所有样本的预测值和真实值一致性的概率最大)得出,Beta值越大说明该变量对结果的影响越显著,然后再用Logit函数做变型,把数值转化成[0, 1]值。
逻辑回归是有监督学习算法,首先利用训练数据集多次迭代估算出Beta参数,然后把测试数据带入下面的公式(sigmoid函数),就可以求出每个测试记录的预测值,把预测值和实际的真实进行比较,计算模型的准确率、AUC值来评价该模型能是否达到应用要求。
为什么能得到【0,1】之间的概率呢,主要是sigmoid函数的功劳,如果把上面的sigmoid函数用图像画出来就能直观看出来了 。从如下的函数图上可以看出,函数y=g(z)在z=0的时候取值为1/2,而随着z逐渐变小,函数值趋于0,z逐渐变大的同时函数值逐渐趋于1,而这正是一个概率的范围。
作为产品经理必须要理解算法原理、来龙去脉、应用场景,知道如何准备数据,基本够用了,推倒算法的过程还是交给数学专业的搞吧,下面我们通过实际例子,看看如何使用算法。
算法实例
案例描述
预测用户对18个大品类的购买偏好【1,0】,品类偏好不是互斥的,即可以同时喜欢多个,所以使用LR构建18个分类模型预测用户对每个品类的购买偏好即可。
分析变量
找到可能影响分类结果的因素 ,例如:品类浏览频次、品类购买频次、购买总金额、平均购买间隔天数、近一次购买时间、近一次浏览时间、总停留时间、家庭人口数量、地理位置。然后数据仓库中汇总计算出这些指标(这部分属于数据工程师的工作,从原始数据中抽取、汇总计算,例如数据仓库有用户购买的多条记录,但没有平均购买间隔天数这个指标),最后一列是实际的分类结果,构建成一个含有很多相关变量的大宽表作为算法的训练数据集和测试数据集,如下图所示。实际应用中为了模型更加精准需要组织更细节的变量,比如近1/2/3/7天的点击、收藏、浏览次数,以及用户这些行为和该品类全部用户行为的比例关系等等。
特征选择
特征选择是从属性集合中选择那些重要的,与分析任务相关的子集的过程。选择变量不在多,关键就行。 特征选择方法有逐步增加法(先选择一个最优的,然后逐个添加)、逐步递减法(所有属性做为候选,逐个删除)、递归特征删除法。这里使用递归删除法,通过逻辑回归算法本身就是计算特征变量的系数,系数大小也就代表了该变量的重要程度。 递归删除法是用全量特征跑出一个LR模型,根据线性模型的系数(上面说过了系数越大说明变量和分类相关性越大),删掉5-10%的弱特征,观察准确率/AUC的变化,逐步进行, 直至准确率/AUC出现大的下滑停止,这时保留下来的特征系数就是模型的输出。
模型检验
模型检验主要采用准确率和AUC两个指标。计算两个指标都需要理解几个概念,所谓的真正例就是真实类别为【是】且预测类别也为【是】,假负例(预测类别为【否】但实际为【是】)、假正例(预测类别为【真】但实际为【否】)、真负例(预测类别为【否】且实际也为【否】)。准确率是指测试集中被正确分类的比例,例如100个测试记录,有82(48 + 34)个被正确分类,即真正例和真负例的和,正确率就是82%,算法的准确率一般要高于80%,不然没法实际应用。
AUC(Area under the Curve of ROC)比较麻烦需要先画ROC曲线,AUC就是ROC曲线下方面积所占的比例,越大越好。ROC曲线X轴是假正例(FP)的累计比例,Y轴是真正例(TP)的累计比例,那么自然是,FP rate小时TP rate越大模型越好。
模型输出
模型输出,模型构建完成后输出的结果就是保留的特征变量以及其对应的系数。
模型应用
模型应用,有ID为1000的用户,他对应的特征变量为(31, 6, 138, 29, 3, 26, 38, 4),判断其是否会购买洗护这个品类。方法就是把参数带回下面的公式中,计算分类概率是0还是1,如果是1就说明用户近期会购买该品类。
迭代优化
迭代优化,模型上线后会根据运营不断的去优化,提高转化率,比如再扩充平均购买金额,最大购买金额等等字段构建新的模型,然后做A/B测试,如果的准确率和转化率都高于旧的模型则正式上线。
至此,我们就完成的逻辑回归的实际应用。
作者:百川,微信公众号:修炼大数据(studybigdata)
本文由 @百川 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自 Pexels,基于 CC0 协议