sklearn之主成分分析pca

sklearn之主成分分析pca

scikit-learn中,CA是主成分分析的縮寫。主成分分析是一種常用的線性降維技術,可以將多維數據集降到較低的特徵維度,並保留數據集的大部分特徵信息。在sklearn中,使用PCA需要引入PCA模塊,並通過實例化一個PCA對象來使用它的方法和屬性。例如,可以使用PCA模塊的fit_transform()函數來對數據進行訓練和轉換。在轉換後,我們可以獲取轉換後的數據,以及相應的特徵向量和奇異值,以便進一步分析數據。

PCA一般的步驟:

  • 對原始數據零均值化
  • 求協方差矩陣
  • 然後對協方差矩陣求特徵向量和特徵值,這些特徵向量組成了新的特徵空間

PCA類的參數:

  • sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)
    • n_components: CA算法中要保留的主成分個數n, 即保留下來的特徵個數。
    • copy: 表示是否在運行算法時,將原始數據複製一份。若爲True,則運行PCA算法後,原始訓練數據的值不會改變;若爲False,在原始數據上進行降維計算。
    • whiten: 白化,使得每個特徵具有相同的方差。

特徵選擇原因

  1. 冗餘:部分特徵的相關度高,容易消耗計算性能
  2. 噪聲:部分特徵對預測結果有負影響

主成分分析【PCA】

  • 本質:PCA是一種分析、簡化數據集的技術

  • 目的:是數據維數壓縮,儘可能降低原數據的維數(複雜度),損失少量信息。

  • 作用:可以削減迴歸分析或者聚類分析中特徵的數量

下面是使用scikit-learn中PCA模塊的一般流程:

  1. 導入PCA模塊和需要的其他模塊
from sklearn.decomposition import PCA
import numpy as np
  1. 載入數據,將包含多維特徵的數據集存儲在一個2維numpy數組中
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
  1. 實例化PCA對象,並選擇降維後的特徵數
pca = PCA(n_components=2)
  1. 用fit_transform()方法對數據進行擬合和轉換
pca.fit_transform(data)
  1. 獲取轉換後的數據、特徵值和特徵向量
transformed_data = pca.fit_transform(data)
# 方差比例
variance_ratio = pca.explained_variance_ratio_
components = pca.components_

pca.components_是指在PCA降維過程中所得到的主成分(principal components)。

在PCA中,首先需要計算各個原始特徵之間的協方差矩陣,然後通過特徵值分解求出該矩陣的特徵向量和特徵值。PCA採用這些特徵向量作爲新的座標系,將原始數據投影到新的座標系中,得到降維後的特徵。

其中,特徵向量的數量等於原始數據的特徵數量,而主成分的數量等於希望降維到的維度數量。使用pca.components_可以獲得降維後的主成分向量。這些主成分向量是原始特徵經過降維後的代表性向量,即它們代表原始特徵中的最大方差方向。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章