主成分分析的應用之sklearn.decomposition模塊的PCA函數

主成分分析的應用之sklearn.decomposition模塊的PCA函數

一、模型建立整體步驟

二、數據

2297.86	589.62	474.74	164.19	290.91	626.21	295.20	199.03
2262.19	571.69	461.25	185.90	337.83	604.78	354.66	198.96
2303.29	589.99	516.21	236.55	403.92	730.05	438.41	225.80
2308.70	551.14	476.45	293.23	406.44	785.74	494.04	254.10
2337.65	589.28	509.82	334.05	442.50	850.15	563.72	246.51
2418.96	618.60	454.20	429.60	615.00	1065.12	594.48	164.28
2702.34	735.01	475.36	459.69	790.26	1025.99	741.60	187.81
3015.32	779.68	474.15	537.95	865.45	1200.52	903.22	196.77
3135.65	849.53	583.50	629.32	929.92	1391.11	882.41	221.85
3415.92	1038.98	615.74	705.72	976.02	1449.49	954.56	242.26

三、代碼實現(含詳細注釋)

#程序文件ex12_1.py
import numpy as np
from sklearn.decomposition import PCA
from scipy.stats import zscorea=np.loadtxt('data12_1.txt')
# scipy.stats的zscore函數對數組a中的數據進行標準化處理,并將結果賦值給變量b。
# 標準化處理是將數據轉換為以0為均值,以標準差為1的分布,
# 這樣做的目的是消除不同量綱的影響,使得數據具有可比性。
# zscore函數計算每個值與其均值的差,然后除以該數據的標準差,
# 從而得到Z分數(也稱為標準分數)。
# 參數ddof=1指定在計算標準差時使用分母N-1(其中N是數據的數量),這是統計學中的樣本標準差計算方式(無偏估計)。
# 如果ddof=0,則使用N作為分母計算標準差,這通常對應于總體標準差。
b=zscore(a, ddof=1)   #數據標準化
# 創建一個PCA實例,使用數據集b來“擬合”這個實例(即計算PCA轉換所需的參數)
md=PCA().fit(b)  #構造并擬合模型
print('特征值為:', md.explained_variance_)
print('各主成分貢獻率:', md.explained_variance_ratio_)
# .components_:這是md對象的一個屬性,它通常存儲了數據分解或降維后的結果。在PCA的上下文中,components_屬性包含了主成分的方向(或者說是“軸”),
# 這些主成分是用來解釋原始數據集方差的最大方向。每個主成分都是一個向量,向量的長度等于原始數據的特征數。
xs1=md.components_  #提出各主成分系數,每行是一個主成分
print('各主成分系數:\n',xs1)# axis=0代表沿著行的方向(即垂直方向,對列進行求和),而axis=1代表沿著列的方向(即水平方向,對行進行求和)。
# 因此,axis=1意味著會對xs1的每一行進行求和。
check=xs1.sum(axis=1,keepdims=True)  #計算各個主成分系數的和
# xs1 * np.sign(check):這個操作是逐元素的乘法。
# xs1數組中的每個元素與np.sign(check)數組中對應位置的元素相乘。這意味著:
# 如果check中的某個元素為正,xs1中對應的元素保持不變(因為乘以1)。
# 如果check中的某個元素為負,xs1中對應的元素取反(因為乘以-1)。
# 如果check中的某個元素為零,xs1中對應的元素將變為零(因為乘以0)。
xs2=xs1*np.sign(check)  #調整主成分系數,和為負時乘以-1
print('調整后的主成分系數:', xs2)

三、結果及其分析

特征值為: [6.27943341e+00 1.30599080e+00 2.74277611e-01 9.97624700e-022.31016993e-02 1.22233669e-02 4.69357480e-03 5.17066158e-04]
各主成分貢獻率: [7.84929176e-01 1.63248850e-01 3.42847014e-02 1.24703088e-022.88771241e-03 1.52792086e-03 5.86696851e-04 6.46332697e-05]
各主成分系數:[[ 0.39186166  0.38439344  0.3059243   0.39231584  0.38537825  0.389613220.38389911  0.05908768][-0.0210478   0.02214509  0.47783697 -0.08905605 -0.19878256 -0.1043221-0.11376475  0.83634169][ 0.14762176  0.39254883  0.57745685 -0.20021017 -0.15914777 -0.1347164-0.4303164  -0.47108809][ 0.47832186  0.48941314 -0.44488132 -0.27708115  0.02393188 -0.465646730.07989617  0.18222681][-0.09762149 -0.27604773  0.34873203 -0.35508891  0.52307577 -0.456434080.4158212  -0.10824944][ 0.70552867 -0.53549607  0.049896   -0.32914209 -0.14716623  0.28505603-0.02367193 -0.03426265][-0.08102349  0.10492282  0.11905975 -0.07206231 -0.68369188 -0.020605350.68706375 -0.15212634][ 0.28557308 -0.29011082  0.09180137  0.6940343  -0.15286467 -0.55886444-0.05098258 -0.07665729]]
調整后的主成分系數: [[ 0.39186166  0.38439344  0.3059243   0.39231584  0.38537825  0.389613220.38389911  0.05908768][-0.0210478   0.02214509  0.47783697 -0.08905605 -0.19878256 -0.1043221-0.11376475  0.83634169][-0.14762176 -0.39254883 -0.57745685  0.20021017  0.15914777  0.13471640.4303164   0.47108809][ 0.47832186  0.48941314 -0.44488132 -0.27708115  0.02393188 -0.465646730.07989617  0.18222681][ 0.09762149  0.27604773 -0.34873203  0.35508891 -0.52307577  0.45643408-0.4158212   0.10824944][-0.70552867  0.53549607 -0.049896    0.32914209  0.14716623 -0.285056030.02367193  0.03426265][ 0.08102349 -0.10492282 -0.11905975  0.07206231  0.68369188  0.02060535-0.68706375  0.15212634][-0.28557308  0.29011082 -0.09180137 -0.6940343   0.15286467  0.558864440.05098258  0.07665729]]

由結果可知前兩個特征值的累積量貢獻率達到了94.82%,主成分分析效果很好,因此后續直接對這兩個主成分的特征值進行詳細的分析即可。

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

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

相關文章

【Redis】List 列表

文章目錄 初識列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 內部編碼應用場景 初識列表 列表類型,用于存儲多個字符串。在操作和實現上,類似 C 的雙端隊列,支持隨機訪問(O(N)…

Android framework 中間件開發(三)

前兩篇我們講了中間件的開發和打包應用, Android framework 中間件開發(一) Android framework 中間件開發(二) 這邊我們來講一下在中間件中編寫JNI 1.新建C文件 找到frameworks\base\services\core\jni\路徑,新建一個cpp文件,文件名為com_android_server_DarkControlService.c…

深入了解linux系統—— 基礎IO(上)

文件 在之前學習C語言文件操作時,我們了解過什么是文件,這里簡單回顧一下: 文件存在磁盤中,文件有分為程序文件、數據文件;二進制文件和文本文件等。 詳細描述見文章:文件操作——C語言 文件在磁盤里&a…

Flink CDC—實時數據集成框架

Flink CDC 是一個基于流的數據集成工具,旨在為用戶提供一套功能更加全面的編程接口(API),它基于數據庫日志的 CDC(變更數據捕獲)技術實現了統一的增量和全量數據讀取。 該工具使得用戶能夠以 YAML 配置文件…

ES(ES2023/ES14)最新更新內容,及如何減少內耗

截至2023年10月,JavaScript(ECMAScript)的最新版本是 ES2023(ES14)。 ES2023 引入了許多新特性,如findLast、toSorted等,同時優化了性能。通過減少全局變量、避免內存泄漏、優化循環、減少DOM操作、使用Web Workers、懶加載、緩存、高效數據結構和代碼壓縮,可以顯著降低…

常見的 Python 環境配置問題及解決方案

1. Python 環境配置的常見問題 初學者在配置 Python 環境時,可能會遇到以下幾類問題: 1.1 不同版本的兼容性 Python 目前有兩個主要版本系列:Python 2.x 和 Python 3.x。Python 2.x 已于 2020 年 1 月 1 日停止維護,因此強烈建…

day20-線性表(鏈表II)

一、調試器 1.1 gdb(調試器) 在程序指定位置停頓 1.1.1 一般調試 gcc直接編譯生成的是發布版(Release) gcc -g //-g調式版本,(體積大,內部有源碼)(DeBug&#…

基于Spring Boot+Layui構建企業級電子招投標系統實戰指南

一、引言:重塑招投標管理新范式 在數字經濟浪潮下,傳統招投標模式面臨效率低、透明度不足、流程冗長等痛點。本文將以Spring Boot技術生態為核心,融合Mybatis持久層框架、Redis高性能緩存及Layui前端解決方案,構建一個覆蓋招標代理…

uniapp -- uCharts 儀表盤刻度顯示 0.9999999 這樣的值問題處理。

文章目錄 ??問題??解決方案??問題 在儀表盤上,23.8變成了 23.799999999999997 ??解決方案 formatter格式化問題 1:在 config-ucharts.js 或 config-echarts.js 配置對應的 formatter 方法 formatter: {yAxisDemo1: function (

git 對于已經追蹤,但沒有git add 的文件,撤回修改的方法

要撤銷對已追蹤文件的修改&#xff08;但尚未使用git add添加到暫存區&#xff09;&#xff0c;你可以使用以下幾種方法&#xff1a; 1. 使用 git restore (Git 2.23.0及更高版本) 這是較新版本Git中推薦的方式&#xff1a; # 撤銷單個文件的修改git restore <file># …

腳本語言Lua

本文來源 &#xff1a;騰訊元寶 Lua是一種輕量級、可嵌入的腳本語言&#xff0c;由巴西里約熱內盧天主教大學的Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年開發。其設計目標是嵌入應用程序中&#xff0c;提供靈活的擴展和定制功能。 主要特性…

ThingsBoard使用Cassandra部署時性能優化

1、概述 當遇到ThingsBoard設備數量特別多的時候,并且傳輸數據遙測點量特別大的時候,我們需要調整一下參數來進行優化,使其性能達到最佳的進行快速寫入。 注意:以下這些參數再系統部署的時候就需要規劃好配置,不能安裝好了再二次來進行配置。 2、Cassandra配置參數優化 …

Git Worktree 使用

新入職了一家公司&#xff0c;發現不同項目用的使用一個 git 倉庫管理。不久之后我看到這篇文章。 Git 的設計部??分是為了支持實驗。一旦你確定你的工作被安全地跟蹤&#xff0c;并且存在安全的狀態&#xff0c;以便在出現嚴重錯誤時可以恢復&#xff0c;你就不會害怕嘗試新…

維智定位 Android 定位 SDK

概述 維智 Android 定位 SDK是為 Android 移動端應用提供的一套簡單易用的定位服務接口&#xff0c;為廣大開發者提供融合定位服務。通過使用維智定位SDK&#xff0c;開發者可以輕松為應用程序實現極速、智能、精準、高效的定位功能。 重要&#xff1a;為了進一步加強對最終用…

【CSS】使用 CSS 繪制三角形

一、Border 邊框法&#xff08;最常用&#xff09; 原理&#xff1a;通過設置元素的寬高為 0&#xff0c;利用透明邊框相交形成三角形。 .triangle {width: 0;height: 0;border-left: 50px solid transparent; /* 左側邊框透明 */border-right: 50px solid transparent; /* …

RabbitMQ 快速上手:安裝配置與 HelloWorld 實踐(一)

一、引言 在當今分布式系統大行其道的技術浪潮下&#xff0c;各個服務之間的通信與協同變得愈發復雜。想象一下&#xff0c;一個電商系統在大促期間&#xff0c;訂單服務、庫存服務、支付服務、物流服務等眾多模塊需要緊密配合。如果沒有一種高效的通信機制&#xff0c;系統很容…

【deekseek】TCP Offload Engine

是的&#xff0c;TOE&#xff08;TCP Offload Engine&#xff09;通過專用硬件電路&#xff08;如ASIC或FPGA&#xff09;完整實現了TCP/IP協議棧&#xff0c;將原本由CPU軟件處理的協議計算任務完全轉移到網卡硬件中。其延遲極低的核心原因在于 硬件并行性、零拷貝架構 和 繞過…

JavaScript 的編譯與執行原理

文章目錄 前言&#x1f9e0; 一、JavaScript 編譯與執行過程1. 編譯階段&#xff08;發生在代碼執行前&#xff09;? 1.1 詞法分析&#xff08;Lexical Analysis&#xff09;? 1.2 語法分析&#xff08;Parsing&#xff09;? 1.3 語義分析與生成執行上下文 &#x1f9f0; 二…

WORD個人簡歷單頁326款模版分享下載

WORD個人簡歷模版下載&#xff1a;WORD個人簡歷模版https://pan.quark.cn/s/7e79a822c490

Android 中 顯示 PDF 文件內容(AndroidPdfViewer 庫)

PDFView 是一個用于在 Android 應用中顯示 PDF 文檔的庫。它提供了豐富的功能和靈活的配置選項&#xff0c;使得開發者能夠輕松地在應用中嵌入 PDF 閱讀器。 一、 添加依賴 在模塊的 build.gradle 文件中添加以下依賴&#xff1a; // pdfimplementation("com.github.bar…