运用Python进行TOPSIS综合评价方法
运用Python进行TOPSIS综合评价方法
- 第一步,读取数据;
- 第二步,对数据进行趋同化;
- 第三步,对数据进行归一化;
- 第四步,获取最优列值向量和最劣值向量;
- 第五步,计算最优方案和最劣方案;
- 第六步,计算评价对象与最优方案接近程度;
- 最后,进行排序。
第一步,读取数据;
import pandas as pd #导入pandas工具包
import numpy as np #导入numpy工具包
data = pd.read_excel("F:\Desktop\python运行文件.xlsx")
data[:5]
第二步,对数据进行趋同化;
# 设置城市名为索引
data.set_index(['Unnamed: 0'], inplace=True)
# 获取列名称
n = list(data.columns)
# 高优指标
for i in n:data[i] = data[i]
# 低优指标
for i in n:data[i] = 1/data[i]
# 中性指标
for i in n:Max = np.max(data[i])data[i] = Max/(Max + np.abs(data[i] - Max))
注:这里仅列示各类型指标的处理方法,如果指标体系包含两种以上类型的指标,注意嵌套使用 if 条件语句进行循环。
第三步,对数据进行归一化;
# 进行归一化
for i in n:x = np.power(np.sum(np.power(data[i],2)),0.5)data[i] = data[i]/x data[:5]
第四步,获取最优列值向量和最劣值向量;
A1 = []
# 获取最优列值
for i in n:Max = np.max(data[i])A1.append(Max)
# 转换形式
A1 = np.array(A1)# 获取最劣列值
A2 = []
for i in n:Min = np.min(data[i])A2.append(Min)
# 转换形式
A2 = np.array(A2)
第五步,计算最优方案和最劣方案;
计算最优方案
D1 = []
for i in range(1,len(data)+1):d1 = np.power(np.sum(np.power(A1 - data[i-1:i],2).values),0.5)D1.append(d1)
# 转换形式
D1 = np.array(D1)# 计算最劣方案
D2 = []
for i in range(1,len(data)+1):d2 = np.power(np.sum(np.power(A2 - data[i-1:i],2).values),0.5)D2.append(d2)
# 转换形式
D2 = np.array(D2)
第六步,计算评价对象与最优方案接近程度;
C = D2/(D1 + D2)
最后,进行排序。
# 新建数据框
data1 = pd.DataFrame(C, index = list(data.index))
data2 = pd.DataFrame(D1, index = list(data.index))
data3 = pd.DataFrame(D2, index = list(data.index))# 按C值进行排序
data1['rank'] = data1.rank(ascending = False)
data2['rank1'] = data2.rank(ascending = False)
data3['rank2'] = data3.rank(ascending = False)# 对 data1 重新设置列名
data1.columns = ['得分', '排名']data1['最优方案距离'] = data2[0]
data1['排名1'] = data2['rank1']data1['最劣方案距离'] = data3[0]
data1['排名2'] = data3['rank2']# 保存为excel格式
data1.to_excel('F:\Desktop\综合得分.xlsx')data1[:5]
运用Python进行TOPSIS综合评价方法相关推荐
- R语言实战Topsis综合评价法
本文介绍Topsis综合评价方法,通过一个实际案例说明其计算过程,并利用R语言完整过程实现. 1. Topsis方法概述 TOPSIS全称Technique for Order Preference ...
- 数学建模——TOPSIS综合评价模型Python代码
数学建模--TOPSIS综合评价模型Python代码 正常代码 import numpy as np # 导入numpy包并将其命名为np ##定义正向化的函数 def positivization( ...
- 多种综合评价方法的python实现
综合评价类方法是数学建模中常用的方法,主要作用是对多组数据赋权,算是非常万金油的办法.网上有很多封装好的软件可以实现综合评价,但是欠缺一定的灵活性,在这里我们尝试用python实现综合评价. ...
- 数学建模之:TOPSIS综合评价模型python代码
1.TOPSIS基本概念 TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution )模型中文叫做" ...
- Topsis算法(优劣解距离法)——综合评价方法
一.Topsis算法 TOPSIS 法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距.基本过程为基于归一化后的原始数据矩阵,采用余弦法找出有限方案中的最 ...
- 数学建模--综合评价方法
综合评价方法 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮 ...
- 数学建模常见的综合评价方法及预测方法
综合评价方法 •简单加权法 1. 线性加权综合法 适用条件:各评价指标之间相互独立. 对不完全独立的情况,其结果将导致各指标间信息的重复,使评价结果不能客观地反映实际. 主要特点: (1)各评价指标间 ...
- SPSSAU综合评价方法汇总
综合评价是对某事物进行多指标综合评价的过程,是一种科学研究和科学决策的过程.一般应当包括指标体系设计.收集资料.整理资料和统计分析几个阶段. 简单从分析角度来讲,综合评价方法步骤主要包括:确定指标体系 ...
- matlab 动态加权综合评价_动态加权综合评价方法.ppt
动态加权综合评价方法 * * (3). 逼近理想点(TOPSIS)方法 4. 综合评价数学模型的建立方法 二.综合评价的一般方法 * * (3). 逼近理想点(TOPSIS)方法 4. 综合评价数学模 ...
最新文章
- [31期] 第一个项目结束之际--俺很高调但很真诚地感谢一个人--涛爷
- HP-UX 六大虚拟化技术之“分区”
- 服务器芯片采购,服务器采购具体要求.pdf
- 程序员:你为什么要离职?
- linux登录指令 pgsql_一句一例解读20条Linux常用指令,学会了你就入门了
- appinventor如何做个游戏_单亮:游戏的重要性
- 计算机主机ppt课件,怎么用电脑制作ppt课件
- monodepth2训练细节
- C语言将十进制输出二进制、八进制、十六进制的方法总结
- 二 Python 基本数据类型
- 《论韩愈 》——陈寅恪
- H3C 胖AP设置(非VLAN模式)
- 创业公司的股权分配 .
- 几大搜索引擎搜索结果页大小的比较
- 计算机专业买哪一款华硕电脑好,华硕电脑哪款好
- 另类玩法,使用 REST API 操作 RabbitMQ
- 6—CSS基础选择器(标签选择器、类选择器、id选择器)
- html5+css3个人相册网页制作
- 2020年机修钳工(初级)试题及答案及机修钳工(初级)模拟考试题库
- 欧洲杯竞猜|周末在家预测欧洲杯淘汰赛