IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 综合评价体系之熵权法 -> 正文阅读

[人工智能]综合评价体系之熵权法

(一)建模目的:

? ?如何客观又合理地评价一部电影的受欢迎度呢?生活中有很多这样的场景,仅有个别人的看法,显然不能如实地反映这部电影的受欢迎度,通过抽样的方法,选取合理的指标建立评价模型,最终取得一个得分来相对评价电影的受欢迎度。

(二)熵权法的原理:

? 熵衡量着系统的混乱程度,可以拿来衡量信息的多少。指标的变异程度越小,所反映的现有信息量越少,其对应的权重也越低。也就是说,熵权法是使用指标内部所包含的信息量,来确定该指标在所有指标之中的地位。

(三)基本步骤:

?1)数据标准化处理

对原始矩阵X=x_{ij}\left ( m\times n \right )进行标准化:

?2)信息熵的计算

(1)计算第j项指标在第i年的数值占该指标比重(p_{ij}):

?(2)计算第j项指标熵值(E_{j}),当P_{ij}=0时,P_{ij}\ln P_{ij}=0,

3)权重的计算

计算第j项指标的变异系数(G_{j})和权重(W_{j}):

G_{j}=1-E_{j} ;W_{j}=\frac{G_{j}}{\sum_{j=1}^{n}G_{j}},(j=1,2,..,n)

4)计算TOPSIS中的优劣距离和综合评价得分

(1)由标准化矩阵和各指标权重可得加权标准化矩阵:Z_{ij}=W_{j}\times Y_{ij}

(2)计算正负理想解:I_{j}^{+}=max(z_{1j},z_{2j},...,z_{mj}),I_{j}^{-}=min(z_{1j},z_{2j},...,z_{mj})

(3)计算正负理想解的欧式距离:

? ? ?d_{i}^{+}=\sqrt {\sum_{j=1}^{n}(i_{j}^{+}-z_{ij})^2}, d_{i}^{-}=\sqrt{\sum_{j=1}^{n}(i_{j}^{-}-z_{ij})^2}

(4)计算综合评价值:

? ? ?c_{i}= \frac{d_{i}^{-}}{d_{i}^{+}+d_{i}^{-}}

(三) 具体实际应用

(1)学习正向指标和负向指标在实际场合的应用。一般来说,从数学的角度,通过相关矩阵正相关关系为正向指标,负相关关系为负向指标,当然并不是绝对的;从实际生活的角度,一个变量的增大导致最终因变量的增大,如在现实生活中,我们通常认为,一个学生的期末成绩通常与作业的完成质量,期中成绩,课堂的出勤率及参与度有正相关,与缺勤率呈负相关。实际应用中,应具体结合数据和实际意义来确定正向指标和负向指标。?

(2)理解字符串的筛选

? ?i == str(f'X{j}负')

import pandas as pd
import numpy as np
data=pd.read_excel("data.xlsx", sheet_name=0,header=0,index_col=0) #读取数据
m,n=data.shape  #获取行数m和列数n
#熵权法计算
def Y_ij(data1):   #矩阵标准化(min-max标准化)
    for i in data1.columns:
       for j in range(n+1):
           if i == str(f'X{j}负'):  #负向指标
               data1[i]=(np.max(data1[i])-data1[i])/(np.max(data1[i])-np.min(data1[i]))
           else:   #正向指标
               data1[i]=(data1[i]-np.min(data1[i]))/(np.max(data1[i])-np.min(data1[i]))
    return data1
Y_ij=Y_ij(data)  #标准化矩阵
None_ij = [[None] * n for i in range(m)]  #新建空矩阵
def E_j(data3):  #计算熵值
    data3 = np.array(data3)
    E = np.array(None_ij)
    for i in range(m):
        for j in range(n):
            if data3[i][j] == 0:
                e_ij = 0.0
            else:
                P_ij = data3[i][j] / data3.sum(axis=0)[j]  #计算比重
                e_ij = (-1 / np.log(m)) * P_ij * np.log(P_ij)
            E[i][j] = e_ij
    E_j=E.sum(axis=0)
    return E_j
E_j = E_j(Y_ij)  #熵值
G_j = 1 - E_j    #计算差异系数
W_j = G_j / sum(G_j)   #计算权重
WW= pd.Series(W_j, index=data.columns, name='指标权重')
#print(WW)
Y_ij.to_excel("Y_ij.xls",sheet_name='Y_ij')
WW.to_excel("WW.xls",sheet_name='WW')

#TOPSIS计算
Y_ij = np.array(Y_ij)  #Y_ij为标准化矩阵
Z_ij = np.array(None_ij)  #空矩阵
for i in range(m):
    for j in range(n):
        Z_ij[i][j]=Y_ij[i][j]*W_j[j]  #计算加权标准化矩阵Z_ij
Imax_j=Z_ij.max(axis=0)  #最优解
Imin_j=Z_ij.min(axis=0)  #最劣解
Dmax_ij = np.array(None_ij)
Dmin_ij = np.array(None_ij)
for i in range(m):
    for j in range(n):
        Dmax_ij[i][j] = (Imax_j[j] - Z_ij[i][j]) ** 2
        Dmin_ij[i][j] = (Imin_j[j] - Z_ij[i][j]) ** 2
Dmax_i=Dmax_ij.sum(axis=1)**0.5  #最优解欧氏距离
Dmin_i=Dmin_ij.sum(axis=1)**0.5  #最劣解欧氏距离
C_i=Dmin_i/(Dmax_i+Dmin_i)  #综合评价值
Dmax_i= pd.Series(Dmax_i, index=data.index, name='最优解')
Dmin_i= pd.Series(Dmin_i, index=data.index, name='最劣解')
C_i= pd.Series(C_i, index=data.index, name='综合评价值')
pd.concat([Dmax_i, Dmin_i, C_i]).to_excel("C_i.xls")

(四)与其他综合评价的区别:

层次分析法:与之相比,较强的主观性;判断矩阵基本由个人填写,往往最适用没有数据的情况。在确定各层次各因素之间的权重时,如果只是定性的结果,单个个体的想法(我认为有70%的可能),则常常不容易被别人接受,因此Santy等人提出了一致矩阵法,即:

  1. 不把所有因素放在一起比较,而是两两比较;
  2. 对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确性;

成对比较矩阵是表示本层所有因素针对上一层某一个因素(准侧或目标)的相对重要性的比较。成对比较矩阵的元素??a_{ij}?表示的是第?i个因素相对于第j??个因素的比较结果,这个值使用的是Santy的1-9标度方法给出。

标度含义
1表示两个因素相比,具有同样重要性
3表示两个因素相比,一个因素比另一个因素稍微重要
5表示两个因素相比,一个因素比另一个因素明显重要
7表示两个因素相比,一个因素比另一个因素强烈重要
9表示两个因素相比,一个因素比另一个因素极端重要
2,4,6,8上述两相邻判断的中值
倒数因素i与j相比的判断aij,则因素j与i比较的判断aji=1/aij

参考文档:数学建模笔记——评价类模型之熵权法 - 简书

层次分析法(AHP) - 知乎

Python学习笔记——熵权—TOPSIS - 知乎

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 21:44:41  更:2022-02-05 21:46:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 20:24:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码