美文网首页达莲萌训练营数据分析
如何通过数据分析找出羊毛党

如何通过数据分析找出羊毛党

作者: 达莲萌 | 来源:发表于2019-04-03 17:03 被阅读167次

    业务背景:某单车推出了「众骑」活动,鼓励有闲暇时间的用户在早高峰期间反向骑行(也就是将车从地铁站骑回居住社区等地),希望缓解高峰期的单车供应问题。此任务的完成的计算方式是:在「高峰」时间段,于指定地铁站附近 100 米「解锁活动车辆」;骑出地铁站 500 米范围后,「锁定活动车辆」,即可完成。考虑到单车成本,车辆上并未配备 GPS 装置,「解锁车辆」和「锁定车辆」时,会收集手机上的地理位置信息作为判断依据。每完成一次任务,该用户均可以得到平台发放的红包奖励(1 - 20 元不等),以维持整个活动顺利运转。活动上线后,红包不断被发放出去,越发越多;但从消费者的角度来看,早晚高峰的单车供应并没有显著的改善

    分析思路:要找到异常用户,首先需要分析异常用户的行为特征,再利用这些特征找出所有的异常用户。结合当前业务背景,无法直接观测到异常用户,因此从正常用户的行为特征入手,先将正常用户找出来,和正常用户行为相悖的即为异常用户了


    一、观察数据找到异常用户,推测作弊手段

    1、首先结合业务背景,对正常用户的行为特征等进行推测计算

         → 根据题目中给出的信息,结合数据找出【高峰】的具体时间段

    选取任意一天,按小时查看任意事件的总次数,可以发现,只有早上7点-9点有数据,选取其他日期也一样,因此可以认定活动的时间段为早上7点-9点的两个小时,即每天只有在这两个小时内可以参与活动获得红包

    高峰时间段

     → 推测用户完成一次活动的时间,计算一个正常用户每天最多可参与多少次活动(从高峰开始到结束不间断进行众骑活动)

    1、根据任务完成的计算方式,假设用户在距离地铁站最远的极限值100米处解锁车辆,骑出地铁站500米的地方锁定车辆,即用户只骑行400米便可完成一次活动。普通单车的时速在12-20km/h,因此选取中间值16km/h的时速进行计算。那么用户骑行400m需要花费的时间为:400/16000*60=1.5min

    2、正常用户完成一次活动到下一次活动开始的闭环的步骤为:解锁(扫码/蓝牙)—骑车—锁定—走路/骑车返回地铁站,解锁和锁定车辆时间及预留出buffer时间假设为2min,400米步行时间约为6min,因此完成一次活动的时间约为5min-10min,因此每天最多可参与活动次数为:120/5或120/10=12-24次

       → 在以上推算条件下,计算一个正常用户每天最多可获得的红包金额范围

    在事件分析中,按【总体】查看【锁定活动单车】的【红包金额均值】,可以看到在这一段活动时间内,完成一次活动可以获得的红包金额平均为4.53元,因此假设一个正常用户每次完成活动均可获得5元的红包,那么一个正常用户每天最多可获得红包 24*5=120元

    用户每次完成活动获得的红包均值

    以上,在假设的各种极限条件下:

    1、一个用户按照活动要求,不间断的完成众骑活动,每天最多可完成24次众骑活动,最多可获得120元

    2、完成一次解锁活动的时间至少为5min,两次解锁活动单车的时间间隔至少为5min

    因此以上述的三个数据作为判断依据,不满足以上条件的用户即假设为异常用户


    2、根据判断依据,筛选出用户,验证是否为异常用户

    根据第一步的计算推测,按照三个维度筛选异常用户,即:

    1、每天获得的红包金额超过120元

    2、每天完成众骑活动的次数超过24次

    3、两次解锁活动单车的时间间隔小于5min

     → 筛选每天获得红包超过120元的用户,验证是否为异常用户

    1、通过分布分析,查找每天获得红包金额超过120元的用户,并将这些用户数据全部导出

    每天获得红包超过120元的用户

    2、随机抽取任意日期的几个用户观察其用户行为序列,验证是否为异常用户

                ● 在10月10日随机选择ID为309417的用户,观察行为序列可以发现:

    a、这个用户在10-31号间,有15天的时间都完成了大量的活动,最少的一天完成极限值24次,最多一天完成305次,其余日期完成数量也都远远超过极限值24次

    b、观察用户行为序列,可以看到这个用户在不到两分钟的时间内,先后在三个地铁站多次完成活动,这显然是不可能的

                 再结合以上计算可以判断,这个用户确认为异常用户

    10-31日期间用户行为统计 用户部分行为序列

                        ● 在10月15日随机选择ID为309263的用户,观察事件和行为序列可以发现,和上述用户的行为特征非常相似,判定为异常用户

    10-31日期间用户行为统计

                     ● 在10月21日随机选择ID为309275的用户,观察事件和行为序列可以发现,和上述用户的行为特征非常相似,判定为异常用户

    10-31日期间用户行为统计 用户部分行为序列

    随机抽取了三个日期的三个用户,其行为特征均满足异常用户的判断条件,随机抽取匹配率100%,因此可以认为,按照这个维度筛选的用户均为异常用户

            → 筛选每天完成众骑活动次数超过24次的用户,验证是否为异常用户

    通过分布分析,查找每天锁定活动单车次数超过24次的用户,并将这些用户数据全部导出。随机选择5个用户进行验证,验证过程同上,此处暂不详述,这5个用户均可判定为异常用户

    用户一天内锁定活动单车的次数

            → 筛选两次活动间隔小于5min的用户,验证是否为异常用户

    根据条件,建立漏斗【解锁活动单车-锁定活动单车-解锁活动单车】,窗口期为5min,找出活动间隔5min以内的用户,并将这些用户的数据全部导出。随机选择5个用户进行验证,验证过程同上,此处暂不详述,这5个用户均可判定为异常用户

    漏斗分析-两次活动间隔时间小于5min

     3、综合以上三步筛选出来的用户,整理数据

    通过筛选每天获得红包超过120元这一条件,共筛选出737个用户;

    筛选每天完成活动超过24次这一条件,共筛选出741个用户;

    筛选两次活动间隔小于5min这一条件,共筛选出746个用户;

    经过匹配对比发现通过红包金额筛选出的737个用户,均满足后两个条件;其中有9个用户没有同时满足以上三个条件,分别查看用户行为序列后,有8个用户至少同时满足两个条件,可认定均为异常用户,这一类用户均为通过作弊手段,进行大量高频作弊行为

    ID为429457的用户仅满足其中一个条件,从数据来看这个用户似乎满足正常用户的行为特征,但仔细观察其行为序列后发现这个用户行为也较为异常,将在下一部分进行详细解释

    因此,通过以上维度,共筛选出745个高频作弊的异常用户,以下列举部分用户

    筛选出异常用户后,即可将这一批用户做封号处理,虽然按照以上条件不能百分之百筛选出所有的异常用户,但已经能够筛选出大部分的异常用户,剩下很小部分的高频异常用户对活动的影响可以暂且忽略

    高频作弊异常用户列表

    4、对用户429457的行为序列进行观察分析

    该用户从红包金额和每天参与活动的次数上来看都不符合异常用户的条件

    1、参与活动次数:一共只有三天进行了活动,最多的一天23次,也在正常范围内

    用户解锁单车事件列表

    2、红包金额:红包金额最高的一天为91元,在正常的范围内

    用户每天获得红包金额

    但是当根据地铁站查看该用户的解锁单车行为时,发现该用户进行活动的三天时间,最多的一天在23个地铁站进行了解锁活动,而这23个地铁站从二环到五环外,东西南北都有,这在两个小时内显然是不可能的,因此这个用户也是异常用户

    用户参与活动的地铁站 19日当天参与活动地铁站位置图

    根据对这个用户行为的分析,我们推测:

    是否可能还存在另外一种薅羊毛的用户,他们从表面上的数据看起来是和正常用户一样,每天进行的活动次数不超过异常值,参与活动的天数也不多,但是在参与活动的时间内,活动地点跨越大量的地铁站

    因此,我们再对数据进行观察分析,找出是否存在这部分用户


     5、观察数据,找出低频作弊群体

      → 首先观察整体次数、用户数及人均次数的趋势

    1、首先通过查看【任意事件】的【总次数】可以看到,虽然中间是有波动,但整体是呈上升趋势的

    任意事件总次数

    2、再观察【任意事件】的【触发用户数】发现,在16-27号这一段时间,用户数量却翻了一倍多

    任意事件的触发用户数

    3、最后观察【人均次数】发现,在这一段时间内人均次数却是大幅下降

    任意事件的人均次数

    结合以上三个维度的数据来看,总次数在上涨,用户数在上涨,人均次数却大幅下降,那么推测可能是因为新增的用户进行了大量的低频完成活动的行为,因而导致人均次数下降

       → 为了验证以上猜想,我们通过分布分析和留存分析分别查看

    1、首先是分布分析,查看用户解锁单车的次数,可以发现从16号开始,解锁20次以下的用户数量相较前几天增加了至少50%甚至更多,尤其是3次-20次的用户,而20次以上的用户数量变化却不大

    分布分析-用户解锁单车次数

    2、其次再来看留存分析,16号至27号的用户数量较其他日期的用户几乎增长了100%,但是次日及后续几日的留存率却下降了5%左右,次日留存人数并没有增加太多

    留存分析-参与活动的用户留存情况

    因此可以确认是有大量新用户,每个账户都在正常范围内完成了活动,而这一部分的用户与之前进行高频的薅羊毛活动正好相反,这一类用户可能是一个人有多个账号,每个账号均进行低频的看似正常的活动来薅羊毛,利用账号的数量来弥补一个账号参与活动的次数少导致金额少的问题

         → 结合以上分析,总结用户特征,筛选出这部分低频用户

    根据对异常用户429457的行为及以上的分布分析,我们推测总结出低频用户共有的行为特征:

    1、参与活动的日期内,每天活动的地铁站至少3个以上

    2、仅在10月16日-27日间参与过活动

    3、参加活动的日期内,每天活动次数不超过20次

    因此我们通过分布分析,查看用户每天解锁活动单车的地铁站数量,我们可以看到:

    1、从16日开始进行活动的用户中,地铁站超过3个的用户数量相较前几日增长超过百倍,虽然2个及以下的用户量也有增长,但是数量相对来说较少,对活动的影响较小,这部分用户先暂且可以不用管

    2、将3个以上地铁站的用户导出,把这部分用户同高频用户进行交叉去重

    分布分析-用户每天解锁活动单车的地铁站数量  

          → 对筛选出的用户进行去重,随机抽取至少5个用户进行验证

    通过以上条件,共筛出用户5015个,将这5015个用户和高频的异常用户进行去重,共筛除121个用户。在剩余的4894个用户中随机抽取至少5个用户进行验证,观察是否为异常用户

                ● 随机选择ID为509976的用户,观察用户的行为数据可以发现

    a、这个用户一共只有16日一天参与了活动,且这一天一共去过10个地铁站

    b、这个用户的行为序列基本符合正常用户的行为特征,参与活动的次数不超过24次,解锁的间隔也超过5min

    活动期间解锁活动单车次数-按地铁站查看 16日用户行为序列 16日地铁站可视化位置图

                 ● 随机选择了ID为508753、507132、504698、500105、472686均符合以上特征,因此这部分用户可以判定为低频作弊的异常用户

    因此,通过以上维度,共筛选出4894个低频作弊的异常用户,以下列举部分用户

    筛选出异常用户后,也可将这一批用户做封号处理,虽然按照以上条件不能筛选出所有的用户,还有可能会误伤小部分的正常用户,但是相较于能够挽回的损失,这部分影响可以暂且忽略


     6、推测“作弊”手段

    选择随机抽取的高频用户309417和低频用户429457,按照地铁站观察其解锁活动单车的次数发现:

           → 高频用户309417

    1、这个用户在活动期间一共在24个地铁站进行过众骑活动,且基本每个地铁站只薅一次

    2、每天进行活动的地铁站不超过4个

    3、这个用户有7天,在两个小时内,穿梭在多个地铁站共完成至少超过100次活动,最多的一天10号,在四个地铁站完成305次活动

    309417解锁活动单车次数-按地铁站查看

            → 低频用户429457

    1、这个用户在活动期间一共在36个地铁站进行过众骑活动,且基本每个地铁站只薅一次

    2、每天在多个地铁站之间进行活动

    429457解锁活动单车次数-按地铁站查看  

    结合以上行为数据和车辆上并未配备GPS装置的背景,推测可能为以下几种作弊方式:

    1、多个人同时登录一个账号,两人一组配合,在一个地铁站进行薅羊毛活动,操作流程如下:

          a、 A在地铁站附近登录账号,扫码/蓝牙解锁车辆后退出登录

          b、 B在符合要求的其他地点登录账号,锁定车辆,完成一次活动,领取红包

    2、用户利用修改手机定位的软件,修改定位后完成活动领取红包,操作流程如下:

         a、随机找到一辆单车

         b、利用软件修改手机定位(地铁站附近),扫码解锁

         c、再次修改定位(500米外)

         d、锁定车辆,完成活动,领取红包

    但以上两种作弊方式对于一天完成100+次活动来说,相当消耗人力,因此推测还可能的方式为:

    3、收集大量共享单车二维码,利用模拟器及虚拟定位软件

          a、利用模拟器登录多个账号/利用多个手机登录一个账号/多个手机登录多个账号/应用双开等

          b、利用虚拟定位软件,修改手机定位,扫码解锁

          c、修改定位至500米以外,锁定单车,完成任务,领取红包


    二、判断是“团伙作战”还是“单打独斗”

    1、高频作弊群体分析

    1、作战方式

    观察已经筛选出来的高频作弊异常用户发现,这些用户的ID均为连号,如果为个人用户,连续700多个连号用户全部为异常用户实在过于巧合,推测这部分账号可能是为薅羊毛新注册的账号,再结合这些用户高度相似的行为特征及作弊机制,因此判断这部分用户为团伙作战

    2、行为模式

    a、每个账号每天再1-2个地铁站最多3-4个,进行高频次的解锁锁定活动

    b、每个地铁站仅薅一次羊毛,最多不超过两次

    c、从10号活动开始即开始参与薅羊毛活动,到31号时,有多个日期均参与过活动

    部分高频作弊用户列表


    2、低频作弊群体分析

    1、作战方式

    观察已经筛选出来的低频作弊异常用户发现,这些用户的ID之间没有太多相关,且行为特征不像高频用户一样高度一致,因此判定这部分用户是单打独斗的用户,可能是有人在论坛或其他地方发布了薅羊毛的活动及薅羊毛的办法,吸引了大量的个人用户效仿

    2、行为模式

    a、只在16-27日间有参与活动

    b、参与活动的日期,一天内在多个(至少3个以上)跨城区、相距较远的地铁站进行活动

    c、其他行为特征同正常用户一致


    三、后续处置措施(基本原则:尽量不伤害现有用户,减少公司损失,保障活动效果)

    首先分析当前活动的规则及限制,通过业务背景及前序的分析可以得知,活动的相关规则为:

    1、可以参与活动的时间范围为【每天早上7-9点】(通过业务背景结合数据可以得知)

    2、用户每天可以参与活动的次数不限(通过分布分析用户每天参与活动的次数可以得知)

    3、用户每天获得红包金额不设上限(通过分布分析用户每天获得红包金额总和可以得知)

    4、因为单车没有GPS系统,因此仅判断手机的地理位置符合条件即可算作完成一次活动

    从以上规则可以发现,这个活动的参与成本非常低,但收益却非常高,给了羊毛党可趁之机,因此针对以上低门槛,需要从前期提高活动的参与成本,在后期时调整提现周期,增加审核力度,接下来从这两个方面详细说明

            → 前期:提高活动参与成本

    1、每个账号每天最多可以参与活动5次,每天获得的红包金额不设上限

    2、降低活动红包的金额,增加小额红包的数量,减少大额红包数量

    3、提高完成一次活动的判断标准:除原有的骑出500米范围的限制外,增加时间限制,从解锁车辆到完成车辆至少6min(即大概为完成一次活动的正常时间,不会影响正常参与活动的用户)

    4、两次解锁行为至少间隔10min(基于前期数据分析制定,不影响正常用户)

    5、限制账户登录条件:一个账号同时只能在一个设备上登录,频繁登录的账户进行封禁一天处理(频繁的定义:5min内在不同设备间切换登录超过2次)

    6、将已发现的羊毛党账号永久封禁

           → 后期:调整提现周期,增加审核力度

    1、将提现时间调整为活动结束后5个工作日内,同时在提现前增加人工审核力度,根据数据,尽可能多的将异常用户找出,减少损失

    2、或者限制红包的使用途径,即不可提现,只能在平台内使用


    四、活动复盘

    简单复盘

    1、即使通过以上措施,也无法做到100%限制羊毛党的薅羊毛活动,因为单车没有GPS定位系统,因此也可能存在大量愿意花费时间占小便宜的羊毛党,在不进行真实的骑车行为下,利用上面的作弊机制进行薅羊毛。解决这个问题是否应该考虑尽量从源头上解决,比如给车辆配备GPS装置,可以极大的减少此类薅羊毛行为。另外这样的力度对于正常用户来说是否有足够吸引力,能让她们在高峰上班时间为了几元的红包参与一次活动也并不好说,可以考虑策划其他更有吸引力的活动方案

    2、低频作弊用户分析模式看起来是遵循了 → 找到1 找出模式 →  找到N ,但这里的“1”实际上属于偶然事件,正好这个用户的行为与高频作弊用户的某个行为特征类似,于是被抓出来了。正常也可以通过上文中后续的事件分析、分布分析、留存分析等去发现这一批用户

    相关文章

      网友评论

        本文标题:如何通过数据分析找出羊毛党

        本文链接:https://www.haomeiwen.com/subject/athicqtx.html