PCA降維原理和作用

2021-08-30 13:54:15 字數 1360 閱讀 3584

降維的作用

①資料在低維下更容易處理、更容易使用;

②相關特徵,特別是重要特徵更能在資料中明確的顯示出來;如果只有兩維或者三維的話,更便於視覺化展示;

③去除資料雜訊

④降低演算法開銷

降維通俗點的解釋

一些高維度的資料,比如**交易資料,為便於解釋降維作用,我們在這假設有下單數,付款數,商品類別,售價四個維度,資料量上百萬條,對於下單數和付款數,我們可以認為兩者是線性相關的,即知道下單數,我們可以得到付款數,這裡很明顯這兩個屬性維度有冗餘,去掉下單數,保留付款數,明顯能再保證原有資料分布和資訊的情況下有效簡化資料,對於後面的模型學習會縮短不少時間和空間開銷。這就是降維,當然並不是所有資料中都會有過於明顯線性相關的屬性維度,我們降維後最終的目標是各個屬性維度之間線性無關。

pca降維步驟原理*

首先既然要度量那些是否存在相關的屬性,我們就要用到協方差,在部落格相關分析中有介紹,這裡不再贅述,協方差衡量的是2維屬性間的相關性,對於n個維度的屬性,就需要協方差矩陣,其對角線為各維度的方差。

步驟:

設有m條n維資料。

1)將原始資料按列組成n行m列矩陣x

2)將x的每一行(代表乙個屬性字段)進行零均值化,即減去這一行的均值

3)求出協方差矩陣

4)求出協方差矩陣的特徵值及對應的特徵向量r

5)將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p

6)即為降維到k維後的資料

關於維數k的選擇*

使用乙個公式error=,表示壓縮後的誤差,m所有特徵的個數,然後確定乙個閾值x,比如0.01,選取乙個k,使得error < x則我們認為這個m可以接受,否則嘗試其他.

from sklearn.decomposition import pca

import numpy as np

from sklearn.preprocessing import standardscaler

x=np.array([[10001,2,55], [16020,4,11], [12008,6,33], [13131,8,22]])

# feature normalization (feature scaling)

x_scaler = standardscaler()

x = x_scaler.fit_transform(x)

# pca

pca = pca(n_components=0.9)# 保證降維後的資料保持90%的資訊

pca.fit(x)

pca.transform(x)

PCA降維原理

在之前的介紹中,一幅影象只能表示乙個物件。那麼對於w x h的灰度影象,只能表示為w x h位的向量,那麼乙個有100 100的影象就需要10000維的向量空間。對於一幅人臉而言,是否所有維的資料都是有用的呢?在矩陣論當中我們知道,矩陣可以近似的表示為乙個特徵值與特徵向量的乘積。根據這個原理,如果我...

PCA 1 降維原理

上圖為含有兩個特徵的樣本空間,資料的維度為2,可以忽視乙個不明顯的特徵,保留乙個相對差距明顯的特徵進行降維 顯然選擇特徵1效果好一點 我們也可以選擇一條更適合的直線 方差最大 把所有的點對映到這個直線上,來達到降維的目的 方差定義 var x frac sum x i bar 2 第一步 將所有樣本...

降維PCA原理個人總結

pca是一種經典的降維方法,基礎的pca是一種線性的降維,本質是線性座標變換,經典的pca目標優化解釋思路有兩種 一種是單個維度上方差最大化,另一種是採用最小二乘線性回歸的思想最小化樣本點到超平面的距離。這裡普及下協方差,方差的定義。協方差刻畫的是資料 兩個變數 的相關性。資料的方差指的是 資料樣本...