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

如何用Python编程计算权重?

 

1. 加权平均中的权重计算(已知权重值)

 

如果已知各元素的权重,直接用权重乘以对应值后求和。

 

# 示例:计算加权平均分(权重之和为1)

scores = [80, 90, 70] # 各项分数

weights = [0.3, 0.5, 0.2] # 对应权重

 

# 方法1:循环计算

weighted_sum = 0

for s, w in zip(scores, weights):

    weighted_sum += s * w

print(f"加权平均分:{weighted_sum}") # 结果:82.0

 

# 方法2:用numpy简化(适合大量数据)

import numpy as np

print(np.dot(scores, weights)) # 结果:82.0

 

 

2. 特征权重(机器学习场景)

 

通过模型自动计算特征的重要性(如决策树、线性回归)。

 

from sklearn.linear_model import LinearRegression

from sklearn.datasets import load_diabetes

 

# 加载数据

data = load_diabetes()

X, y = data.data, data.target

 

# 训练线性回归模型,系数即特征权重

model = LinearRegression()

model.fit(X, y)

 

# 输出各特征的权重

print("特征权重:", model.coef_)

 

 

3. 层次分析法(AHP)计算权重

 

用于多准则决策中,通过判断矩阵计算权重。

 

import numpy as np

 

def ahp_weight(matrix):

    """根据判断矩阵计算权重(特征值法)"""

    eigenvalues, eigenvectors = np.linalg.eig(matrix)

    max_idx = np.argmax(eigenvalues)

    max_eigen = eigenvalues[max_idx].real

    # 归一化特征向量得到权重

    weights = eigenvectors[:, max_idx].real

    return weights / np.sum(weights)

 

# 示例判断矩阵(3个元素的相对重要性)

judge_matrix = np.array([

    [1, 2, 3],

    [1/2, 1, 2],

    [1/3, 1/2, 1]

])

 

print("AHP权重:", ahp_weight(judge_matrix)) # 结果约为 [0.5396, 0.3090, 0.1514]

 

- 简单加权计算:直接用元素×权重求和(适合已知权重)。

- 模型权重:调用sklearn等库的模型,通过 coef_ 或 feature_importances_ 获取。

- 决策权重:用层次分析法(AHP)或熵权法等,根据判断矩阵/数据分布计算。

 

根据具体需求选择对应的方法即可。

http://www.lryc.cn/news/582924.html

相关文章:

  • 常见的网络攻击方式及防御措施
  • 分布式接口幂等性的演进和最佳实践,含springBoot 实现(Java版本)
  • 【c++学习记录】状态模式,实现一个登陆功能
  • 【ES实战】ES客户端线程量分析
  • 从 .proto 到 Python:使用 Protocol Buffers 的完整实践指南
  • 实战Linux进程状态观察:R、S、D、T、Z状态详解与实验模拟
  • 蓝桥杯 第十六届(2025)真题思路复盘解析
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | StickyNavbar(粘性导航栏)
  • SPI / I2C / UART 哪个更适合初学者?
  • 【C++】AVL树底层思想 and 大厂面试
  • 27.移除元素(快慢指针)
  • AI大模型应用-Ollama本地千问大模型stream流乱码
  • HDLBits刷题笔记和一些拓展知识(十一)
  • 学习设计模式《十七》——状态模式
  • 美团Java面试分享
  • 基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
  • 在Docker中安装nexus3(作为maven私服)
  • [创业之路-489]:企业经营层 - 营销 - 如何将缺点转化为特点、再将特点转化为卖点
  • Java基础回顾(1)
  • 【无标题】导出pdf
  • Spring Boot 企业项目技术选型
  • Splunk练习 Boss of the SOC V1
  • JVM本地内存的使用监控情况
  • JVM 为什么使用元空间(Metaspace)替换了永久代(PermGen)?——深入理解 Java 方法区与类元数据存储的演进
  • 征程 6|工具链量化简介与代码实操
  • Redis 缓存进阶篇,缓存真实数据和缓存文件指针最佳实现?如何选择?
  • 当Powerbi遇到quickbi,性能优化方式对比
  • 玩具语音方案选型决策OTP vs Flash 的成本功耗与灵活性
  • BERT代码简单笔记
  • 台式电脑如何连wifi 快速连接方法