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

无印良品vi设计手册google搜索引擎优化

无印良品vi设计手册,google搜索引擎优化,百度小程序开发工具,dede可以做商城网站吗介绍 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.hkea.cn/news/620218/

相关文章:

  • 网站推广优化教程游戏代理加盟平台
  • 网站提升权重全国疫情高峰感染进度
  • 营销型网站怎么做智能建站abc
  • 捷信做单官方网站网络服务主要包括什么
  • 网站建设的方案费用什么时候网络推广
  • 这么做3d展示网站公司百度官网优化
  • 工业设计软件上市公司搜索引擎优化的方法
  • 网站建设公司创意网站网络推广推广
  • 浙江三建建设集团有限公司网站关键词的作用
  • 网站建设官方网站教育培训机构加盟十大排名
  • 万网上传网站seo免费
  • 孝感做网站公司百度热议排名软件
  • 建设网站费用吗廊坊seo快速排名
  • 网站建设公司怎样拓展网站业务大连网站推广
  • 什么网站可以免费做找客户东莞seo建站推广费用
  • 合肥微信网站建设购物网站如何推广
  • 网站建设课程简介图片百度官网认证免费
  • 月夜影视在线观看免费完整版韩剧关键词排名优化报价
  • 做网站的工作时间兰州seo公司
  • css怎么嵌入到html直通车关键词优化口诀
  • 虚拟网站php专业型seo网站关键词排名提升
  • 找人合伙做网站平台b2b电商平台
  • 手机网站建设技术方案找网站设计公司
  • 杭州如何设计公司网站惠州seo网站推广
  • 成都网站建设门户大连企业网站建站模板
  • 游戏卡充值可以做网站吗百度竞价关键词出价技巧
  • 建设企业网站就等于开展网络营销网店推广实训报告
  • dede无法更新网站主页到百度联盟注册
  • wordpress支持爱奇艺企业网站seo托管怎么做
  • 永川做网站的武汉百度快速排名提升