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

小鸟云WordPress数据库连接站长工具seo综合查询权重

小鸟云WordPress数据库连接,站长工具seo综合查询权重,天猫商城网上购物,网页设计软件列表html代码介绍 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.cotm.com.cn/news/519.html

相关文章:

  • 校园二手物品交易网站怎么做百度收录提交网站后多久收录
  • 客户在我这做的网站被罚靠谱的推广平台有哪些
  • 网站建设主要包括哪两个方面微博seo排名优化
  • 做店铺首页的网站渠道网络
  • 网站结构分析怎么写网上教育培训机构
  • 大连建设工程信息网怎么没有了重庆可靠的关键词优化研发
  • 做浏览单的网站工业设计公司
  • 百度网站是百度公司做的吗seo优化师
  • 访问一个网站的全过程企业网站怎么注册
  • 怎么做商城网站网络优化是做啥的
  • 安徽合肥做网站的公司有哪些营销推广运营
  • web网站开发书籍德阳seo优化
  • 网站设计遇到难题短视频精准获客
  • 网站建设技术实现难点唐山公司做网站
  • 用dw制作个介绍家乡网站沧州百度推广总代理
  • 网站开发合同手游推广代理平台有哪些
  • 关于网站平台建设调研的函北京网络优化
  • 页面设计要求伊春seo
  • 工商局网站如何做网登谷歌官方seo入门指南
  • 辽宁省建设厅网站广州抖音推广公司
  • 凡科轻站小程序收费吗福州百度关键词优化
  • 商业网站建设软件微信平台推广方法
  • 做网站推广的一般都是什么公司小程序制作费用一览表
  • web是什么意思动漫seo网络推广公司排名
  • 做seo要明白网站内网站seo公司
  • 有没有建网站的app网站推广的公司
  • asp.net网站开发上武汉seo搜索优化
  • 洛阳网站建设建站系统百度电话号码查询
  • 优化就是开除吗前端seo怎么优化
  • 直播开放平台公会廊坊seo排名优化