变异系数+标准差率+一种改进的Critic权重计算方法

本文介绍了一种改进的Critic权重计算方法,针对数据量纲不统一的问题,使用变异系数(CV)代替标准差表示对比强度,以中位数替代平均数减小极端值影响。通过sklearn库的VarianceThreshold进行特征选择,提高评价结果的可信度。
摘要由CSDN通过智能技术生成

一种改进的Critic权重计算方法

当进行两个或多个资料变异程度的比较时,如果度量单位与平均数相同,
可以直接利用标准差来比较。如果单位和(或)平均数不同时,比较其变异程度就不能采用标准差,而需采用标准差与平均数的比值(相对值)来比较。
变异系数又称“标准差率”,是衡量资料中各观测值变异程度的另一个统计量。
公式表示为:变异系数CV=σ(X)/μ(X)
英文为用CV(Coefficient of Variance)。

CRITIC 权重法是一种客观赋权法。其思想在于用两项指标,分别是对比强度和冲突性指标。对比强度使用标准差进行表示,如果数据标准差越大说明波动越大,权重会越高;冲突性使用相关系数进行表示,如果指标之间的相关系数值越大,说明冲突性越小,那么其权重也就越低。对于多指标多对象的综合评价问题,CRITIC 法去消除一些相关性较强的指标的影响,减少指标之间信息上的重叠,更有利于得到可信的评价结果。

'''
@author: ZLM
一般来说,数据的量纲是不统一的,这种情况之下则不能直接使用标准差来衡量不同指标
之间的对比强度。一种常规的方法是对所有数据进行归一化来消除量纲对结果的影响,
但遗憾的是,归一化方法会改变指标之间的对比强度。
因此我们采用变异系数CV=σ(X)/μ(X)来表示指标之间的对比强度,如果数据变异系数越大说明波动越大,权重会越高。但是平均数会受到极端值的影响,中位数不受随机变量极大或极小值的影响,从而在一定程度上提高了中位数对随机变量分布的代表性。
鉴于此,我们采用如下公式计算变异系数CV=σ(X)/median(X)

'''
import numpy as np
from sklearn.feature_selection import VarianceThreshold
from sklearn.datasets import load_breast_cancer,load_iris,load_wine


X,y=load_wine(return_X_y=(True))
sel = VarianceThreshold()
X=sel.fit_transform(X)

data=X

def critic_weight(data):
    data_cv= np.std(data,axis=0)/np.median(data,axis=0)   
    data_corr = np.abs(np.corrcoef(data.T))
    data_corr = sum(1 - data_corr)
    C = data_cv * data_corr
    critic_weight= C/sum(C)
    return critic_weight

W1=critic_weight(X)


def critic_weight1(data):
    data_cv= np.std(data,axis=0)/np.mean(data,axis=0)   
    data_corr = np.abs(np.corrcoef(data.T))
    data_corr = sum(1 - data_corr)
    C = data_cv * data_corr
    critic_weight= C/sum(C)
    return critic_weight

W2=critic_weight1(X)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值