美文网首页
[非監督]PCA(降維)

[非監督]PCA(降維)

作者: RJ阿杰 | 来源:发表于2018-11-29 11:25 被阅读0次

Dimension Reduction(降維)

有些時候高維的空間的資料可以以低維空間來表示。

PCA主成分分析(Principal Component Analysis)

基本概念

3個向量正交

再做PCA時需要先做Standardization,因為特徵的單位差異太大會對運算造成影響。
假設我們有一組數據,有3個特徵x_1,x_2,x_3分別是生命、攻擊、防禦,共有N個樣本(x_1^1、x_1^2...x_1^Nx_2^1、x_2^2...x_2^Nx_3^1、x_3^2...x_3^N)。
我們先看攻擊x_2跟防禦x_3數據分佈如下:

我們知道x,w向量,xw上的投影為z_1,我們要找一個向量w^1能使z_1的變異數Var(z_1)最大,w^1的長度必須等於1。如此我們會得到一個z_1將3維特徵降為1維。
若要降為2維則再求w^2w^2的長度也必須等於1,且要使w^1 \cdot w^2=0,兩個向量互相正交,如此我們會再得到一個z_2


w^1 = \begin{pmatrix} w^1_1&w^1_2&w^1_3 \end{pmatrix},shape= 3
W = \begin{pmatrix} w^1 \\ w^2 \end{pmatrix},shape= 2 \times3
x = \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix},shape= 3 \times N
z=Wx = \begin{pmatrix} z_1 \\ z_2 \end{pmatrix},shape= 2 \times N


3個向量正交

協方差、共變異數(cov)

協方差
cov(x_1,x_2)=\frac{ Σ(x^i_1 - {x_1}_{avg})(x^i_2 - {x_2}_{avg}) }{N-1} ,(x=x^1,x^2,x^3....x^i;y=y^1,y^2,y^3,...y^i)
x的cov matrix(協方差矩陣):
cov(x)=S=\begin{pmatrix} cov(x_1,x_1)&cov(x_1,x_2)&cov(x_1,x_3) \\ cov(x_2,x_1)&cov(x_2,x_2)&cov(x_2,x_3) \\ cov(x_3,x_1)&cov(x_3,x_2)&cov(x_3,x_3) \end{pmatrix},shape= 3 \times 3

PCA運算

我們要求max Var(z_1),可以經過以下推導:

S是半正定的矩陣(他的eigenvalues都是非負的) ,solution w^1為對應max\ eigenvaluecov(x)eigenvectorw^2為對應Second\ largest\ eigenvaluecov(x)eigenvector
線性代數--解eigen
將式子轉成g(w^1)=Var(z_1) - \alpha(constraint1) - \beta(constraint2),然後對w各維度的向量做偏微分再整合成eigen形式即可求w^1

實作

數據降維

  • 資料處理
    資料處理相關預備知識
    這是去kaggle抓的pokemon數據集,網址
    我們為了簡化先把部分資料移除,剩下連續型數據資料。
  • 轉成numpy矩陣
  • PCA計算
    先做特徵縮放,然後求cov(x)跟eigenvalue跟eigenvextor,然後eigenvextor依對應的eigenvalue大小順序由大到小排序,最後取出前k個eigenvextor與x內積求得z。這裡是x^T \cdot W^T=z^T
  • 結果(6維轉4維)

影像降維

將每張image展開,一張 image為一個特徵,但平均值是每點pixel的平均。
gist程式連結

PCA的特性

PCA是非監督式的,不考慮到label,可能會造成不同label重疊再一起,而無法分辨,這時可以考慮用LDA,LDA是監督式的,但它們沒辦法做非線性的降維,這時可以用autoencoder,另外還有t-SNE。

由PCA觀點看NN(神經網絡)

參考李宏毅老師ML課程

相关文章

  • [非監督]PCA(降維)

    Dimension Reduction(降維) 有些時候高維的空間的資料可以以低維空間來表示。 PCA主成分分析(...

  • [非監督]t-SNE降維

    Manifold learning Manifold的概念是低維空間的數據被塞在高維空間中,我們的目的就是將X(高...

  • [監督式、非監督]KNN、K-mean

    KNN(K Nearest Neighbor) k鄰近算法可以算是一種監督式學習算法,從部分已知的資料來推測未知的...

  • [非監督]Word Embedding

    簡介 假設我們有5個類別,我們做one-hot-encoder變成5維的數據,我們可以用Word Embeddin...

  • 朋友,說好的日更呢

    那天朋友說,決定日更請監督。而我回覆說,寫就對了,無需監督。因為我也知道,鞭長莫及。監督有用嗎?並沒有。 這是第二...

  • PCA

    PCA降维 一、算法原理 降维算法 还原算法 二、算法实现 三、scikit-learn PCA 四、PCA降噪 ...

  • 降维——PCA、LDA

    一、 PCA PCA 属于一种线性、非监督、全局的降维算法,旨在找到数据的主成分,并利用这些主成分表征原始数据,从...

  • 【R图千言】主成分分析之3D绘图

    主成分分析 (PCA, principal component analysis)是一种数学降维方法。 PCA降维...

  • numpy实现鸢尾花数据集PCA降维

    PCA降维过程 在前面的一篇博客中我已经从数学角度解释了PCA降维的原理,我们从中也可以得到PCA降维的过程1)将...

  • PCA降维

    当数据特征较多时,基本有两种方法:1 PCA降维2 Feature Selection(特征选择) PCA降维 <...

网友评论

      本文标题:[非監督]PCA(降維)

      本文链接:https://www.haomeiwen.com/subject/qwuxcqtx.html