精华内容
下载资源
问答
  • 三、权重计算 1、上节回顾 上一节我们利用SPSS中的数据标准化方法及主成分分析,得出了“解释的总方差”和“成分矩阵”(如下图) 接下来我们将利用主成分分析得出的数据计算指标权重 2、权重计算 (1)输入数据 ...

    三、权重计算

    1、上节回顾

    上一节我们利用SPSS中的数据标准化方法及主成分分析法,得出了“解释的总方差”和“成分矩阵”(如下图)在这里插入图片描述
    接下来我们将利用主成分分析得出的数据计算指标权重

    2、权重计算

    (1)输入数据
    将主成分分析中得出的“成分矩阵”及特征根复制的Excel中:
    在这里插入图片描述
    对应主成分分析的数据为:
    在这里插入图片描述
    (2)计算线性组合中的系数
    公式为:标准化数/对应主成分特征根的平方根.。直接上图。
    在这里插入图片描述
    在这里插入图片描述
    为方便描述,线性组合中的系数使用Excel中的标号,如“工业废水排放量”对应的两个系数分别为C8和D8。

    (3)计算综合得分模型中的系数
    公式为:(第一主成分方差x100xC8+第二个主成分方差x100xD8)/(第一主成分方差+第二主成分方差)
    注:建议先将方差x100再进行计算
    如图:蓝色和紫色为分别对应相乘的线性组合中的系数及主成分方差
    在这里插入图片描述
    其中主成分方差的数据为:
    在这里插入图片描述
    (4)权重计算(归一化)
    现在到了最后一步,计算权重,也即标准化,将所有指标进行归一化处理,使其权重综合为1。
    公式为:A指标权重=A指标综合得分模型系数/五指标综合得分模型之和。
    如图:
    在这里插入图片描述
    到这里,我们就得出了最终的结果。
    注:蓝色框中的数据是相同的,笔者这样做是为了美观及防止出错。
    (5)完整示范
    为方便大家使用Excel进行权重计算,在这里将笔者自己完整的Excel表格分享给大家:
    在这里插入图片描述
    (6)权重计算出负值的问题
    如果有朋友最终计算的结果出现了负值,说明不适用SPSS中的数据标准化处理,可以改用极差法重新标准化数据。下面介绍极差法,并用Excel进行实现。

    四、极差法标准化

    1、公式
    公式为:
    在这里插入图片描述
    如何区分指标时正向还是负向?如笔者的五项指标中吗,废水、废气、固体废弃物越多对环境来说越糟糕,因此为负向指标;绿地面积,建成区绿化率值越大对环境来说越好,因此为正向指标。

    2、使用Excel实现

    由于公式直接输入比较困难,因此笔者建议先计算最小、最大值,再计算最大值与最小值的差,最后计算得出结果。
    (1)计算最小值。如图:
    在这里插入图片描述
    (2)计算最大值
    在这里插入图片描述
    (3)计算【max-min】
    在这里插入图片描述
    (4)计算最终的标准化数值
    注意:这里要区分正负向指标
    首先是正向指标,如图:
    在这里插入图片描述
    然后是负向指标:
    在这里插入图片描述
    (5)0值的处理
    最终计算的可能出现0值,这时候为每一个0值加上0.01即可(如下图)。
    (6)完整示范
    在这里插入图片描述
    到此,极差法标注化处理就结束了。前面利用SPSS进行标准化得出权重为负值的朋友可以用极差法对数据进行重新标准化,再重新利用SPSS进行主成分分析,然后计算权重。

    下一节,我们将介绍耦合度及耦合协调度的计算方法,并使用Excel进行实现,实际计算出所有数值。

    展开全文
  • 变异系数是直接利用各项指标所包含的信息,通过计算得到指标的权重。是一种客观赋权的方法。此方法的基本做法是:在评价指标体系中,指标取值差异越大的指标,也就是越难以实现的指标,这样的指标更难反映被评价...

    变异系数法是直接利用各项指标所包含的信息,通过计算得到指标的权重。是一种客观赋权的方法。此方法的基本做法是:在评价指标体系中,指标取值差异越大的指标,也就是越难以实现的指标,这样的指标更难反映被评价单位的差距。
    由于评价指标体系中的各项指标的量纲不同,不宜直接比较其差别程度。为了消除各项评价指标的量纲不同的影响,需要用各项指标的变异系数来衡量各项指标取值的差异程度。各项指标的变异系数公式如下:

    这里写图片描述

    这里写图片描述

    算法步骤总结:
    1、先计算每个指标的所有平均值,标准差
    2、然后计算每个指标的变异系数。
    3、然后计算每个指标的权重。
    4、然后计算每个部落的总分。
    5、然后对总分进行max-min归一化。
    6、然后将总分值映射成0-100之间的分数作为部落的热度值。
    7、然后对所有热度值从大到小排序。

    变异系数确定权重源代码实现:

    # -*- encoding=utf-8 -*-
    
    import pandas as pd
    import numpy as np
    
    
    # 自定义归一化函数
    
    def autoNorm(data):
        """
        :param data: 列表
        :return: 归一化列表
        """
        arr = np.asarray(data)
        norm_list=[]
        for x in arr:
            x = round(float(x - np.min(arr)) / ((np.max(arr) - np.min(arr))+0.001),4)
            norm_list.append(x)
    
        return norm_list
    
    
    
    # 自定义热度值计算函数
    
    def get_hot_value(context_train_data):
    
        """
        :param context_train_data:数据框
        :return: 热度值分数
        """
    
    
        #  求相关列均值与标准差
    
        context_train_mean = context_train_data.mean(axis=0)
    
        context_train_std = context_train_data.std(ddof=0)
    
        #  求变异系数
    
        context_train_cof_var = context_train_std/context_train_mean
    
        #  对变异系数求和
    
        sum_context_train_cof_var = context_train_cof_var.sum()
    
        #  得出权重
    
        context_train_wi = context_train_cof_var/sum_context_train_cof_var
    
        #  将权重转换为矩阵
    
        cof_var = np.mat(context_train_wi)
    
        #  将数据框转换为矩阵
        context_train_data = np.mat(context_train_data)
    
        #  权重跟自变量相乘
        last_hot_matrix = context_train_data * cof_var.T
        last_hot_matrix = pd.DataFrame(last_hot_matrix.T)
    
        #  累加求和得到总分
        last_hot_score =list(last_hot_matrix.apply(sum))
    
    
        #  max-min 归一化
    
        last_hot_score_autoNorm=autoNorm(last_hot_score)
    
    
        #  部落的热度值映射成分数(0-100分)
    
        last_hot_score_result=[i*100 for i in last_hot_score_autoNorm]
    
    
    
        return last_hot_score_result
    
    
    
    
    
    
    
    
    if __name__ == '__main__':
    
        # 读取数据
        # context_train_data=pd.DataFrame(np.arange(24).reshape(4,6),columns=['x1','x2','x3','x4','x5','x6'])
    
    
        data=pd.read_excel('C:\\Users\\xiaohu\\Desktop\\文本挖掘\\部落的热度算法\\data.xlsx')
    
        # 拿出所有自变量数据(不包含部落id,部落名称)
    
        context_train_data=data.iloc[:,2:16]
    
        print(context_train_data)
    
        # 调用热度值计算函数
        last_hot_score_result =get_hot_value(context_train_data)
    
        # 增加一列部落名
    
        context_train_data['tribe_name']=data['tribe_name']
    
    
        # 增加一列热度值
        context_train_data['tribe_hot_value']=last_hot_score_result
    
        # 然后对数据框按热度值从大到小排序
    
        result=context_train_data.sort_values(by = 'tribe_hot_value',axis = 0,ascending = False)
    
        result['rank']=range(1,len(result)+1)
    
        print(result)
    
    
        # 输出excel
    
        # 写出csv数据
        result.to_csv('C:\\Users\\xiaohu\\Desktop\\文本挖掘\\部落的热度算法\\result.csv', index=False)
    
    
    
    
    
    
    
    
    
    
    展开全文
  • Python熵权确定权重

    万次阅读 2018-07-26 20:34:17
    详细介绍及计算公式可参考文献[1]。 主要步骤包括(1)原始数据矩阵进行标准化(2)定义熵(3)定义熵权。具体步骤也可参考https://blog.csdn.net/wangh0802/article/details/53981356。这里不再赘述。这里通过Pyth...

    熵权法赋权是一种客观赋权方法, 在一些评价中, 通过对熵的计算确定权重, 就是根据各项评价指标值的差异程度, 确定各评价指标的权重。详细介绍及计算公式可参考文献[1]。

    主要步骤包括(1)原始数据矩阵进行标准化(2)定义熵(3)定义熵权。具体步骤也可参考https://blog.csdn.net/wangh0802/article/details/53981356。这里不再赘述。这里通过Python实现计算步骤。

    借用上面博客中的数据,下表是对各个科室指标考核后的评分结果。Xi为指标,ABCD..K为科室。

    科室 X1 X2 X3 X4 X5 X6 X7 X8 X9
    A 100 90 100 84 90 100 100 100 100
    B 100 100 78.6 100 90 100 100 100 100
    C 75 100 85.7 100 90 100 100 100 100
    D 100 100 78.6 100 90 100 94.4 100 100
    E 100 90 100 100 100 90 100 100 80
    F 100 100 100 100 90 100 100 85.7 100
    G 100 100 78.6 100 90 100 55.6 100 100
    H 87.5 100 85.7 100 100 100 100 100 100
    I 100 100 92.9 100 80 100 100 100 100
    J 100 90 100 100 100 100 100 100 100
    K 100 100 92.9 100 90 100 100 100 100

    将上述数据保存到Excel表格中,并用xlrd读取。

    Python程序如下

    import numpy as np
    import xlrd
    
    #读数据并求熵
    path=u'K:\\选指标的.xlsx'
    hn,nc=1,1
    #hn为表头行数,nc为表头列数
    sheetname=u'Sheet3'
    def readexcel(hn,nc):
        data = xlrd.open_workbook(path)
        table = data.sheet_by_name(sheetname)
        nrows = table.nrows
        data=[]
        for i in range(hn,nrows):
            data.append(table.row_values(i)[nc:])
        return np.array(data)
    def entropy(data0):
        #返回每个样本的指数
        #样本数,指标个数
        n,m=np.shape(data0)
        #一行一个样本,一列一个指标
        #下面是归一化
        maxium=np.max(data0,axis=0)
        minium=np.min(data0,axis=0)
        data= (data0-minium)*1.0/(maxium-minium)
        ##计算第j项指标,第i个样本占该指标的比重
        sumzb=np.sum(data,axis=0)
        data=data/sumzb
        #对ln0处理
        a=data*1.0
        a[np.where(data==0)]=0.0001
    #    #计算每个指标的熵
        e=(-1.0/np.log(n))*np.sum(data*np.log(a),axis=0)
    #    #计算权重
        w=(1-e)/np.sum(1-e)
        recodes=np.sum(data0*w,axis=1)
        return recodes
    data=readexcel(hn,nc)
    grades=entropy(data)

    计算的结果为:

    In[32]:grades
    Out[32]: 
    array([95.7069621 , 93.14062354, 93.17273781, 92.77037549, 95.84064938,
           98.01005572, 90.20508545, 95.17203466, 95.96929203, 97.80841298,
           97.021269  ])

    上面的程序计算得分时用了标准化前的值×权重,这对于原始评分量纲相同时没有什么问题。

    按照论文上的公式,计算得分时应该用标准化后的值×权重,这对于原始数据量纲不同时应该这样做,因此按照论文的公式计算的程序如下:

    import numpy as np
    import xlrd
    
    #读数据并求熵
    path=u'K:\\选指标的.xlsx'
    hn,nc=1,1
    #hn为表头行数,nc为表头列数
    sheetname=u'Sheet3'
    def readexcel(hn,nc):
        data = xlrd.open_workbook(path)
        table = data.sheet_by_name(sheetname)
        nrows = table.nrows
        data=[]
        for i in range(hn,nrows):
            data.append(table.row_values(i)[nc:])
        return np.array(data)
    def entropy(data0):
        #返回每个样本的指数
        #样本数,指标个数
        n,m=np.shape(data0)
        #一行一个样本,一列一个指标
        #下面是归一化
        maxium=np.max(data0,axis=0)
        minium=np.min(data0,axis=0)
        data= (data0-minium)*1.0/(maxium-minium)
        ##计算第j项指标,第i个样本占该指标的比重
        sumzb=np.sum(data,axis=0)
        data=data/sumzb
        #对ln0处理
        a=data*1.0
        a[np.where(data==0)]=0.0001
    #    #计算每个指标的熵
        e=(-1.0/np.log(n))*np.sum(data*np.log(a),axis=0)
    #    #计算权重
        w=(1-e)/np.sum(1-e)
        recodes=np.sum(data*w,axis=1)
        return recodes
    data=readexcel(hn,nc)
    grades=entropy(data)

    结果如下:

    In[34]:grades
    Out[34]: 
    array([0.08767219, 0.07639727, 0.08342572, 0.07555273, 0.08920511,
           0.11506703, 0.06970125, 0.09550656, 0.09852824, 0.10232353,
           0.10662037])

    完。

    参考文献:

    [1] 倪九派, 李萍, 魏朝富,等. 基于AHP和熵权法赋权的区域土地开发整理潜力评价[J]. 农业工程学报, 2009, 25(5):202-209.

     

    展开全文
  • 论文研究-评测指标权重确定的结构熵...形成"典型排序'',对``典型排序''按照给定的熵决策公式进行熵值计算、"盲度''分析,并对可能产生潜在的偏差数据统计处理."结构熵权''为确定测评指标体系的权重提供了一种新的方法.
  • 熵权中的熵值计算公式如图所示: 比如说某个评价的指标完全一样,1,1,1,1,1,1 那么m=6,p1到p6的概率均等于1/6;这个时候的熵值是最大的;所以在计算指标权重时,用这种方法反而是数据越小越混乱;权重越大;...

    熵权法中的熵值计算公式如图所示:

    比如说某个评价的指标完全一样,1,1,1,1,1,1

    那么m=6,p1到p6的概率均等于1/6;这个时候的熵值是最大的;所以在计算指标权重时,用这种方法反而是数据越小越混乱;权重越大;所以计算权重时都需要将1-ent值;这里的本质是已经将类别分好的,这里的数值代表属于该类别的样本个数;

    而我在决策树算法中看到的熵值,

    m=2,p1=1(值为1的是一类);p2=0,得到的熵值最小为0;数据完全有序;

    熵值越大,数据越混乱越无序的结论没有错;当初的疑问是一个指标数据完全一样时,权值肯定为0,那其熵值肯定也为0,数据越乱必然熵值越高,权重也越高;但根据该公式的结论是熵值越大越有序,熵值越小越无序,权重越高;完全混乱了;

    本质在于计算的p值方法不同;一种按类别计算的概率(决策树),我根据指标的值不同进行分类,然后计算概率;另一种是用每行都是一个类别,而每列对应的值是属于该类别的数量;

     

    熵权法有一个弊端:如果某个评价指标全为一样的,会将所有数据置0,那么根据如下公式:

    那么这个评价指标的所有信息熵都为0,那么数据就无序到了极致;其实这种情况就与本意相反;

    个人的处理意见是如果这一列的原始数据全是相同的,如果不为0的话,就不用进行标准化,直接进行信息熵的计算,就会得出信息熵为1,最终权重为0 ,符合实际情况;如果全为0,就加1,重复前面的;
    或者从根本上来说直接删除数据完全一样的列,因为该列不会有任何价值

    展开全文
  • 基于AHP与FAHP确定因素权重比较探讨,甘海龙,杨宝贵,通过比较层次分析与模糊层次分析的标度、计算公式及其确定的因素权重,以探讨层次分析与模糊层次分析的局限性及适用范围
  • 常用有排队打分、体操积分、专家评分、相对比较、连环比率,依次解释。 一、排队打分 将指标体系中各指标的实际值按照优劣排序。正指标(数值越大结果越好)按照从大到小排序,复指标(数值越大结果越...
  • 为了填补国内空白,基于美国学者Hosking1990年提出的线性矩(L-moment),专门就线性矩在P-Ⅲ分布下参数估计的算法,与传统参数估计方法在统计性能方面的差异进行介绍与分析计算,提出了具有历史洪水时该计算公式....
  • 熵权

    千次阅读 2021-02-03 21:41:58
    熵权计算熵值的公式是由信息学家香农提出 而熵权是统计学领域,与信息学领域对熵值的解释有所不同。简言之,在统计学领域中,当数据越分散时,熵值越小,可认为该数据包含信息越多,因此权重越大,这也是熵权...
  • 模型包括在大约500kHz以下频率范围先用二维时变场的有限元法计算10多种常用线规的内阻抗作为样本,然后通过人工神经网络学习形成权重系数,以备实际变压器暂态频域分析使用;在大约500kHz以上频率范围...
  • 针对属性权重信息不完全未知的区间直觉梯形模糊数多属性多方案(MADM)决策问题,笔者定义了区间直觉模糊数的距离公式、灰关联系数,给出了权重信息不完全情况下属性权重计算方法,并通过数学软件计算得到各属性的权重,...
  • 以某立井井壁设计为工程背景,首先利用理论计算公式确定井壁厚度选择区间,再利用层次分析将此问题分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,得出...
  • 数学建模 TOPSIS

    千次阅读 2020-01-22 18:19:50
    构造计算评分的公式:(x-min)/(max-min) \2. 统一指标类型 转化为极大型 指标正向化 极小型指标转换公式:max-x 中间型指标 区间型指标: \3. 正向化矩阵标准化 \4. 计算得分并归一化:x-min/(max-x)+(x-min) \...
  • 等保2.0.测评项控制点得分计算

    千次阅读 2020-07-15 14:00:40
    文章目录前言测评项控制点得分计算 ...根据测评项权重,以加权平均合并同一安全控制点下的所有测评项的符合程度得分,并按照控制点得分计算公式得到各安全控制点的10分制得分。 控制点得分=∑k=1n测评项的多对象平均
  • 移动平均   移动平均,它的思想是根据时间序列资料...  简单移动平均各个元素的权重相等,计算公式如下: Ft=At−1+At−2+⋯At−nn{F_t} = \frac{{{A_{{\rm{t}} - 1}} + {A_{{\rm{t}} - 2}} + \cdots {A_{{\r...
  • 结果表明:纬度分区和反距离权重插值两种方法所建立的太阳总辐射量估算公式的模拟精度总体差别不大,但采用纬度分区法所得的经验系数,在计算太阳辐射年总量时与实际观测值更为接近,因此建议采用纬度分区法计算河北...
  • 首先来一个反向传播算法的定义(转自维基百科):反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降)结合使用的,用来训练人工神经网络的常见方法。...
  • 为避免单一赋权带来的误差,在研究常用的2种确定因素因子权重方法——特尔斐与熵权的基础上,提出了一种基于组合赋权的土地资源定级因素因子权值的确定方法。该方法将特尔斐与熵权结合,首先分别使用特尔斐...
  • 为了研究哑光和半光两种光泽纸张的印刷样品对中小色差评价的影响, 分别围绕CIE 5个基本颜色中心区域, 对两种纸张...采用对kL进行优化后的计算结果表明, 随着光泽度的增加, 明度的影响权重在色差计算中有增加的趋势。
  • 我们之前在学习线性分类器的时候,使用Loss函数以及梯度下降来更新权重。那么对于神经网络,我们该如何计算每层神经元的权重呢? 对每层W直接求导(愚蠢的方法) 如上公式所示,Loss函数最终是能被表达成由各层W...
  • 但有些方法对权重的确定主观性较大或计算过程过于复杂。介绍了突变理论用于多准则决策问题的基本思想和步骤,该不需对评价指标赋以权重。它只考虑指标的相对重要性。避免了直接使用难于确定且主观性较大的“权重”...
  • 简单的移动平均的计算公式如下:  Ft=(At-1+At-2+At-3+…+At-n)/n 加权移动平均 加权移动平均给固定跨越期限内的每个变量值以不同的权重。其原理是:历史各期产品需求的数据信息对预测未来期内的需求量的...
  • 回顾logistics回归的公式,如下所示: 考虑单个样本的情况: ...假设一个样本只有两个特征x1,x2;那么对应的权重参数只有两个参数w1,w2;...也就是一张图片,只由x1...利用梯度下降,迭代公式如下所示: ...
  • 灰色关联分析

    万次阅读 多人点赞 2017-09-04 15:44:57
    与灰色预测模型一样,比赛不能优先使用,灰色关联往往可以与层次分析结合使用。层次分析用在确定权重上面 【1】确定比较对象(评价对象)(就是数据,...这是一个比较复杂的公式,给出的代码可以直接运行出来,可以先不
  • WEIGHTEDCOV 返回加权协方差的对称矩阵 C,该矩阵根据输入 T×N 矩阵 Y 计算,该矩阵 Y 的行是观察值,列是变量,以及输入 T×1 的观察值权重向量 w。 如果观察结果并非完全相同并且需要根据某些理论假设或知识进行...
  • 1 梯度检验权重的更新梯度是否正确决定着函数是否想着正确的方向迭代,在UFLDL中我们提到过,计算时梯度公式如果计算错误是不容被察觉的,我们需要比较分析得到梯度与数值得到的梯度是否相似,下面是一些技巧:...
  • 嗯,这次讲一讲熵权,一种通过样本数据确定评价指标权重的方法。 熵权 之前我们提到了TOPSIS方法,用来处理有数据的评价类模型。TOPSIS方法还蛮简单的,大概就三步。 将原始数据矩阵正向化。 也就是将那些极小...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

权重法计算公式