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

如何用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.xdnf.cn/news/14868.html

相关文章:

  • houdini云渲染和云解算新选择
  • 基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
  • 什么是2.5G交换机?
  • 香港站群服务器与普通香港服务器对比
  • 从零开始手写嵌入式实时操作系统
  • 【Java安全】RMI基础
  • 说说SpringBoot常用的注解?
  • 实时开发IDE部署指南
  • DVWA SQL Injection(Blind)漏洞分析与利用
  • 2025年数据挖掘与计算机科学国际会议 (DMCS 2025)
  • 数据湖技术之Iceberg-03 Iceberg整合Flink 实时写入与增量读取
  • 创意Python爱心代码
  • 7.7晚自习作业
  • 基于Java+SpringBoot的在线小说阅读平台
  • 以科技为刃,铸强国之基
  • 【Swift开发】屏蔽NSSecureCoding频繁警告
  • Chatbox➕知识库➕Mcp = 机器学习私人语音助手
  • 2025 年使用大模型进行软件工程:现实检验
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的高校实验室资源综合管理系统,推荐!
  • 汽车功能安全系统阶段开发【技术安全需求TSR】4
  • 算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • Python 3 -- 第一章 基础语法
  • RSTP 拓扑收敛机制
  • 牛客周赛99
  • java ThreadLocal源码分析
  • 基于Java+springboot 的车险理赔信息管理系统
  • centos7.9安装ffmpeg6.1和NASM、Yasm、x264、x265、fdk-aac、lame、opus解码器
  • CentOS-7的“ifupdown“与Debian的“ifupdown“对比 笔记250706
  • 【LeetCode 热题 100】240. 搜索二维矩阵 II——排除法
  • [netty5: WebSocketFrameEncoder WebSocketFrameDecoder]-源码解析