zoukankan      html  css  js  c++  java
  • 帕累托分析

    '''
    【课程1.5】  帕累托分析
    
    帕累托分析(贡献度分析) → 帕累托法则:20/80定律
    
    “原因和结果、投入和产出、努力和报酬之间本来存在着无法解释的不平衡。一般来说,投入和努力可以分为两种不同的类型:
    多数,它们只能造成少许的影响;少数,它们造成主要的、重大的影响。”
    → 一个公司,80%利润来自于20%的畅销产品,而其他80%的产品只产生了20%的利润
    
    例如:
    ** 世界上大约80%的资源是由世界上15%的人口所耗尽的
    ** 世界财富的80%为25%的人所拥有;在一个国家的医疗体系中
    ** 20%的人口与20%的疾病,会消耗80%的医疗资源。
    
    一个思路:通过二八原则,去寻找关键的那20%决定性因素!
    
    '''
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    % matplotlib inline
    # 帕累托分布分析 
    
    data = pd.Series(np.random.randn(10)*1200+3000,
                    index = list('ABCDEFGHIJ'))
    print(data)
    print('------')
    # 创建数据,10个品类产品的销售额
    
    data.sort_values(ascending=False, inplace= True)
    # 由大到小排列
    
    plt.figure(figsize = (10,4))
    data.plot(kind = 'bar', color = 'g', alpha = 0.5, width = 0.7)  
    plt.ylabel('营收_元')
    # 创建营收柱状图
    
    p = data.cumsum()/data.sum()  # 创建累计占比,Series
    key = p[p>0.8].index[0]  
    key_num = data.index.tolist().index(key) 
    print('超过80%累计占比的节点值索引为:' ,key)
    print('超过80%累计占比的节点值索引位置为:' ,key_num)
    print('------')
    # 找到累计占比超过80%时候的index
    # 找到key所对应的索引位置
    
    p.plot(style = '--ko', secondary_y=True)  # secondary_y → y副坐标轴
    plt.axvline(key_num,hold=None,color='r',linestyle="--",alpha=0.8)  
    plt.text(key_num+0.2,p[key],'累计占比为:%.3f%%' % (p[key]*100), color = 'r')  # 累计占比超过80%的节点
    plt.ylabel('营收_比例')
    # 绘制营收累计占比曲线
    
    key_product = data.loc[:key]
    print('核心产品为:')
    print(key_product)
    # 输出决定性因素产品

      输出:

    A    4377.396859
    B    4646.306400
    C    5046.403470
    D     999.850611
    E    2408.016058
    F    4318.273353
    G    3893.589001
    H    2486.025654
    I    2176.618725
    J    3589.327506
    dtype: float64
    ------
    超过80%累计占比的节点值索引为: H
    超过80%累计占比的节点值索引位置为: 6
    ------
    核心产品为:
    C    5046.403470
    B    4646.306400
    A    4377.396859
    F    4318.273353
    G    3893.589001
    J    3589.327506
    H    2486.025654
    dtype: float64

  • 相关阅读:
    Linux 查看内存状态
    Linux sar工具安装使用
    DNS ARP地址解析原理
    TCP/UDP 端口
    TCP/IP 传输原理
    Window vagrant 安装部署【转】
    Window7下vagrant的部署
    Ubuntu下访问SSH
    使用 Vagrant 打造跨平台开发环境
    Vagrant入门[转]
  • 原文地址:https://www.cnblogs.com/654321cc/p/9589228.html
Copyright © 2011-2022 走看看