如何用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.pswp.cn/news/913565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913565.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913565.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WinUI3入門16:Order自定義排序

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github:codetoys,所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的,可以在任何平臺上使用。 源碼指引:github源…

Java 面向對象三大特性詳解:封裝、繼承與多態,掌握OOP核心思想

作為一名Java開發工程師,你一定知道,封裝(Encapsulation)、繼承(Inheritance)和多態(Polymorphism) 是面向對象編程(Object-Oriented Programming, OOP)的三大…

WPS中配置MathType教程

項目場景:在WPS中使用MathType問題描述:MathPage.wll或MathType.dll文件找不到問題原因分析:在C盤wps中的startup中有mathpage.wll,但配置不可用而我的WPS安裝在E盤,并且桌面圖標啟動路徑也是E盤路徑下的WPS路徑,所以不…

基于模板設計模式開發優惠券推送功能以及對過期優惠卷進行定時清理

1.模板設計模式:模板設計模式是一種常見的設計模式,主要作用是對 具體操作的 共有代碼塊進行提取,提升代碼復用性。那么說道代碼復用性,首先想到的是抽象類而不是接口。因為抽象類的本質就是為了代碼復用,抽象類既可以…

對象的finalization機制Test1

Java語言提供了對象終止(finalization)機制來允許開發人員自定義對象被銷毀之前的處理邏輯。當垃圾回收器發現沒有引用指向一個對象時,通常接下來要做的就是垃圾回收,即清除該對象,而finalization機制使得在清除此對象之前,總會先…

RJ45 連接器(水晶頭)的引腳定義

RJ45連接器核心定義 【】物理結構 8個金屬觸點(Pin 1至Pin 8)的透明塑料插頭,帶塑料卡榫。 引腳編號規則 卡榫朝下,金屬觸點面向自己時: 最左側為 Pin 1 最右側為 Pin 8 順序:Pin 1 → Pin 2 → Pin 3 → P…

小架構step系列08:logback.xml的配置

1 概述 logback.xml配置文件的詳細配置,很多地方都說得比較細,本文主要從幾個重點來看一下原理,了解原理能夠幫助確定哪些應該配置,以及如何配置。 logback.xml是為打印日志服務的,打印的內容一般打印到控制臺(Conso…

STM32中SPI協議詳解

前言 在嵌入式系統中,設備間的數據傳輸協議多種多樣,SPI(Serial Peripheral Interface,串行外設接口)憑借其高速、全雙工、易用性等特點,成為連接STM32與高速外設(如OLED屏、Flash芯片、AD轉換器…

TypeScript 接口全解析:從基礎到高級應用

TypeScript 接口全解析:從基礎到高級應用在 TypeScript 中,接口是定義數據結構和行為規范的強大工具,它能夠顯著提升代碼的可讀性、可維護性和類型安全性。本文將全面講解 TypeScript 接口的相關知識點,從基礎語法到高級特性&…

主存(DRAM)是什么?

主存(DRAM)是什么? 主存(DRAM)詳解 主存(Main Memory) 通常由 DRAM(Dynamic Random Access Memory,動態隨機存取存儲器) 構成,是計算機系統中用于…

Python 機器學習核心入門與實戰進階 Day 6 - 模型保存與加載(joblib / pickle)

? 今日目標 掌握如何將訓練好的模型持久化保存到文件熟悉兩種主流保存方式:joblib 和 pickle加載模型并應用于新數據預測實現完整的“訓練 → 保存 → 加載 → 預測”流程為后續部署做準備(如 Flask、FastAPI)🧰 一、模型保存工具…

【SigNoz部署安裝】Ubuntu環境部署SigNoz:Docker容器化監控的全流程指南

文章目錄前言1.關于SigNoz2.本地部署SigNoz3.SigNoz簡單使用4. 安裝內網穿透5.配置SigNoz公網地址6. 配置固定公網地址前言 在分布式架構主導的現代運維體系中,系統性能監控正面臨范式變革的關鍵轉折。當微服務架構遭遇服務雪崩、無服務器架構出現冷啟動延遲等復雜…

NV298NV312美光固態閃存NW639NW640

美光固態閃存技術全景解析:從NV298到NW640的深度探索近年來,美光科技憑借其在3D NAND閃存技術上的持續突破,推出了多款備受市場關注的固態硬盤產品。本文將從技術評測、產品對比、市場趨勢、用戶反饋及應用場景等多個維度,深入剖析…

2025.07.04【服務器】|使用萬兆網卡提升服務器間互聯速度,實現快速數據傳輸

文章目錄1. **萬兆網卡概述**2. **為什么選擇萬兆網卡**3. **萬兆網卡配置與安裝**3.1 **安裝網卡**3.2 **安裝驅動程序**3.3 **檢查網卡狀態**4. **配置網絡接口**4.1 **Linux 系統配置**4.2 **Windows 系統配置**5. **優化性能**5.1 **使用多線程傳輸**5.2 **開啟 TCP/UDP 窗…

光伏發電量精準估算,提升投資效益

在光伏產業規模化發展進程中,準確估算光伏發電量是提升項目投資效益的關鍵環節。科學的發電量預測不僅能為項目可行性研究提供依據,更能在電站全生命周期內優化運營策略,實現投資回報最大化。基于多維度數據整合與智能算法構建的精準預測體系…

Linux的互斥鎖、Linux的POSIX信號量(二值、計數)、RTOS的二值信號量

鎖和信號量最大的區別就是:鎖嚴格要求 “誰占用誰釋放”,而信號量允許 “一個任務 / 線程釋放,另一個任務 / 線程獲取”。 特性互斥鎖(Mutex)POSIX 信號量(Semaphore)初始狀態初始為 “鎖定”(PTHREAD_MUTEX_INITIALIZER),需顯式獲取(pthread_mutex_lock)。初始值可…

基于Java+SpringBoot 協同過濾算法私人診所管理系統

源碼編號:S607源碼名稱:基于SpringBoot5的協同過濾算法的私人診所管理系統用戶類型:雙角色,患者、醫生、管理員數據庫表數量:15 張表主要技術:Java、Vue、ElementUl 、SpringBoot、Maven運行環境&#xff1…

什么是DINO?

DINO 是一個由 Meta AI (當時的 Facebook AI) 在 2021 年提出的自監督學習框架,其全稱是 “self-DIstillation with NO labels”,直譯為“無標簽的自我蒸餾”。這個名字精準地概括了它的核心思想。 DINO 的出現是一個里程碑,因為它首次有力地…

如何在 Android Framework層面控制高通(Qualcomm)芯片的 CPU 和 GPU。

如何在 Android Framework層面控制高通(Qualcomm)芯片的 CPU 和 GPU。 參考:https://blog.csdn.net/YoungHong1992/article/details/117047839?utm_source%20%20uc_fansmsg 作為一名 Framework 開發者,您擁有系統級的權限&#…

程序員在線接單

十年Java全棧工程師在線接單Java程序代做,兼職接單,系統代做,二次開發,網站開發部署,項目合作,商業項目承包 全棧開發,支持定制各種管理系統、小程序 商用或個人使用等項目都接 服務二: Java調試…