python计算指数函数,TGI分析

  python计算指数函数,TGI分析

  点击原文看精彩赛程!

  作者吹牛z

  来源数据不吹牛(ID:shujubuchuiniu)

  这是Python数据分析在实战中的首例。详细解释了TGI指数,并用Python代码实现了基本的TGI偏好分析。

  经常会有一些专业的数据分析报告会提到TGI指数,比如“基于某某TGI指数,我们发现部分用户偏好XX”。对于那些不熟悉TGI定义的人来说,如果你看到类似的东西,那一定是云山雾罩。这次,我们来谈谈什么是TGI指数,以及如何用案例数据实现简单的TGI偏好分析。

  网上搜索,对于TGI指数,百科解释为——TGI指数,全称目标群体指数,可以反映目标群体在特定研究范围内的强弱。

  很好,这个解释正式揭示了特长,特长中弥漫着晦涩,让人看得懂,看得懂。粗略地翻译,TGI指数是反应偏好的指标。这仍然不够清楚。我们用公式来理解一下。

  TGI指数计算公式=具有某一特征的群体在目标群体中的比例/具有相同特征的群体在整个人口中的比例*标准数100

  你更晕吗?只是头晕!不,我们在说什么?

  01 指标拆解

  在TGI计算公式中,有三个关键点需要进一步分解:某个特征、人群和目标群体。

  举个栗子的例子。假设我们想研究A公司脱发的TGI指数:

  某个特征就是我们要分析的某个行为或状态,这里是脱发(或患脱发)。

  总体来说,就是我们研究的所有对象,也就是a公司的业主。

  目标群体是我们感兴趣的群体。假设我们关注的群体是数据部门,那么目标群体就是数据部门。

  于是,公式中的分子“目标群体中具有某种特征的群体比例”可以理解为“数据部脱发比例”。假设数据部有15个人,有9个人被脱发困扰,那么数据部脱发的比例就是9/15,等于60%。

  分母“具有相同特征的群体占整体的比例”相当于“全公司患脱发的人数占公司总人数的比例”。假设公司有500人,120人脱发,比例为24%。

  因此,数据部的脱发TGI指数可以是60%/24% * 100=250。其他部门脱发TGI指数的计算逻辑是一样的,可以用本部门脱发比例/本公司脱发比例* 100。

  TGI指数大于100,意味着一些用户有更多相应的倾向或偏好。值越大,倾向和偏好越强。如果小于100,说明这类用户的关联倾向较弱(与平均值相比);等于100意味着处于平均水平。

  在刚才的例子中,我们捏造数据部门的脱发TGI指数是250,远远高于100。看来数据上的脱发风险极高,数据才是发际线的真正驱动力。

  下面我们就通过一个案例巩固一下概念上的理解,顺便和熊猫比一比。

  02 TGI实例分析

  项目背景

  BOSS扔出一个订单明细,“pcddw,我们最近要推出一个客户清单高的产品,打算先在部分城市试用。看看这个数据,哪些城市的人客户名单偏好度高,请帮我筛选出五个”。

  Pcddw迅速打开表单,查看数据的真实情况:

  订单数据包括品牌名称、买家姓名、付款时间、订单状态和地区等字段。总共有28832条数据,没有空值。

  粗略看了一下源数据,pcddw很快理清了数据需求:“领导,更高客户名单的定义是什么?”

  “就我们的产品线和历史数据来看,单笔采购大于50元的视为高阶客户”。

  确定了高客单之后,我们的目标很明确:根据高客单偏好对城市进行排序。这里的偏好可以用TGI指数来衡量。让我们再来回顾一下TGI的三个核心观点:

  特点,客户订单高,即客户单笔购买超过50元。

  目标群体是每个城市。在这里,我们可以计算客户的高阶偏好

  至于整体,很直白。所有参与计算的客户都是整体。

  解决问题的关键是计算不同城市高端旅客的数量和比例。

  单个用户打标

  第一步,我们先判断每个用户是否属于高客户人群,所以先按昵称分组,看每个用户的平均付费金额。这里用的是平均,因为有的客户买了很多次,每单金额不一样,所以是平均。

  然后,定义一个判断函数。单个用户平均支付金额大于50的,标记为“高客户名单”;否则,它是低客户列表,然后用apply函数调用它:

  至此,用户基于高低客户名单的初步标记已经完成。

  匹配城市

  单个用户和客人列表标签的数量已经固定。下一步是补充每个用户的地理字段,这可以通过一个pd.merge函数来固定。由于源数据未进行重复数据消除,我们必须先按昵称对其进行重复数据消除,否则匹配结果中会有许多重复数据:

  高客单TGI指数计算

  要计算每个城市高端客票的TGI指数,需要得到每个城市高端客票和低端客票的数量。如果用EXCEL透视表来处理,就很简单了。将省市直接拖到行的位置,将客人列表类别拖到列的位置。你可以选择任何领域,只要是统计学。

  不用慌,这套操作在Python中也很容易实现。pivot_table透视函数可以在一行中完成:

  这个结果包含了层次索引,由于篇幅限制,我们就不说了。只要知道要通过索引得到“高客单”列,就需要先索引“买家昵称”,再索引“高客单”:

  这样得到每个省市的高客单数量,再得到低客单数量进行横向整合:

  让我们看看每个城市的总人数和高客单人数的比例来完成分子“目标群体中具有某种特征的群体比例”的计算:

  在一些非常小的城市,高或低的乘客数等于1甚至没有,这些值尤其是空值会影响结果的计算。我们必须提前检查数据:

  果然,高低客名单都有空值(可以理解为0),导致总人数也有空值,TGI指数对空值的意义不大,所以我们剔除空值的行:

  然后,统计高客单人群在总人数中的比例,以基准“具有相同特征的群体在总人口中的比例”公式中的分母:

  最后一步是计算TGI指数。顺便安排一下顺序:

  结果pcddw急着第一时间向老板汇报。在按下enter键之前,他扫了一眼数据,发现了一个严重的问题:TGI指数排名靠前的城市的客户总数几乎不超过10个,这完全没有说服力。

  TGI指数可以显示偏好的强弱,但人们容易忽略具体的样本量,这一点需要特别注意。

  我该怎么办?为了加强数据整体的可靠性,pcddw决定先筛选总人数,以总人数的平均值为阈值,只保留总人数大于平均值的城市:

  经过处理,pcddw觉得这个数据合理多了。

  “报告老板,根据各个城市的TGI指数,我发现福州、珠海、北京、厦门和佛山是乘客名单偏好度最高的前5个城市!我们想尝试新的高端产品,我们只能从客户的角度优先考虑!”

  而数据源和代码github的地址是:https://github.com/seizeeveryday/DA-cases/tree/master/TGI.

  (本文由Python大本营转载,转载请联系原作者)

  精彩推荐

  早鸟票限量5折

  2019中国大数据技术大会(BDTC)又来了!豪华主席阵容与百位技术专家齐聚,15 场精选专场技术与行业论坛,超强干货+技术剖析+行业实践立体解读深入剖析行业热点技术实践。

  推荐阅读

  5必知图算法,用Python代码实现

  如何利用爬虫技术帮助孩子秒到达心仪的幼儿园(基础部分)

  我把你点的每一个“看”都当真当成喜欢了。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: