首页 > 其他分享 >4.5-产品维度

4.5-产品维度

时间:2023-10-23 15:03:30浏览次数:22  
标签:4.5 ... service No 流失率 产品 internet 维度 Yes

In [ ]:

import pandas as pd
data = pd.read_csv("WA_Fn-UseC_-Telco-Customer-Churn.csv")
data.columns = ['用户ID', '性别', '是否老人', '是否有伴侣', '是否有孩子',
       '合同期限', '通话服务', '多线程', '网络服务',
       '在线安全', '在线备份', '设备安全', '技术支持',
       '流媒体电视', '流媒体电影', '合同类型', '电子账单',
       '支付方式', '月消费', '总消费', '是否流失']
data.head()
  Out[ ]:
  用户ID 性别 是否老人 是否有伴侣 是否有孩子 合同期限 通话服务 多线程 网络服务 在线安全 ... 设备安全 技术支持 流媒体电视 流媒体电影 合同类型 电子账单 支付方式 月消费 总消费 是否流失
0 7590-VHVEG Female 0 Yes No 1 No No phone service DSL No ... No No No No Month-to-month Yes Electronic check 29.85 29.85 No
1 5575-GNVDE Male 0 No No 34 Yes No DSL Yes ... Yes No No No One year No Mailed check 56.95 1889.5 No
2 3668-QPYBK Male 0 No No 2 Yes No DSL Yes ... No No No No Month-to-month Yes Mailed check 53.85 108.15 Yes
3 7795-CFOCW Male 0 No No 45 No No phone service DSL Yes ... Yes Yes No No One year No Bank transfer (automatic) 42.30 1840.75 No
4 9237-HQITU Female 0 No No 2 Yes No Fiber optic No ... No No No No Month-to-month Yes Electronic check 70.70 151.65 Yes

5 rows × 21 columns

  In [ ]:
df_churn = data[data['是否流失']=='Yes']
df_churn
  Out[ ]:
  用户ID 性别 是否老人 是否有伴侣 是否有孩子 合同期限 通话服务 多线程 网络服务 在线安全 ... 设备安全 技术支持 流媒体电视 流媒体电影 合同类型 电子账单 支付方式 月消费 总消费 是否流失
2 3668-QPYBK Male 0 No No 2 Yes No DSL Yes ... No No No No Month-to-month Yes Mailed check 53.85 108.15 Yes
4 9237-HQITU Female 0 No No 2 Yes No Fiber optic No ... No No No No Month-to-month Yes Electronic check 70.70 151.65 Yes
5 9305-CDSKC Female 0 No No 8 Yes Yes Fiber optic No ... Yes No Yes Yes Month-to-month Yes Electronic check 99.65 820.5 Yes
8 7892-POOKP Female 0 Yes No 28 Yes Yes Fiber optic No ... Yes Yes Yes Yes Month-to-month Yes Electronic check 104.80 3046.05 Yes
13 0280-XJGEX Male 0 No No 49 Yes Yes Fiber optic No ... Yes No Yes Yes Month-to-month Yes Bank transfer (automatic) 103.70 5036.3 Yes
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
7021 1699-HPSBG Male 0 No No 12 Yes No DSL No ... No Yes Yes No One year Yes Electronic check 59.80 727.8 Yes
7026 8775-CEBBJ Female 0 No No 9 Yes No DSL No ... No No No No Month-to-month Yes Bank transfer (automatic) 44.20 403.35 Yes
7032 6894-LFHLY Male 1 No No 1 Yes Yes Fiber optic No ... No No No No Month-to-month Yes Electronic check 75.75 75.75 Yes
7034 0639-TSIQW Female 0 No No 67 Yes Yes Fiber optic Yes ... Yes No Yes No Month-to-month Yes Credit card (automatic) 102.95 6886.25 Yes
7041 8361-LTMKD Male 1 Yes No 4 Yes Yes Fiber optic No ... No No No No Month-to-month Yes Mailed check 74.40 306.6 Yes

1869 rows × 21 columns

  In [ ]:
# 4.5.1 创建通用函数:计算类别数据对应条数、占总数比例、对应流失率
def eda_calculate(column,types):
    """
    计算类别数据对应条数、占总数比例、对应流失率
    param @column: str,列表
    param @types: list,类别数据
    """
    # 1.计算类别数据对应的个数
    res_list = []
    rate_list = []
    print('\n------------------------当前列标签:',column,types) 
    for t in types:
        res = len(data[data[column]==t])
        # 3.计算类别数据对应的流失率
        rate = len(df_churn[df_churn[column]==t]) / res
        res_list.append({t:res})
        rate_list.append({t:rate})
    # 2.展示各类别数据对应的个数、占总数比例
    for r in res_list:
        print("=================")
        print(r,"占总数比例",list(r.values())[0]/len(data))
    
    # 4.预览个别数据对应的流失率、前者和后者的倍数关系
    print("类别数据对应流失率")
    for rate in rate_list:
        before = list(rate.values())[0]
        index = rate_list.index(rate) + 1
        print(rate)
        if index < len(rate_list):
            after = list(rate_list[index].values())[0] 
            print(rate,'前者和后者的倍数关系',before / after)
  In [ ]:
eda_calculate(column='是否老人',types=[0,1])
   
------------------------当前列标签: 是否老人 [0, 1]
=================
{0: 5901} 占总数比例 0.8378531875621185
=================
{1: 1142} 占总数比例 0.1621468124378816
类别数据对应流失率
{0: 0.23606168446026096}
{0: 0.23606168446026096} 前者和后者的倍数关系 0.5663496715412143
{1: 0.4168126094570928}
  In [ ]:
# 4.5.2 创建通用函数:提取列标签、提取对应类别数据
columns = ['通话服务', '多线程', '网络服务',
       '在线安全', '在线备份', '设备安全', '技术支持',
       '流媒体电视', '流媒体电影']
for c in columns:
    types = data[c].drop_duplicates().tolist()
    print(types)
   
['No', 'Yes']
['No phone service', 'No', 'Yes']
['DSL', 'Fiber optic', 'No']
['No', 'Yes', 'No internet service']
['Yes', 'No', 'No internet service']
['No', 'Yes', 'No internet service']
['No', 'Yes', 'No internet service']
['No', 'Yes', 'No internet service']
['No', 'Yes', 'No internet service']
  In [ ]:
# 4.5.3 函数应用:快速计算特征指标
for c in columns:
    types = data[c].drop_duplicates().tolist()
    eda_calculate(c, types)
   
------------------------当前列标签: 通话服务 ['No', 'Yes']
=================
{'No': 682} 占总数比例 0.09683373562402385
=================
{'Yes': 6361} 占总数比例 0.9031662643759761
类别数据对应流失率
{'No': 0.24926686217008798}
{'No': 0.24926686217008798} 前者和后者的倍数关系 0.9332469159881869
{'Yes': 0.2670963684955196}

------------------------当前列标签: 多线程 ['No phone service', 'No', 'Yes']
=================
{'No phone service': 682} 占总数比例 0.09683373562402385
=================
{'No': 3390} 占总数比例 0.48132897912821243
=================
{'Yes': 2971} 占总数比例 0.42183728524776376
类别数据对应流失率
{'No phone service': 0.24926686217008798}
{'No phone service': 0.24926686217008798} 前者和后者的倍数关系 0.9953058454141323
{'No': 0.2504424778761062}
{'No': 0.2504424778761062} 前者和后者的倍数关系 0.8753701197293076
{'Yes': 0.286098956580276}

------------------------当前列标签: 网络服务 ['DSL', 'Fiber optic', 'No']
=================
{'DSL': 2421} 占总数比例 0.34374556297032516
=================
{'Fiber optic': 3096} 占总数比例 0.4395854039471816
=================
{'No': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'DSL': 0.1895910780669145}
{'DSL': 0.1895910780669145} 前者和后者的倍数关系 0.4525628201196355
{'Fiber optic': 0.4189276485788114}
{'Fiber optic': 0.4189276485788114} 前者和后者的倍数关系 5.657376917975807
{'No': 0.07404980340760157}

------------------------当前列标签: 在线安全 ['No', 'Yes', 'No internet service']
=================
{'No': 3498} 占总数比例 0.4966633536845094
=================
{'Yes': 2019} 占总数比例 0.2866676132329973
=================
{'No internet service': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'No': 0.4176672384219554}
{'No': 0.4176672384219554} 前者和后者的倍数关系 2.8585428961828065
{'Yes': 0.14611193660227836}
{'Yes': 0.14611193660227836} 前者和后者的倍数关系 1.9731576571245732
{'No internet service': 0.07404980340760157}

------------------------当前列标签: 在线备份 ['Yes', 'No', 'No internet service']
=================
{'Yes': 2429} 占总数比例 0.3448814425670879
=================
{'No': 3088} 占总数比例 0.43844952435041884
=================
{'No internet service': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'Yes': 0.21531494442157267}
{'Yes': 0.21531494442157267} 前者和后者的倍数关系 0.5392478089000945
{'No': 0.39928756476683935}
{'No': 0.39928756476683935} 前者和后者的倍数关系 5.392148883488468
{'No internet service': 0.07404980340760157}

------------------------当前列标签: 设备安全 ['No', 'Yes', 'No internet service']
=================
{'No': 3095} 占总数比例 0.43944341899758627
=================
{'Yes': 2422} 占总数比例 0.3438875479199205
=================
{'No internet service': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'No': 0.3912762520193861}
{'No': 0.3912762520193861} 前者和后者的倍数关系 1.7388460227356939
{'Yes': 0.2250206440957886}
{'Yes': 0.2250206440957886} 前者和后者的倍数关系 3.038774361859941
{'No internet service': 0.07404980340760157}

------------------------当前列标签: 技术支持 ['No', 'Yes', 'No internet service']
=================
{'No': 3473} 占总数比例 0.4931137299446259
=================
{'Yes': 2044} 占总数比例 0.2902172369728809
=================
{'No internet service': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'No': 0.4163547365390153}
{'No': 0.4163547365390153} 前者和后者的倍数关系 2.7452551015669266
{'Yes': 0.15166340508806261}
{'Yes': 0.15166340508806261} 前者和后者的倍数关系 2.0481270457025094
{'No internet service': 0.07404980340760157}

------------------------当前列标签: 流媒体电视 ['No', 'Yes', 'No internet service']
=================
{'No': 2810} 占总数比例 0.3989777083629135
=================
{'Yes': 2707} 占总数比例 0.38435325855459324
=================
{'No internet service': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'No': 0.33523131672597867}
{'No': 0.33523131672597867} 前者和后者的倍数关系 1.1148294525518727
{'Yes': 0.30070188400443293}
{'Yes': 0.30070188400443293} 前者和后者的倍数关系 4.0608059733695985
{'No internet service': 0.07404980340760157}

------------------------当前列标签: 流媒体电影 ['No', 'Yes', 'No internet service']
=================
{'No': 2785} 占总数比例 0.39542808462303
=================
{'Yes': 2732} 占总数比例 0.3879028822944768
=================
{'No internet service': 1526} 占总数比例 0.21666903308249325
类别数据对应流失率
{'No': 0.33680430879712747}
{'No': 0.33680430879712747} 前者和后者的倍数关系 1.12487698243735
{'Yes': 0.29941434846266474}
{'Yes': 0.29941434846266474} 前者和后者的倍数关系 4.043418546495809
{'No internet service': 0.07404980340760157}
  In [ ]:
# 4.5.4 数据洞察
# 高流失率的产品属性特征 (服务开通情况)
# 1. 没有明显相关性的产品服务
#    通话服务、多线程: 流失率在25号左右
#    流媒体电视、流媒体电影: 流失率在30%左右
# 2. 有明显影响的产品服务: 就是和网络相关的增值服务
#    网络服务:光纤用户的流失率41号,是DSL的2倍多
#    在线安全:没有选择这项服务的流失率41%+,是选择的用户的2.85倍
#    在线备份:没有选择这项服务的用户,流失率比选择的高1.5倍+
#    设备安全:同上
#    技术支持:没有选择这项服务的流失率41%+,是选择的用户的2.74倍

标签:4.5,...,service,No,流失率,产品,internet,维度,Yes
From: https://www.cnblogs.com/mlzxdzl/p/17782429.html

相关文章

  • 4.4-用户维度
        In [ ]:importpandasaspd In [ ]:data=pd.read_csv("WA_Fn-UseC_-Telco-Customer-Churn.csv")data.columns=['用户ID','性别','是否老人','是否有伴侣','是否有孩子','合同期......
  • LLM 新缺陷曝光,自我纠正成功率仅 1%;苹果超 95% 产品仍在中国制造丨 RTE 开发者日报 Vo
     开发者朋友们大家好:这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE (RealTimeEngagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,欢迎......
  • 向量维度
    计算机科学的观点是向量是数字的有序列表向量维度是指一个向量中包含的元素数量,也可以称为向量的长度。在数学和线性代数中,向量通常表示为一列数字,这些数字按照顺序排列。向量的维度可以是任意整数值,包括零(零向量),正整数(一维、二维、三维等),甚至更高维度。例如,以下是不同维度的向......
  • 关注华测导航经销商大会,了解精准农业爆款产品
    不知道大家有没有关注过精准农业领域?如果有,应该听说过华测导航近期即将举办2023年精准农业&数字施工全国经销商大会,可以说新农人都在关注这场盛会!据我所知,精准农业在中国市场的发展很火热,这也能理解,毕竟我国是世界上最主要的农业国家,用占世界7%的耕地解决了世界22%人口的......
  • 405-503 搞懂Kubernetes调度 (DNS ingress NodeSelector NodeAffinity)4.5-5.3
    一、Kubernetes里的DNSK8S集群默认使用CoreDNS作为DNS服务:#kubectlgetsvc-nkube-system|grepdnskube-dnsClusterIP10.96.0.10<none>53/UDP,53/TCP,9153/TCP24d测试在node-1-231安装bind-utilsyuminstall-ybind-utils解析外网域名dig@10......
  • 基于Springboot框架的优质衣产品系统-计算机毕业设计源码+LW文档
    开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9浏览器:谷歌浏览器前台用户模块涵盖了:用户登录、注册功能,包括消费者进行优质衣产品系统的登录可进行衣产品的选购等......
  • 2.产品上架后-访客从哪来
    1.产品获得访客的两个途径: 2.前期性价比更高途径和免费引流操作重点: ......
  • INFINI Labs 产品更新 | Easysearch 优化字段压缩提升写入速度,Console 优化数据迁移和
    INFINILabs产品又更新啦~。本次更新概要如下:Easysearch增强source_reuse压缩功能,并大幅提升写入速度;Console优化了数据迁移和校验功能,新增了通用的数据列表和下拉等标准组件,化繁为简,实现可复用。以下是本次更新的详细说明。INFINIEasysearchv1.6.1INFINIEasysearch是......
  • 优维产品最佳实践第12期:IT资源管理首页丰富
    背景当我们进入平台后,默认跳转至IT资源管理首页,因此该页面的优化与丰富将极大的提高平台使用者的体验和效率。优化后的首页可以更好地展示常用模型、小产品、外部系统、以及保存的所有关系查询和快速查询条件,使用户能够更快捷、方便地找到所需内容。丰富前:丰富后:功能1.关系查询和......
  • 拥抱国产信创化!思迈特与云和恩墨完成产品兼容认证
    近日,思迈特软件与云和恩墨(北京)信息技术有限公司(简称“云和恩墨“)进行了联合测试,并顺利完成产品兼容互认证。经评测,思迈特商业智能与数据分析软件 Smartbi 系列产品与云和恩墨自主研发的MogDB 企业版数据库管理系统,兼容性良好、运行稳定、性能卓越。思迈特自主研发的商业智能与数......