当前位置: 首页 > news >正文

使用c 语言建设网站优点企业为什么要年检

使用c 语言建设网站优点,企业为什么要年检,中国建设质量协会网站,制作网站域名需要多少钱介绍 TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution) 可翻译为逼近理想解排序法,国内常简称为优劣解距离法 TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息, 其结果能精…

介绍

TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution) 可翻译为逼近理想解排序法,国内常简称为优劣解距离法 TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息, 其结果能精确地反映各评价方案之间的差距。

C.L.Hwang 和 K.Yoon 于1981年首次提出TOPSIS (Technique for  Order Preference by Similarity to an Ideal Solution),可翻译为逼近理 想解排序法,国内常简称为优劣解距离法。 TOPSIS 法是一种常用的综合评价方法,能充分利用原始数据的 信息,其结果能精确地反映各评价方案之间的差距。 基本过程为先将原始数据矩阵统一指标类型(一般正向化处理) 得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指 标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分 别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对 象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法 对数据分布及样本含量没有严格限制,数据计算简单易行

为什么要用这个东西?

当给出一组数据时,比如一个宿舍有小明、小红、小刚、小智四个人,他们的高数分别考了60、72、66、99,那么对应的排名就是4、2、3、1,修正后的排名就是:1,3,2,4,则排名的权重就是(4 + 2 + 3 + 1 = 10):1 / 10 = 0.4、3 / 10 = 0.3、2 / 10 = 0.2、4 / 10 = 0.4,虽然说小智的权重确实是最高的,但是你能通过这个权重看出差距吗?很明显不行,明明小智同学考了99分非常优秀远远超过的小明同学的60分,但是权重就是0.4和0.1,无论最后一名考多少分都是这个权重,无法得出他们之前的真实的差距,咦,这时候Topsis就有用了,请继续往下看

量纲

极大型:

如果是上述成绩或者GDP这类的例子,得分越高越好,那么就称其为极大型指标

极小型:

如果是某个工厂产生的污染,那么就是污染越少越好,称这样的指标为极小型指标

中间型:

大家可以回忆一下初高中学的化学知识,就比如中和反应,是不是ph越接近7越好啊,这时候的ph值就是中间型指标

区间型:

还是以化学实验为例子,中等氧水体:溶解氧浓度在4-8毫克/升之间。这个区间内,水体中的大多数生物仍然可以正常进行呼吸活动,但可能在高温或其它压力下会有些许限制。这时候含氧量就是一个区间型指标了

如何计算得分?

x - min / (x - min) + (x + max)

就是x与最小值之间的距离 / x与最小值之间的距离 + x与最大值之间的距离

那么到此对这个模型的基本介绍就结束了,下面给出py的模板

Topsis的python代码模板:

import numpy as np  # 导入numpy包并将其命名为np##定义正向化的函数
def positivization(x,type,i):
# x:需要正向化处理的指标对应的原始向量
# typ:指标类型(1:极小型,2:中间型,3:区间型)
# i:正在处理的是原始矩阵的哪一列if type == 1:  #极小型print("第",i,"列是极小型,正向化中...")posit_x = x.max(0)-xprint("第",i,"列极小型处理完成")print("--------------------------分隔--------------------------")return posit_xelif type == 2:  #中间型print("第",i,"列是中间型")best = int(input("请输入最佳值:"))m = (abs(x-best)).max()posit_x = 1-abs(x-best)/mprint("第",i,"列中间型处理完成")print("--------------------------分隔--------------------------")return posit_xelif type == 3:  #区间型print("第",i,"列是区间型")a,b = [int(l) for l in input("按顺序输入最佳区间的左右界,并用逗号隔开:").split(",")]m = (np.append(a-x.min(),x.max()-b)).max()x_row = x.shape[0]  #获取x的行数posit_x = np.zeros((x_row,1),dtype=float)for r in range(x_row):if x[r] < a:posit_x[r] = 1-(a-x[r])/melif x[r] > b:posit_x[r] = 1-(x[r]-b)/melse:posit_x[r] = 1print("第",i,"列区间型处理完成")print("--------------------------分隔--------------------------")return posit_x.reshape(x_row)## 第一步:从外部导入数据
#注:保证表格不包含除数字以外的内容
x_mat = np.loadtxt('20条河流的水质情况数据.csv', encoding='UTF-8-sig', delimiter=',')  # 推荐使用csv格式文件## 第二步:判断是否需要正向化
n, m = x_mat.shape
print("共有", n, "个评价对象", m, "个评价指标")
judge = int(input("指标是否需要正向化处理,需要请输入1,不需要则输入0:"))
if judge == 1:position = np.array([int(i) for i in input("请输入需要正向化处理的指标所在的列,例如第1、3、4列需要处理,则输入1,3,4").split(',')])position = position-1typ = np.array([int(j) for j in input("请按照顺序输入这些列的指标类型(1:极小型,2:中间型,3:区间型)格式同上").split(',')])for k in range(position.shape[0]):x_mat[:, position[k]] = positivization(x_mat[:, position[k]], typ[k], position[k])print("正向化后的矩阵:", x_mat)## 第三步:对正向化后的矩阵进行标准化
tep_x1 = (x_mat * x_mat).sum(axis=0)  # 每个元素平方后按列相加
tep_x2 = np.tile(tep_x1, (n, 1))  # 将矩阵tep_x1平铺n行
Z = x_mat / ((tep_x2) ** 0.5)  # Z为标准化矩阵
print("标准化后的矩阵为:", Z)## 第四步:计算与最大值和最小值的距离,并算出得分
tep_max = Z.max(0)  # 得到Z中每列的最大值
tep_min = Z.min(0)  # 每列的最小值
tep_a = Z - np.tile(tep_max, (n, 1))  # 将tep_max向下平铺n行,并与Z中的每个对应元素做差
tep_i = Z - np.tile(tep_min, (n, 1))  # 将tep_max向下平铺n行,并与Z中的每个对应元素做差
D_P = ((tep_a ** 2).sum(axis=1)) ** 0.5  # D+与最大值的距离向量
D_N = ((tep_i ** 2).sum(axis=1)) ** 0.5
S = D_N / (D_P + D_N)  # 未归一化的得分
std_S = S / S.sum(axis=0)
sorted_S = np.sort(std_S, axis=0)

提示:此代码是适用于csv文件的如果是xlsx的话需要转csv的,请参考一下代码

import pandas as pd# 1. 从Excel文件读取数据
excel_file = '20条河流的水质情况数据.xlsx'  # 输入的Excel文件名
sheet_name = 'Sheet1'  # Excel文件中的工作表名称try:df = pd.read_excel(excel_file, sheet_name=sheet_name)print(f"成功从 '{excel_file}' 中读取数据。")
except FileNotFoundError:print(f"文件 '{excel_file}' 未找到。请检查文件路径和文件名是否正确。")exit(1)
except Exception as e:print(f"读取文件 '{excel_file}' 发生错误:{e}")exit(1)# 2. 将数据保存为CSV文件
csv_file = '20条河流的水质情况数据.csv'  # 输出的CSV文件名try:df.to_csv(csv_file, index=False, encoding='utf-8-sig')  # 使用utf-8-sig编码格式print(f"成功将数据保存到 '{csv_file}'。")
except Exception as e:print(f"保存文件 '{csv_file}' 发生错误:{e}")exit(1)print("转换完成。")

加油

http://www.yayakq.cn/news/78985/

相关文章:

  • 电脑报价网站搜狗站长工具综合查询
  • 计算机网站开发开题报告范文网站建设 重点
  • vs做网站登录界面wordpress短链接清除
  • 北京网站seo公司农村电商网站建设
  • 银川建设网站wordpress设置中文失败
  • 深圳学校网站建设公司Wordpress移动端自适应
  • 南昌网站开发机构网站建设 要维护么
  • 做个普通的网站在上海做要多少钱亿网联播
  • 做网站 证书 浏览器网页制作课程
  • ps怎么做网站横幅广告在门户网站管理建设工作讲话
  • 网站 通管局 报备公司名字大全集
  • o2o网站建设报价体球网足球世界杯
  • 网站的架设网页设计案例欣赏
  • 萧涵wordpress主题seo优化网站百度技术
  • wordpress站群主题微盟集团官网
  • 企业做商城网站需要什么资质个人网站怎么做打赏
  • 网站仿站工具wordpress登录页面图标
  • 创意互动 网站建设大数据网站
  • 用asp.net做的网站宁波企业网站制作哪家好
  • 公司网站能自己做吗互联广告精准营销
  • 网站开发与设计实训实训报告布吉附近网站建设
  • 玩具网站建设如何自己创建app软件
  • 网站登录系统怎样做饰品网站建设
  • 杭州市建设工程造价管理协会网站营销型网站建设的目标是
  • 网站制作性价比哪家好网站空间ftp
  • 东源建设局网站长沙做网站开发多少钱
  • 深圳有做网站最近价格网上
  • 大学网站建设包括哪些课程上海设计公司名称大全
  • 网站网络推广优化2022中文无字幕入口网站
  • 合肥优秀网站建设外汇返佣网站建设