图解-使用【变异系数】赋予权重,并比较效果

图解-使用【变异系数】赋予权重,并比较效果变异系数CoefficientofVariation用于比较多组数据的离散程度比较两组量纲不同的数据的离散程度,不能用标准差,可考虑变异系数不适用场景:数据下限小于0(导致平均值等于0)变异系数权重法使用变异系数计得的权重值会随着数据的变化而变化,可认为是一种无监督学习

大家好,又见面了,我是你们的朋友全栈君。

概念

变异系数

  • Coefficient of Variation
  • 计算公式: 变 异 系 数 = 标 准 差 / 平 均 值 变异系数=标准差/平均值 =/
  • 比较 两组 量纲不同的数据 的 离散程度,不能用标准差,可考虑变异系数
    不适用场景:数据下限小于0(导致平均值近0)
    变异系数越大,离散程度越大

变异系数权重法

  • 通过变异系数来赋权
  • 计算方法: 权 重 i = 变 异 系 数 i / 全 部 变 异 系 数 的 和 权重_i=变异系数_i / 全部变异系数的和 i=i/
  • 离散程度较大的列会获得较高的权重参数
  • 使用变异系数计得的权重值会随着数据的变化而变化
  • 该方法应用场景不多,通常不建议使用
    什么场景考虑使用?没有标签 且 缺乏业务经验 时

Min-Max标准化

  • 计算方法: 新 数 据 = ( 原 数 据 − 最 小 值 ) / ( 最 大 值 − 最 小 值 ) 新数据 = ( 原数据 – 最小值 ) / ( 最大值 – 最小值 ) =()/()
  • 效果
    1、数据映射到[0,1]
    2、消除量纲差异
    3、放大差距
  • 场景:
    老师给学生评分(主观评分,如:文明分、品德分…)时,分数的区间是[0,100],即使有些学生很顽劣,也不会低于80分,结果所有学生的分数在80~100,优劣学生之间相差不到20%;使用Min-Max标准化或许可以还原出学生之间真实差距

Python代码实现+效果可视化

图解-使用【变异系数】赋予权重,并比较效果

原始数据(第1个表)

平均分 可理解为 全部特征的权重相等


5个员工平均分差别不大


员工1最弱逼,员工5最流弊,员工234相等


对平均分进行min-max标准化后,员工1的弱逼程度被放大


技术能力的变异系数最大,权重最高

MinMax标准化后的数据的平均分(第2个表)

员工4>3>2(不再相等)

对min-max标准化后的数据进行变异系数法加权(第3个表)

员工1反而变得最流弊,员工5反而变得最弱比
from pandas import DataFrame, Series
from sklearn.preprocessing import minmax_scale
from numpy import ndarray

# 原始数据
df: DataFrame = DataFrame({ 
   
    '员工编号': ['员工1', '员工2', '员工3', '员工4', '员工5'],
    '技术能力': [149, 120, 90, 60, 31],
    '管理能力': [80, 90, 100, 110, 120],
    '交际能力': [70, 90, 110, 130, 150],
})
print(df)

# 变异系数
coefficient_of_variation: Series = df.std() / df.mean()
print(coefficient_of_variation)

# 权重
weight: Series = coefficient_of_variation / sum(coefficient_of_variation)
print(weight)

# 对原始数据进行Min-Max标准化
mm: ndarray = minmax_scale(df[df.columns[1:]])
print(mm)

# Min-Max标准化后的数据与权重进行矩阵乘法,计算出总分
score: Series = mm.dot(weight)
print(score)

# 对总分进行MinMax标准化
df['MinMax标准化的总分']: Series = minmax_scale(score)
print(df['MinMax标准化的总分'])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140815.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • c语言浮点数输出格式的控制,c语言输出格式控制「建议收藏」

    c语言浮点数输出格式的控制,c语言输出格式控制「建议收藏」1.转换说明符%a(%A)浮点数、十六进制数字和p-(P-)记数法(C99)%c字符%d有符号十进制整数%f浮点数(包括float和doulbe)%e(%E)浮点数指数输出[e-(E-)记数法]%g(%G)浮点数不显无意义的零”0″%i有符号十进制整数(与%d相同)%u无符号十进制整数%o八进制整数e.g.0123%x(%X)十六进制整数0f(0F)e.g…

  • RF、GBDT、XGBoost面试级整理

    RF、GBDT、XGBoost面试级整理由于本文是基于面试整理,因此不会过多的关注公式和推导,如果希望详细了解算法内容,敬请期待后文。    RF、GBDT和XGBoost都属于集成学习(EnsembleLearning),集成学习的目的是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。  根据个体学习器的生成方式,目前的集成学习方法大致分为两大类:即个体学习器之间存在强依赖关系、必须串行生成的序列化方法

  • shufflenetv1详解

    shufflenetv1详解shufflenetv1知识的搬运工又来了论文地址:shufflenetv1论文地址ShuffleNet:AnExtremelyEfficientConvolutionalNeuralNetworkforMobileDevices。shufflenet是一篇关于降低深度学习计算量的论文,其可以运行在手机等移动设备端,发表在了CVPR2018上摘要此论文是一篇效率很高的cnn框架,可以运行在移动设备端,(例如,10-150 MFLOPs)而设计的,该结构利用分组逐点卷积(poin

  • php建站错误代码0xc0000005,0xc0000005是什么错误-0xc0000005错误代码解决方法介绍-沧浪系统…

    php建站错误代码0xc0000005,0xc0000005是什么错误-0xc0000005错误代码解决方法介绍-沧浪系统…我们的电脑在进行各种各样的操作的时候有时会出现一些我们看不懂的报错,这种不知道错在哪了的问题让人很烦恼,下面就让小编来给大家介绍一下0xc0000005错误代码解决方法介绍吧。0xc0000005错误代码介绍0xc0000005这个错误一般是以显卡驱动模块相关,或者是第三方软件而引起的系统错误。解决方法一、如果是问题出在系统模块,那就需要厂商网站下载适用系统的最新驱动。二、如果是第三方软件引起的就…

  • sql的嵌套查询_嵌套查询和嵌套结果的区别

    sql的嵌套查询_嵌套查询和嵌套结果的区别SQL连接查询和嵌套查询详解连接查询若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询,包括1、等值与非等值连接查询2、自然连接查询1、等值连接查询2、自然连接查询3、非等值连接查询4、自身连接查询5、外连接查询6、复合条件查询1、等值与非等值连接查询比较运算符主要有=、>、<、>=、<=、!=(或<>)等。下面来看一个例子:假设有一个学生数据库,其中有三张表,即学生信息表(Student)、课程表(Cours

  • 更新pip版本的命令(更新pip命令)

    使用如下指令更新pip,可能会出错pipinstall–upgradepip使用如下指令即可完美更新pippython-mpipinstall–upgradepip

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号