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

网站建设推广文案专业的魔站建站系统

网站建设推广文案,专业的魔站建站系统,wordpress模板仿,网站广告制作目录 介绍#xff1a; 模板#xff1a; 案例#xff1a; 极小型指标转化为极大型#xff08;正向化#xff09;#xff1a; 中间型指标转为极大型#xff08;正向化#xff09;#xff1a; 区间型指标转为极大型#xff08;正向化#xff09;#xff1a; 标…目录 介绍 模板 案例 极小型指标转化为极大型正向化 中间型指标转为极大型正向化 区间型指标转为极大型正向化 标准化处理 公式 Topsis(优劣解距离法): 公式 完整代码 结果 介绍 在数学建模中Topsis方法是一种多准则决策分析方法用于评估和排序备选方案。它代表了“最佳方案相似性排序技术”。 在Topsis方法中每个备选方案根据一组准则进行评估并分配权重以反映它们的相对重要性。然后该方法根据每个备选方案与理想解和负理想解之间的差异计算两个度量值到理想解的距离和到负理想解的距离。 理想解代表了每个准则的最佳可能值而负理想解则代表了最差可能值。这些距离度量值使用一个公式计算考虑了备选方案与这两个参考点之间差异的加权总和。 一旦计算出距离Topsis根据备选方案与理想解的接近度对其进行排序。与理想解最接近且与负理想解最远的备选方案被视为最佳选择。 Topsis方法常用于需要考虑多个准则的决策情景中例如选择供应商、评估项目或选择最佳行动方案。它帮助决策者客观地评估和比较备选方案同时考虑到每个选项的正面和负面因素。 模板 import numpy as npdef topsis(data, weights, impacts):# 数据归一化normalized_data data / np.sqrt(np.sum(data**2, axis0))# 加权归一化数据weighted_normalized_data normalized_data * weights# 理想解和负理想解ideal_solution np.max(weighted_normalized_data, axis0)negative_ideal_solution np.min(weighted_normalized_data, axis0)# 计算备选方案与理想解和负理想解的距离distances np.sqrt(np.sum((weighted_normalized_data - ideal_solution)**2, axis1)) / \np.sqrt(np.sum((weighted_normalized_data - negative_ideal_solution)**2, axis1))# 考虑权重和影响的得分scores np.sum(weights * impacts * normalized_data, axis1)# 综合得分comprehensive_scores scores / (scores distances)# 排序并返回结果rankings np.argsort(comprehensive_scores)[::-1] 1return rankings# 例子 data np.array([[3, 2, 5, 4],[4, 1, 2, 8],[1, 3, 4, 6],[2, 4, 3, 5]])weights np.array([0.25, 0.25, 0.25, 0.25]) impacts np.array([1, 1, -1, 1])rankings topsis(data, weights, impacts) print(rankings) 案例 极小型指标转化为极大型正向化 # 公式:max-x if (Negative in name) True:max0 data_nor[columns_name[i 1]].max()#取最大值data_nor[columns_name[i 1]] (max0 - data_nor[columns_name[i 1]]) # 正向化# print(data_nor[columns_name[i1]]) 中间型指标转为极大型正向化 # 中间型指标正向化 公式Mmax{|xi-best|} xi1-|xi-best|/Mif (Moderate in name) True:print(输入最佳值)max data_nor[columns_name[i 1]].max()min data_nor[columns_name[i 1]].min()bestinput()M0for j in data_nor[columns_name[i 1]]:if(Mabs(j-int(best))):M(abs(j-int(best)))data_nor[columns_name[i 1]]1-(abs(data_nor[columns_name[i 1]]-int(best))/M)#print(data_nor[columns_name[i 1]]) 区间型指标转为极大型正向化 # 区间型指标正向化if(Section in name)True:print()print(输入区间)ainput()binput()aint(a)bint(b)max data_nor[columns_name[i 1]].max()min data_nor[columns_name[i 1]].min()if(a-minmax-b):Ma-minelse:Mmax-b#print(data_nor[columns_name[i 1]][0])cnt0for j in data_nor[columns_name[i 1]]:if(jint(a)):data_nor[columns_name[i 1]][cnt]1-(a-j)/Melif (int(a) j int(b)):data_nor[columns_name[i 1]][cnt]1elif (jb):data_nor[columns_name[i 1]][cnt]1-(j-b)/M#print(data_nor[columns_name[i 1]][cnt])cnt1#print(data_nor[columns_name[i 1]])公式 M max{a-min{xi},max{xi}-b} xia,则xi1-(a-xi)/M; axib,则xi1; xib,则1-(xi-b)/M标准化处理 公式 def normalization(data_nor):data_nors data_nor.valuesdata_nors np.delete(data_nors, 0, axis1)#去掉第一行squere_A data_nors * data_nors#矩阵相乘# print(squere_A)sum_A np.sum(squere_A, axis0)#按列求和sum_A sum_A.astype(float)stand_A np.sqrt(sum_A)#平方根columns_name data_nor.columns.valuescnt0for i in columns_name[1:]:#print(data_nor[i])data_nor[i]data_nor[i]/stand_A[cnt]cnt1#print(data_nor)return data_nor Topsis(优劣解距离法): 公式 def topsis(data):data_nordata.copy()data_nordata_nor.valuesdata_nor np.delete(data_nor, 0, axis1)z_maxnp.amax(data_nor,axis0)#每个特征里面挑最大值z_minnp.amin(data_nor,axis0)#每个特征里面挑最小值#print(z_min)#print(z_max)tmpmaxdistnp.power(np.sum(np.power((z_max-data_nor),2),axis1),0.5)#最大距离tmpmindistnp.power(np.sum(np.power((z_min-data_nor),2),axis1),0.5)#最小距离scoretmpmindist/(tmpmindisttmpmaxdist)#定义得分score score/np.sum(score)#归一化return score 完整代码 #codinggbk import pandas as pd import numpy as np import re import warnings# 定义文件读取方法 def read_data(file):file_path fileraw_data pd.read_excel(file_path, header0)# print(raw_data)return raw_data# 定义数据正向化 def data_normalization(data):data_nor data.copy()columns_name data_nor.columns.values#print(columns_name)for i in range((len(columns_name) - 1)):name columns_name[i 1]print(输入这一类数据类型(Positive、Negative、Moderate、Section))nameinput()# 极小型指标正向化if (Negative in name) True:max0 data_nor[columns_name[i 1]].max()#取最大值data_nor[columns_name[i 1]] (max0 - data_nor[columns_name[i 1]]) # 正向化# print(data_nor[columns_name[i1]])# 中间型指标正向化if (Moderate in name) True:print(输入最佳值)max data_nor[columns_name[i 1]].max()#取最大值min data_nor[columns_name[i 1]].min()#取最小值bestinput()bestint(float(best))M0for j in data_nor[columns_name[i 1]]:if(Mabs(j-int(best))):M(abs(j-int(best)))data_nor[columns_name[i 1]]1-(abs(data_nor[columns_name[i 1]]-int(best))/M)#print(data_nor[columns_name[i 1]])# 区间型指标正向化if(Section in name)True:print(输入区间)ainput()binput()aint(a)bint(b)max data_nor[columns_name[i 1]].max()min data_nor[columns_name[i 1]].min()if(a-minmax-b):Ma-minelse:Mmax-b#print(data_nor[columns_name[i 1]][0])cnt0for j in data_nor[columns_name[i 1]]:if(jint(a)):data_nor[columns_name[i 1]][cnt]1-(a-j)/Melif (int(a) j int(b)):data_nor[columns_name[i 1]][cnt]1elif (jb):data_nor[columns_name[i 1]][cnt]1-(j-b)/Mcnt1#print(data_nor[columns_name[i 1]])# print(data_nor)return data_nordef normalization(data_nor):data_nors data_nor.valuesdata_nors np.delete(data_nors, 0, axis1)squere_A data_nors * data_nors#矩阵相乘# print(squere_A)sum_A np.sum(squere_A, axis0)#按列求和sum_A sum_A.astype(float)stand_A np.sqrt(sum_A)#开平方columns_name data_nor.columns.valuescnt0for i in columns_name[1:]:data_nor[i]data_nor[i]/stand_A[cnt]#每个元素除以相对应的平方根cnt1#print(data_nor)return data_nor# 定义计算熵权方法 def entropy_weight(data_nor):columns_name data_nor.columns.valuesn data_nor.shape[0]E []for i in columns_name[1:]:# 计算信息熵# print(i)data_nor[i] data_nor[i] / sum(data_nor[i])data_nor[i] data_nor[i] * np.log(data_nor[i])data_nor[i] data_nor[i].where(data_nor[i].notnull(), 0)# print(data_nor[i])Ei (-1) / (np.log(n)) * sum(data_nor[i])E.append(Ei)# print(E)# 计算权重W []for i in E:wi (1 - i) / ((len(columns_name) - 1) - sum(E))W.append(wi)# print(W)return W# 计算得分 def entropy_score(data, w):data_s data.copy()columns_name data_s.columns.valuesfor i in range((len(columns_name) - 1)):name columns_name[i 1]data_s[name] data_s[name] * w[i]return data_sdef topsis(data):data_nordata.copy()data_nordata_nor.valuesdata_nor np.delete(data_nor, 0, axis1)z_maxnp.amax(data_nor,axis0)#每个特征里面挑最大值z_minnp.amin(data_nor,axis0)#每个特征里面挑最小值#print(z_min)#print(z_max)tmpmaxdistnp.power(np.sum(np.power((z_max-data_nor),2),axis1),0.5)#最大距离tmpmindistnp.power(np.sum(np.power((z_min-data_nor),2),axis1),0.5)#最小距离scoretmpmindist/(tmpmindisttmpmaxdist)#定义得分score score/np.sum(score)#归一化return scoreif __name__ __main__:file filepath # 声明数据文件地址data read_data(file) # 读取数据文件data_nor data_normalization(data) # 数据正向化,生成后的数据data_norprint(\n正向化后的数据)print(data_nor)data_nornormalization(data_nor)print(\n标准化后的数据)print(data_nor)scoretopsis(data_nor)print(\n得分)print(score)scorepd.DataFrame(score)score.columns[得分]datapd.DataFrame(data)datapd.concat([data,score],axis1)print(data) 结果
http://www.zqtcl.cn/news/316811/

相关文章:

  • 淮安企业网站制作校园网网络规划与设计方案
  • html完整网站开发自媒体平台账号注册
  • 厦门seo网站网站空间 群集
  • 青岛网站推广方案营销自动化平台
  • 管理信息系统与网站建设有什么区别python版wordpress
  • 济南市建设行政主管部门网站公众号登录入口官网
  • 深圳苏州企业网站建设服务企业做网站需要什么条件
  • 电脑什么网站可以做长图攻略公众号 微网站开发
  • 网站核检单怎么用小皮创建网站
  • 企业网站托管平台有哪些烟台高新区建设局网站
  • 石家庄网站做网站和县网页定制
  • 网站个人备案和企业备案潍坊公司注册网站
  • 建个网站的流程互联网裁员
  • 设置网站模板汉口网站建设公司
  • 网站对一个关键词做排名怎么做网站建设 图纸网
  • 什么网站比较吸引流量网页设计代码td
  • 克隆网站怎么做后台wordpress网站缩
  • 仁怀哪儿做网站泰安市建设局
  • 做网站和编程有关系吗手机怎么做电子书下载网站
  • 网站做关键词排名网站快速排名的方法
  • 有网站模板如何预览泉州app开发
  • 网站自助建站系统重庆皇华建设集团有限公司网站
  • 云速成美站做网站好吗汕头制作网站
  • 搜狗搜索网站提交入口在哪里做卖车网站
  • 河南省百城建设提质网站新人怎么做电商
  • 建设机械网站制作创建个人网站教案
  • 无锡网站推广装修风格大全2023新款
  • 在线设计logo免费网站如何在网站上添加qq
  • 高端网站建设哪里好网站建设与管理案例教程
  • 云南专业网站建设上海百度移动关键词排名优化