Python Day23 學習

繼續SHAP圖繪制的學習

1. SHAP特征重要性條形圖

特征重要性條形圖(Feature Importance Bar Plot)是 SHAP 提供的一種全局解釋工具,用于展示模型中各個特征對預測結果的重要性。以下是詳細解釋:

圖的含義
- 橫軸:表示特征的重要性,通常是特征的 SHAP 值的平均絕對值(`mean(|SHAP value|)`)。
? - SHAP 值的絕對值越大,說明該特征對模型預測的影響越大。
? - 通過取絕對值,可以忽略正負方向,只關注特征對預測結果的貢獻大小。
- 縱軸:表示特征名稱,按重要性從高到低排序。
? - 排在頂部的特征對模型預測的整體影響最大。

代碼實現:

# --- 1. SHAP 特征重要性條形圖 (Summary Plot - Bar) ---
print("--- 1. SHAP 特征重要性條形圖 ---")
shap.summary_plot(shap_values[:, :, 0], X_test, plot_type="bar",show=False)  #  這里的show=False表示不直接顯示圖形,這樣可以繼續用plt來修改元素,不然就直接輸出了
plt.title("SHAP Feature Importance (Bar Plot)")
plt.show()

對以下部分代碼再進行理解:

shap_values[:, :, 0]

生成圖像:

2. SHAP特征重要性蜂巢圖

特征重要性蜂巢圖(Feature Importance Violin Plot)是 SHAP 提供的一種全局解釋工具,用于展示每個特征對模型預測的影響分布情況。以下是詳細介紹:


圖的含義

  • 橫軸SHAP 值,表示特征對模型預測的影響大小和方向

    • 正值:該特征對預測結果有正向影響(推動預測值增大)。
    • 負值:該特征對預測結果有負向影響(推動預測值減小)。
  • 縱軸特征名稱,按重要性從高到低排序。

    • 排在頂部的特征對模型預測的整體影響最大。
  • 顏色通常表示特征值的大小(如紅色表示特征值較大,藍色表示特征值較小)。

  • 形狀(蜂巢/小提琴形狀)表示 SHAP 值的分布。

    • 寬度:表示該特征的 SHAP 值在某個范圍內的密度(樣本數量)。
    • 寬度越大,說明更多樣本的 SHAP 值集中在該范圍。

圖的作用

  • 全局解釋:蜂巢圖展示了每個特征對模型預測的影響分布,幫助我們理解特征的重要性和影響方向。
  • 特征與預測的關系
    • 通過顏色和 SHAP 值的分布,可以直觀地觀察特征值大小與預測結果之間的關系。
    • 例如,紅色(特征值大)集中在正 SHAP 值區域,說明特征值越大,對預測結果的正向影響越大。
  • 異常值檢測:如果某些特征的 SHAP 值分布異常(如極端值),可能需要進一步檢查數據或模型。

特征重要性蜂巢圖是 SHAP 的全局解釋工具,通過展示每個特征的 SHAP 值分布,幫助我們理解特征對模型預測的影響大小、方向和分布情況。它比條形圖提供了更豐富的信息,尤其適合分析特征值與預測結果之間的關系。

代碼實現:

# --- 2. SHAP 特征重要性蜂巢圖 (Summary Plot - Violin) ---
print("--- 2. SHAP 特征重要性蜂巢圖 ---")
shap.summary_plot(shap_values[:, :, 0], X_test,plot_type="violin",show=False,max_display=10) # 這里的show=False表示不直接顯示圖形,這樣可以繼續用plt來修改元素,不然就直接輸出了
plt.title("SHAP Feature Importance (Violin Plot)")
plt.show()
# 注意下上面幾個參數,plot_type可以是bar和violin,max_display表示顯示前多少個特征。

生成圖像:

今日學習到這里,明日自己練習一下SHAP圖的繪制,再進行新內容的學習。繼續加油!!!

@浙大疏錦行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79643.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79643.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79643.shtml

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

相關文章

.NET 8 + Angular WebSocket 高并發性能優化

.NET 8 Angular WebSocket 高并發性能優化。 .NET 8 WebSocket 高并發性能優化 WebSocket 是一種全雙工通信協議,允許客戶端和服務端之間保持持久連接。在高并發場景下,優化 WebSocket 的性能至關重要。以下是針對 .NET 8 中 WebSocket 高并發性能優化…

Ubuntu 22.04.5 LTS 基于 kubesphere 安裝 cube studio

Ubuntu 22.04.5 LTS 基于 kubesphere 安裝 cube studio 前置條件 已經成功安裝 kubesphere v4.3.1 參考教程: https://github.com/data-infra/cube-studio/wiki/%E5%9C%A8-kubesphere-%E4%B8%8A%E6%90%AD%E5%BB%BA-cube-studio 1. 安裝基礎依賴 # ubuntu安裝基礎依賴 apt insta…

centos 7 安裝 java 運行環境

centos 7 安裝 java 運行環境 java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)java -version java version "1.8.0_144" Java(TM) …

Linux系統管理與編程20:Apache

蘭生幽谷,不為莫服而不芳; 君子行義,不為莫知而止休。 做好網絡和yum配置,用前面dns規劃的www的IP進行。 #!/bin/bash #----------------------------------------------------------- # File Name: myWeb.sh # Version: 1.0 # …

.NET 在鴻蒙系統上的適配現狀

目錄 .NET 在鴻蒙系統上的適配現狀 鴻蒙系統對虛擬機的限制與.NET的適配挑戰 NativeAOT 在鴻蒙系統中的適配原理與實現方式 已知問題與解決方案:鴻蒙系統中的 syscall 限制 鴻蒙系統適配中的技術難點與解決方案 跨平臺編譯的挑戰與應對策略 依賴庫管理與兼容…

kotlin JvmName注解的作用和用途

1. JvmName 注解的作用 JvmName 是 Kotlin 提供的一個注解,用于在編譯為 Java 字節碼時自定義生成的類名或方法名。 作用對象: 文件級別(整個 .kt 文件)函數、屬性、類等成員 主要用途: 控制 Kotlin 編譯后生成的 JV…

樹莓派4 yolo 11l.pt性能優化后的版本

樹莓派4 使用 Picamera2 拍攝圖像,然后通過 YOLO11l.pt 進行目標檢測,并在實時視頻流中顯示結果。但當前的代碼在運行時可能會比較卡頓,主要原因包括: picam2.capture_array() 是一個較慢的操作;YOLO 推理可能耗時較長…

Docker私有倉庫實戰:官方registry鏡像實戰應用

抱歉抱歉,離職后反而更忙了,拖了好久,從4月拖到現在,在學習企業級方案Harbor之前,我們先學習下官方方案registry,話不多說,詳情見下文。 注意:下文省略了基本認證 TLS加密&#xff…

MySQL 安全架構:從滲透測試到合規審計

MySQL 安全架構:從滲透測試到合規審計 一、數據庫安全的時代挑戰與核心需求 在數據成為企業核心資產的今天,MySQL 面臨的安全威脅日益復雜。據統計,2024 年全球數據庫泄露事件中,關系型數據庫占比高達 68%,其中 MySQ…

【基礎復習筆記】計算機視覺

目錄 一、計算機視覺基礎 1. 卷積神經網絡原理 2. 目標檢測系列 二、算法與模型實現 1. 在PyTorch/TensorFlow中實現自定義損失函數或網絡層的步驟是什么? 2. 如何設計一個輕量級模型用于移動端的人臉識別? 3. 描述使用過的一種注意力機制&#…

Django 項目的 models 目錄中,__init__.py 文件的作用

在 Django 項目的models/init.py文件中,這些導入語句的主要作用是將各個模型類從不同的模塊中導入到models包的命名空間中。這樣做有以下幾個目的: 簡化導入路徑 當你需要在項目的其他地方使用這些模型時,可以直接從models包導入&#xff0c…

實現一個簡單的 TCP 客戶端/服務器

注意: TCP 三次握手建立連接建立連接后,TCP 提供全雙工的通信服務,也就是在同一個連接中,通信雙方 可以在同一時刻同時寫數據,相對的概念叫做半雙工,同一個連接的同一時刻,只能由一方來寫數據T…

專業課復習筆記 9

前言 學爽了。 為什么哈希函數的空間復雜度是 O(N) 我們實際使用的電話號碼的數目是 N &#xff0c;理論上至多有 R 個電話號碼&#xff0c;桶數組 bucket array 的容量是 M &#xff0c;滿足條件 N < M < < R N<M<<R N<M<<R&#xff0c;因為動…

【論文閱讀27】-TCN–BiLSTM -滑坡預測

《A Landslide Displacement Prediction Model Based on the ICEEMDAN Method and the TCN–BiLSTM Combined Neural Network》 發表于 Water 期刊&#xff0c;2023年。 &#x1f4cc; 主要內容概述 這篇論文提出了一種滑坡位移預測模型&#xff0c;結合了&#xff1a; ICEEM…

8b10b編解碼仿真

一、基本概念 8B/10B編碼&#xff08;8-bit to 10-bit encoding&#xff09;是一種將8位數據&#xff08;包括數據字符和控制字符&#xff09;轉換為10位符號&#xff08;Symbol&#xff09;的編碼技術&#xff0c;由IBM工程師Al Widmer和Peter Franaszek于1983年提出。其核心思…

23龍信服務器wp

中規中矩的一套服務器&#xff0c;比較簡單 1.服務器系統的版本號是___。&#xff08;格式&#xff1a;1.1.1111&#xff09; 2.網站數據庫的版本號是___。&#xff08;格式&#xff1a;1.1.1111&#xff09; 3.寶塔面板的“超時”時間是___分鐘。&#xff08;格式&#xff1a;…

Redis 存儲原理與數據模型(三)

目錄 存儲結構 存儲轉換 數據組織 hash 沖突 負載因子 擴容 縮容 漸進式rehash Redis 線程模型 單線程命令處理機制 為什么Redis 命令的單線程快 機制 優化 柔性數組 Redis reactor_io 多線程網絡模型 存儲結構 key-value鍵值對通過 hash 的方式存儲到數組中value 主要…

langchain4j中使用milvus向量數據庫做RAG增加索引

安裝milvus向量數據庫 官方網址 https://milvus.io/zh 使用docker安裝milvus mkdir -p /data/docker/milvus cd /data/docker/milvus wget https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh#在docker中啟動milvus sh standalone_emb…

UE5.3 C++ 房屋管理系統(一)

一.框架思路 1.如何加載。房屋管理&#xff0c;既然管理。就存在動態加載&#xff0c;和靜態加載的考慮。如果是靜態加載&#xff0c;就是在編輯器情況下放置&#xff0c;但這樣方便了擺放&#xff0c;但管理就需要在開始是將所有的房屋找到加到管理者里。你無法決定拖入場景的…

4.1【LLaMA-Factory 實戰】醫療領域大模型:從數據到部署的全流程實踐

【LLaMA-Factory實戰】醫療領域大模型&#xff1a;從數據到部署的全流程實踐 一、引言 在醫療AI領域&#xff0c;構建專業的疾病診斷助手需要解決數據稀缺、知識專業性強、安全合規等多重挑戰。本文基于LLaMA-Factory框架&#xff0c;詳細介紹如何從0到1打造一個垂直領域的醫…