🦋
Butterfly 用户手册
  • Introduction
  • 一 前言
  • 二 开始
    • 安装部署
    • 五分钟体验指南
    • 单机使用手册
    • 应用规范
      • handler specs
      • middleware specs
      • xingqiao_plugin specs
      • yiqiu_program specs
  • 三 客户端功能
    • MySQL 原生协议
    • MySQL ORM
    • Redis 原生协议
      • redis_config
      • redis_tls
    • Redis ORM
    • Redis mcpack
    • Localcache
    • Kazoo
  • 四 应用(通用服务)
    • API JSON 规范
    • 异步任务 BaiChuan(百川)
    • 任务调度 RuQi(如期)
    • 任务编排 XingQiao(星桥)
    • 配置管理 WuXing(五行)
    • 运筹决策 BaiCe(百策)
  • 五 部署运维
    • 单机容器化部署
    • 监控
    • 异常排查
      • CPU Load spike every 7 hours
    • 升级
    • 安全
    • 其他
  • 六 前端
    • butterfly_template
    • butterfly_fe
    • butterfly-admin(json2web)
      • amis
      • sso
      • pangu
    • NoahV
    • PyWebIO
  • 七 潘多拉魔盒
    • 装饰器
      • localcache_decorator
      • retry_decorator
      • custom_decorator
      • command2http_decorator
    • 算法
      • 算法-分位数
      • 算法-变异系数
    • 实用工具
      • host_util
      • shell_util
      • http_util
      • time_util
      • random_util
      • concurrent
      • jsonschema
      • blinker
      • toml
      • command_util
      • config_util
      • picobox
      • 对称加密
        • des
        • aes
      • ascii_art
        • ttable
        • chart
      • business_rules
      • python-mysql-replication
      • dict_util
    • 中间件
      • middleware_status
      • middleware_whitelist
    • test_handler.py
  • 八 最佳实践
    • 分布式架构
    • Code practice
    • Log practice
    • Daemon process
  • 附录
Powered by GitBook
On this page
  • 1 统计学解释
  • 2 实现
  • 2.1 依赖 numpy 实现
  • 2.2 简单实现
  • 3 实际应用
  1. 七 潘多拉魔盒
  2. 算法

算法-变异系数

1 统计学解释

变异系数:变异系数(coefficient of variation),又称离散系数,是一个衡量数据离散程度的、没有量纲的统计量。其值为标准差与平均值之比。

变异系数的计算公式为:

CV=标准差/均值

2 实现

2.1 依赖 numpy 实现

import numpy
def coefficient_of_variation(data):
    mean=numpy.mean(data) #计算平均值
    std=numpy.std(data,ddof=0) #计算标准差
    cv=std/mean
    return cv
data_test_1=[1,2,3,4,5,6,7]
data_test_2=[1,1,1,4,7,7,7]
print('CV_1',coefficient_of_variation(data_test_1))
print('CV_2',coefficient_of_variation(data_test_2))

结果

CV_1 0.5
CV_2 0.6943650748294136

2.2 简单实现

# Calculate the Arithmetic mean.
def mean(values):
    """
    mean

    Args:
        values: list, eg:[1,2,3,4]
    """
    if not len(values):
        return 0

    arithmetic_mean = sum(values) / float(len(values))
    return arithmetic_mean


# Function to calculate the Standard Deviation.
def standard_deviation(values):
    """
    standard_deviation

    Args:
        values: list, eg:[1,2,3,4]
    """
    if not len(values):
        return 0

    value_mean = mean(values)
    value_sum =0
    for value in values:
        value_sum +=(value-value_mean)**2;
    x = (value_sum / float(len(values))) ** 0.5
    return x


# Function to calculate the Coefficient of Variation
def coefficient_of_variation(values):
    """
    standard_deviation

    Args:
        values: list, eg:[1,2,3,4]
    """
    if not len(values):
        return 0

    value_mean=mean(values)
    coefficient_of_variation = (standard_deviation(values) / float(value_mean))
    return coefficient_of_variation

if __name__ == "__main__":
    assert coefficient_of_variation([1, 1, 1]) == 0

    values=[1,2,3,4,5,6,7]
    assert mean(values) == 4
    assert standard_deviation(values) == 2
    assert coefficient_of_variation(values) == 0.5

    values=[1,1,1,4,7,7,7]
    print coefficient_of_variation(values)

3 实际应用

变异系数通常用来比较两组量纲差异明显的数据的离散程度,例如两个粉丝数差距显著的社交媒体账号推文点赞数的离散程度。

Previous算法-分位数Next实用工具

Last updated 1 year ago