首頁 後端開發 Python教學 Python中的主成分分析實例

Python中的主成分分析實例

Jun 10, 2023 am 08:19 AM
數據分析 Python直式程式設計 主成分分析 (pca)

Python中的主成分分析實例

主成分分析(Principal Component Analysis,PCA)是一種常用於資料降維的方法,可以將高維度資料降維至低維度,保留盡可能多的數據變異資訊。 Python提供了許多實作PCA的函式庫和工具,本文就透過一個實例來介紹如何使用Python中的sklearn函式庫實作PCA。

首先,我們需要準備一個資料集。本文將使用Iris資料集,該資料集包含150個樣本數據,每個樣本都有4個特徵值(花萼的長度和寬度、花瓣的長度和寬度),以及一個標籤(鳶尾花的類型)。我們的目標是將這4個特徵進行降維,找到最重要的主成分。

首先,我們需要導入必要的函式庫和資料集。

from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

iris = load_iris()
X = iris.data
y = iris.target
登入後複製

現在我們可以建立一個PCA物件並應用它。

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
登入後複製

這裡的PCA物件設定n_components=2,表示我們只想在二維平面上展示我們處理後的資料。我們將fit_transform應用於原始資料X,取得處理後的資料集X_pca。

現在我們可以繪製結果圖。

plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.show()
登入後複製

在這個圖中,我們可以看到Iris資料集在降維後的二維空間中的分佈。每個點都表示一個鳶尾花的樣本,顏色表示鳶尾花的類型。

現在讓我們來看看主成分應該是什麼。

print(pca.components_)
登入後複製

這會輸出兩個向量,分別稱為「成分1」和「成分2」。

[[ 0.36158968 -0.08226889 0.85657211 0.35884393]
[-0.65653988 -0.72971237 0.1757674 0.1757674 0.07]。換句話說,我們可以將主成分看作是用於線性組合原始特徵的向量。結果中的每個向量都是單位向量。

我們也可以查看每個成分解釋的資料變異量。

print(pca.explained_variance_ratio_)
登入後複製

這個輸出會顯示每個成分解釋的資料變異量的比例。

[0.92461621 0.05301557]

我們可以看到,這兩個成分總共解釋了資料中94%的變異量。這意味著我們可以非常準確地捕捉數據的特徵。

有一件事要注意,PCA會將所有特徵從原始資料中刪除。因此,如果我們需要保留某些特徵,我們需要在應用PCA之前手動刪除它們。

這就是如何使用Python中的sklearn函式庫實作PCA的實例。 PCA可應用於所有類型的數據,幫助我們從高維度數據中發現最重要的成分。如果您可以理解本文中的程式碼,你也就會有能力在您自己的資料集上應用PCA了。

以上是Python中的主成分分析實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1656
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1229
24
使用pandas讀取CSV檔案並進行資料分析 使用pandas讀取CSV檔案並進行資料分析 Jan 09, 2024 am 09:26 AM

Pandas是一個強大的資料分析工具,可以輕鬆讀取和處理各種類型的資料檔案。其中,CSV檔案是最常見且常用的資料檔案格式之一。本文將介紹如何使用Pandas讀取CSV檔案並進行資料分析,同時提供具體的程式碼範例。一、導入必要的函式庫首先,我們需要導入Pandas函式庫和其他可能需要的相關函式庫,如下所示:importpandasaspd二、讀取CSV檔使用Pan

數據分析方法介紹 數據分析方法介紹 Jan 08, 2024 am 10:22 AM

常見的資料分析方法:1、對照分析法;2、結構分析法;3、交叉分析法;4、趨勢分析法;5、因果分析法;6、關聯分析法;7、聚類分析法;8 、主成分分析法;9、散點分析法;10、矩陣分析法。詳細介紹:1、對照分析法:將兩個或兩個以上的資料進行比較分析,找出其中的差異與規律;2、結構分析法:對總體內各部分與總體進行比較分析的方法;3、交叉分析法等等。

Python中sqrt()函數用法 Python中sqrt()函數用法 Feb 21, 2024 pm 03:09 PM

Python中sqrt()函數用法及程式碼範例一、sqrt()函數的功能及介紹在Python程式設計中,sqrt()函數是math模組中的一個函數,其功能是計算一個數的平方根。平方根是指一個數與自己相乘等於這個數的平方,即x*x=n,則x就是n的平方根。程式中可以使用sqrt()函數來實現對平方根的計算。二、sqrt()函數的使用方法在Python中,sq

11個基本分佈,資料科學家95%的時間都在使用 11個基本分佈,資料科學家95%的時間都在使用 Dec 15, 2023 am 08:21 AM

繼上次盤點《資料科學家95%的時間都在使用的11個基本圖表》之後,今天將為大家帶來資料科學家95%的時間都在使用的11個基本分佈。掌握這些分佈,有助於我們更深入地理解數據的本質,並在數據分析和決策過程中做出更準確的推論和預測。 1.常態分佈常態分佈(NormalDistribution),也被稱為高斯分佈(GaussianDistribution),是一種連續型機率分佈。它具有一個對稱的鐘形曲線,以平均值(μ)為中心,標準差(σ)為寬度。常態分佈在統計學、機率論、工程學等多個領域具有重要的應用價值。

如何在Python中進行影像處理與識別 如何在Python中進行影像處理與識別 Oct 20, 2023 pm 12:10 PM

如何在Python中進行影像處理和識別摘要:現代技術使得影像處理和識別在許多領域中成為了一個重要的工具。 Python作為一種易於學習和使用的程式語言,具有豐富的圖像處理和識別庫。本文將介紹如何使用Python進行影像處理和識別,並提供具體的程式碼範例。影像處理:影像處理是對影像進行各種操作和變換以改善影像品質、擷取影像中的資訊等。 Python中的PIL函式庫(Pi

使用Go語言進行機器學習和數據分析 使用Go語言進行機器學習和數據分析 Nov 30, 2023 am 08:44 AM

在當今智慧化的社會中,機器學習和數據分析是必不可少的工具,能夠幫助人們更好地理解和利用大量的數據。而在這些領域中,Go語言也成為了備受關注的程式語言,它的速度和效率使它成為了許多程式設計師的選擇。本文介紹如何使用Go語言進行機器學習和資料分析。一、機器學習Go語言的生態系統並不像Python和R那樣豐富,但是,隨著越來越多的人開始使用它,一些機器學習庫和框架

如何利用ECharts和php介面實現統計圖的資料分析與預測 如何利用ECharts和php介面實現統計圖的資料分析與預測 Dec 17, 2023 am 10:26 AM

如何利用ECharts和php介面實現統計圖的資料分析和預測資料分析和預測在各個領域中扮演著重要角色,它們能夠幫助我們理解資料的趨勢和模式,為未來的決策提供參考。 ECharts是一款開源的資料視覺化函式庫,它提供了豐富且靈活的圖表元件,可以透過使用php介面來實現資料的動態載入和處理。本文將介紹基於ECharts和php介面的統計圖資料分析和預測的實作方法,並提供

資料分析與機器學習的11個進階視覺化圖表介紹 資料分析與機器學習的11個進階視覺化圖表介紹 Oct 25, 2023 am 08:13 AM

視覺化是一種強大的工具,用於以直觀和可理解的方式傳達複雜的數據模式和關係。它們在數據分析中發揮著至關重要的作用,提供了通常難以從原始數據或傳統數位表示中辨別出來的見解。視覺化對於理解複雜的數據模式和關係至關重要,我們將介紹11個最重要且必須知道的圖表,這些圖表有助於揭示數據中的信息,使複雜數據更加可理解和有意義。 1.KSPlotKSPlot用來評估分佈差異。其核心思想是測量兩個分佈的累積分佈函數(CDF)之間的最大距離。最大距離越小,它們越有可能屬於同一分佈。所以它主要被解釋為確定分佈差異的「統

See all articles