【综合评价方法 变异系数权重法】指标权重确定方法之变异系数权重法

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

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

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

这里写图片描述

这里写图片描述

算法步骤总结:
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)









版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135567.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月3日 下午7:00
下一篇 2022年5月3日 下午7:00


相关推荐

  • 文本分类算法的效果[通俗易懂]

    文本分类算法的效果[通俗易懂]基于统计的分类算法是主流,主要包括以下几种分类模型:相似度模型(Rocchio、K-近邻)、概率模型(贝叶斯)、线性模型(LLSF、SVM)、非线性模型(决策树、神经网络)、组合模型。对于这些分类算法,国内外很多研究者进行了客观评测(Yang,1999;Joachims,1998;He,2000;Tsay,2000;庞剑锋,2001;王灏,2003;李保利,2003;周雪忠,

    2022年6月3日
    44
  • js如何替换指定的字符串_如果字符串内容替换

    js如何替换指定的字符串_如果字符串内容替换今天在写JavaScript替换字符串时,使用str.replace(“a”,”b”)方法替换发现只会替换第一个成功匹配的字符a而使用如果想要替换全部指定字符时,需要使用str.replace(/\a/g,”b”),这里g为全局标志,可以将全部的a替换成b…

    2025年8月19日
    5
  • 简单的说下nginx和apache的区别~~~[通俗易懂]

    简单的说下nginx和apache的区别~~~[通俗易懂]浅谈nginx和apache的优缺点~~~一、分别介绍nginx和apache1.nginx2.apache二、apache相对于nginx的优缺点1.优点2.缺点总结一、分别介绍nginx和apache1.nginx什么是nginx:Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru站点开发,Nginx因为性能稳定、低系统资源消耗而闻名,近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当

    2022年5月29日
    36
  • PHP蜘蛛爬虫开发文档

    PHP蜘蛛爬虫开发文档

    2021年11月4日
    50
  • 抖音python真的那么好吗_python看抖音用户画像,摩羯天蝎居然刷得最多?

    抖音python真的那么好吗_python看抖音用户画像,摩羯天蝎居然刷得最多?python看抖音用户画像,摩羯天蝎居然刷得最多?

    2022年6月3日
    44
  • datagrip2022.01 激活码【中文破解版】

    (datagrip2022.01 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    208

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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