Python语言进行权重生成和评价模型

我在之前的比赛中很少涉及评价模型,做的更多的是模型评价,虽然两个词语位置不同但方法差异很大(开始我也差点搞混了),这次学习算是提供了一些新思路,个人就简单记录一下学习的内容(仅面向初学者,有些算法过于复杂,我自己也搞不明白,重点要学着用)。

权重生成通常涉及到确定不同因素或变量在模型中的重要性。一般情况需要通过实际数据,和多种方法生成。在获取权重后我们可以对每个指标进行评价,通过权重得分来选择最优方案。下面介绍几种常用的方法。

一.层次分析法

层次分析法属于一种多决策方法,通过建立层次结构模型,将不同层次间进行比较,最终确定决策依据。主要分为目标层、准则层、方案层。

相关例图

针对每一准则和方案,构建判断矩阵。成对比较矩阵通常采用1-标度进行取值。

下面简单给一个例子:

对角线属于自己与自己比较,默认为1,其余则是根据重要程度进行取值。

然后则是通过判断矩阵计算权重向量,通常是求取判断矩阵的特征值和特征向量,进行归一化处理。

import numpy as np
# 定义一个矩阵A
A = np.array([[...], [...]])
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
# 输出特征值和特征向量
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)
# 找到最大特征值对应的特征向量
max_index = np.argmax(eigenvalues)
max_eigenvector = eigenvectors[:, max_index]
# 归一化特征向量
weights = max_eigenvector / np.sum(max_eigenvector)
# 输出权重
print(weights)

最后是进行一致性检验,常用CR法进行检验,这里给出公式:

CI=\tfrac{\lambda max-n}{n-1}

RI参考(n为标准数):

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值