亚马逊品牌备案的网站怎么做,四川建筑人员证书查询官网,重庆经典论坛新闻评论,网站配色案例分析目录 一、 熵权法赋权代码说明1.1 介绍 二、 手把手教你运行代码2.1 数据示例2.2 可直接运行代码2.3 shangquanfa_eg_Sheet1.csv数据可视化2.4 代码运行过程截屏2.5 代码运行结果截屏2.6 对熵权法的结果分析 三、 提供的代码如何修改#xff1f;四、 为什么确定极小化指标可直接运行代码2.3 shangquanfa_eg_Sheet1.csv数据可视化2.4 代码运行过程截屏2.5 代码运行结果截屏2.6 对熵权法的结果分析 三、 提供的代码如何修改四、 为什么确定极小化指标4.1 极小化和极大化的归一化原理1. 极大化指标的归一化归一化公式解释 2. 极小化指标的归一化归一化公式解释 3. 归一化的目的和意义 四、熵权法的原理4.1 熵权法简介4.2 熵权法的原理4.2.1 信息熵的计算公式 一、 熵权法赋权代码说明
1.1 介绍 熵权法Entropy Weight Method, EWM是一种客观赋权的方法用于多指标决策分析。 我知道大家对原理不感兴趣原理我放在最后写论文的同学可以复制但是记得改一改否则查重率过不去。 代码可以直接运行大家参考我的教程。 二、 手把手教你运行代码 接下来我给大家提供一个示例数据以这个数据教大家如何使用下述代码。 2.1 数据示例
假设你的数据存储在 data.csv 文件中格式如下
编号影响因素1影响因素2影响因素3A70800030B90700050C60750040 首先将你的数据整理为这种格式然后查看影响因素对某个值越大约好的不用管只需要找出影响因素越小越好的值因为两者归一化的方法不一样假如影响因素1和2 是越小越好那么记住影响因素在除了第一列以外从0开始编号属于第1和2列记住和2。 接下来给你提供代码教你如何操作代码。 2.2 可直接运行代码
import pandas as pd
import numpy as npdef entropy_weight_method(csv_file, minimize_colsNone):# 读取 CSV 文件data pd.read_csv(csv_file)# 取出指标数据假设数据的第一列是样本编号后面的列是指标samples data.iloc[:, 0] # 样本编号values data.iloc[:, 1:].values # 指标数据num_samples, num_indicators values.shape# 如果没有指定极小化列则默认为空列表if minimize_cols is None:minimize_cols []# 标准化数据def normalize(matrix, minimize_cols):matrix_norm np.zeros_like(matrix, dtypefloat)for i in range(matrix.shape[1]):min_val np.min(matrix[:, i])max_val np.max(matrix[:, i])# 对极大化指标进行标准化if i not in minimize_cols:matrix_norm[:, i] (matrix[:, i] - min_val) / (max_val - min_val)# 对极小化指标进行标准化else:matrix_norm[:, i] (max_val - matrix[:, i]) / (max_val - min_val)return matrix_norm# 标准化数据normalized_data normalize(values, minimize_cols)# 计算指标比重indicator_sum np.sum(normalized_data, axis0)proportion_matrix normalized_data / indicator_sum# 计算信息熵def calculate_entropy(matrix):epsilon 1e-10 # 防止对数计算中的零p matrix epsilonentropy -np.sum(p * np.log(p), axis0) / np.log(matrix.shape[0])return entropyentropy calculate_entropy(proportion_matrix)# 计算熵权def calculate_weights(entropy):d 1 - entropyweights d / np.sum(d)return weightsweights calculate_weights(entropy)# 计算综合得分scores np.dot(normalized_data, weights)# 将结果保存到 CSV 文件result pd.DataFrame({Sample: samples,Score: scores})result.to_csv(weighted_scores.csv, indexFalse, encodingutf-8)return weights, scores# 用法
csv_file shangquanfa_eg_Sheet1.csv # 假设数据存储在 data.csv 文件中# 指定极小化的指标列索引从0开始计数假设第二列和第三列是极小化指标
minimize_cols [0, 1] # 比如这里的列索引根据你的数据来设置
# minimize_cols [] # 无极小化因素则启用这行代码
weights, scores entropy_weight_method(csv_file, minimize_cols)print(权重, weights)
print(综合得分, scores)**首先注意的有3点 1.你的数据文件必须经过我的转换参考我的这篇播客文件格式转换EXCEL和CSV文件格式互相转换 对需要使用熵权法的数据进行转换并且转换以后对csv文件不可以在进行操作否则会报错字符编码错误。 2.找到这行代码minimize_cols [0, 1] ,在里面填入12注意英文半角原因我前文有说明仔细看 修改后minimize_cols [1, 2]如果没有极小化就是全部的影响因素越大越好你就改为minimize_cols []空列表 3.csv_file ‘shangquanfa_eg_Sheet1.csv’ 中shangquanfa_eg_Sheet1.csv是你的csv文件的路径及名字最终按顺序输出权重和综合得分。 运行代码 2.3 shangquanfa_eg_Sheet1.csv数据可视化 2.4 代码运行过程截屏 2.5 代码运行结果截屏 2.6 对熵权法的结果分析 从结果 权重 [0.36719405 0.31640297 0.31640297] 综合得分 [0.43880099 0.68359703 0.31640297] 可以看出影响因素1、影响因素2、影响因素3的权重分别是0.36719405 、0.31640297、 0.31640297最终计算得出A、B、C三地的得分依次为0.43880099 、0.68359703、 0.31640297可知B地最佳。 三、 提供的代码如何修改 **首先注意的有3点 1.你的数据文件必须经过我的转换参考我的这篇播客文件格式转换EXCEL和CSV文件格式互相转换 对需要使用熵权法的数据进行转换并且转换以后对csv文件不可以在进行操作否则会报错字符编码错误。 2.找到这行代码minimize_cols [0, 1] ,在里面填入12注意英文半角原因我前文有说明仔细看 修改后minimize_cols [1, 2]如果没有极小化就是全部的影响因素越大越好你就改为minimize_cols []空列表 3.csv_file ‘shangquanfa_eg_Sheet1.csv’ 中shangquanfa_eg_Sheet1.csv是你的csv文件的路径及名字最终按顺序输出权重和综合得分。 四、 为什么确定极小化指标
看极小化和极大化的归一化过程你就懂了过程如下
4.1 极小化和极大化的归一化原理
在多指标决策分析中不同的指标对决策的影响方向可能不同有些指标是极大化指标即指标值越大越好而有些指标是极小化指标即指标值越小越好。为了将不同量纲和方向的指标转化到一个可比的尺度上需要进行归一化处理即将不同指标的值转换到相同的范围通常为 [0, 1] 区间。这样就可以在同一尺度上进行比较和计算。
1. 极大化指标的归一化
极大化指标是指指标的值越大越好例如利润、效率、得分等。在归一化时希望将指标值较大的样本归一化到更高的数值。归一化公式如下 r i j x i j − x min ( j ) x max ( j ) − x min ( j ) r_{ij} \frac{x_{ij} - x_{\min(j)}}{x_{\max(j)} - x_{\min(j)}} rijxmax(j)−xmin(j)xij−xmin(j)
其中 r i j r_{ij} rij 是第 i i i 个样本在第 j j j 个指标下的归一化值。 x i j x_{ij} xij 是第 i i i 个样本在第 j j j 个指标下的原始值。 x min ( j ) x_{\min(j)} xmin(j) 是第 j j j 个指标的最小值。 x max ( j ) x_{\max(j)} xmax(j) 是第 j j j 个指标的最大值。
归一化公式解释
当 x i j x max ( j ) x_{ij} x_{\max(j)} xijxmax(j) 时 r i j 1 r_{ij} 1 rij1表示该样本在该指标下的表现最好。当 x i j x min ( j ) x_{ij} x_{\min(j)} xijxmin(j) 时 r i j 0 r_{ij} 0 rij0表示该样本在该指标下的表现最差。如果 x i j x_{ij} xij 介于 x min ( j ) x_{\min(j)} xmin(j) 和 x max ( j ) x_{\max(j)} xmax(j) 之间 r i j r_{ij} rij 的值位于 0 和 1 之间。
2. 极小化指标的归一化
极小化指标是指指标的值越小越好例如成本、污染物排放量、损失等。在归一化时希望将指标值较小的样本归一化到更高的数值。归一化公式如下 r i j x max ( j ) − x i j x max ( j ) − x min ( j ) r_{ij} \frac{x_{\max(j)} - x_{ij}}{x_{\max(j)} - x_{\min(j)}} rijxmax(j)−xmin(j)xmax(j)−xij
其中 r i j r_{ij} rij 是第 i i i 个样本在第 j j j 个指标下的归一化值。 x i j x_{ij} xij 是第 i i i 个样本在第 j j j 个指标下的原始值。 x min ( j ) x_{\min(j)} xmin(j) 是第 j j j 个指标的最小值。 x max ( j ) x_{\max(j)} xmax(j) 是第 j j j 个指标的最大值。
归一化公式解释
当 x i j x min ( j ) x_{ij} x_{\min(j)} xijxmin(j) 时 r i j 1 r_{ij} 1 rij1表示该样本在该指标下的表现最好。当 x i j x max ( j ) x_{ij} x_{\max(j)} xijxmax(j) 时 r i j 0 r_{ij} 0 rij0表示该样本在该指标下的表现最差。如果 x i j x_{ij} xij 介于 x min ( j ) x_{\min(j)} xmin(j) 和 x max ( j ) x_{\max(j)} xmax(j) 之间 r i j r_{ij} rij的值位于 0 和 1 之间。
3. 归一化的目的和意义
统一量纲将不同量纲的指标统一到同一数值范围通常为 [0, 1]便于综合计算和比较。消除单位影响通过归一化处理消除不同单位对分析结果的影响。明确方向根据指标的性质极大化或极小化调整数据方向使得所有指标的优化目标一致即越大越好。
四、熵权法的原理
4.1 熵权法简介
熵权法Entropy Weight Method, EWM是一种客观赋权的方法常用于多指标决策分析中。熵权法的基本思想是通过计算各指标的信息熵来衡量其在决策中的不确定性程度。指标的信息熵越大说明该指标的信息越分散差异性越小对决策的影响程度越低相反信息熵越小说明该指标的信息越集中差异性越大对决策的影响程度越高。
熵权法的优势在于它可以根据数据本身的分布情况客观地确定各指标的权重避免了人为主观赋权的干扰。
4.2 熵权法的原理
熵Entropy是信息论中的一个重要概念用于度量系统的不确定性程度。在决策分析中熵被用来表示指标值的离散程度。具体来说信息熵越大表明该指标的分布越均匀对决策的贡献程度越小。因此熵权法通过计算各指标的信息熵来确定其在决策中的权重。
4.2.1 信息熵的计算公式
给定一个指标 j j j其在 n n n 个样本上的值为 x i j x_{ij} xij熵权法的计算步骤如下 标准化处理 对原始数据进行标准化消除量纲的影响。常用的标准化方法为极小化和极大化处理 r i j x i j − x min ( j ) x max ( j ) − x min ( j ) r_{ij} \frac{x_{ij} - x_{\min(j)}}{x_{\max(j)} - x_{\min(j)}} rijxmax(j)−xmin(j)xij−xmin(j) 其中 x i j x_{ij} xij是第 i i i个样本在第 j j j个指标上的值。 x min ( j ) x_{\min(j)} xmin(j) 是第 j j j 个指标的最小值。 x max ( j ) x_{\max(j)} xmax(j) 是第 j j j个指标的最大值。 经过标准化后所有数据都被归一化到 [0, 1] 区间。 计算各指标的比重 计算每个样本在每个指标下的比重比例系数 p i j r i j ∑ i 1 n r i j p_{ij} \frac{r_{ij}}{\sum_{i1}^{n} r_{ij}} pij∑i1nrijrij 其中$ p i j p_{ij} pij 表示第 i i i 个样本在第 j j j 个指标下的比重。 计算信息熵 利用信息熵公式计算每个指标的信息熵 e j − k ∑ i 1 n p i j ln ( p i j ) e_j -k \sum_{i1}^{n} p_{ij} \ln(p_{ij}) ej−ki1∑npijln(pij) 其中 e j e_j ej 是第 j j j 个指标的信息熵。 k 1 ln ( n ) k \frac{1}{\ln(n)} kln(n)1 是一个常数用于标准化熵值。 n n n是样本的数量。当 p i j 0 p_{ij} 0 pij0 时定义 p i j ln ( p i j ) 0 p_{ij} \ln(p_{ij}) 0 pijln(pij)0。 计算熵权 根据信息熵计算每个指标的权重 w j 1 − e j m − ∑ j 1 m e j w_j \frac{1 - e_j}{m - \sum_{j1}^{m} e_j} wjm−∑j1mej1−ej 其中 w j w_j wj 是第 j j j 个指标的权重。 m m m 是指标的数量。 计算综合得分 使用计算出的权重计算每个样本的综合得分 S i ∑ j 1 m w j ⋅ r i j S_i \sum_{j1}^{m} w_j \cdot r_{ij} Sij1∑mwj⋅rij 其中 S i S_i Si 是第 i i i 个样本的综合得分。 r i j r_{ij} rij 是第 i i i 个样本在第 j j j 个指标下的标准化值。