無監督學習之降維

AIBigbull2050發表於2019-08-30

主成分分析(PCA)

 主成分分析(Principal Component Anal ysis,PCA)是最常用的

一種降維方法,通常用於高維資料集的探索與視覺化,還可以用作數

據壓縮和預處理等。

 PCA可以把具有相關性的高維變數合成為線性無關的低維變數,稱為

主成分。主成分能夠儘可能保留原始資料的資訊。

方差:是各個樣本和樣本均值的差的平方和的均值,用來度量一組

資料的分散程度。

協方差:用於度量兩個變數之間的線性相關性程度,若兩個變數的

協方差為0,則可認為二者線性無關。協方差矩陣則是由變數的協方差值

構成的矩陣(對稱陣)。

特徵向量:矩陣的特徵向量是描述資料集結構的非零向量,並滿足

如下公式:

A是方陣, 是特徵向量,是特徵值。

=

主成分分析

原理:矩陣的主成分就是其協方差矩陣對應的特徵向量,按照對應

的特徵值大小進行排序,最大的特徵值就是第一主成分,其次是第二主

成分,以此類推。

主成分分析-演算法過程

無監督學習之降維

程式碼實現,對花的特徵進行降維

import matplotlib.pyplot as plt

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris

data = load_iris()
y = data.target
X = data.data
pca = PCA(n_components=2)
reduced_X = pca.fit_transform(X)

red_x, red_y = [], []
blue_x, blue_y = [], []
green_x, green_y = [], []

for i in range(len(reduced_X)):
if y[i] == 0:
red_x.append(reduced_X[i][0])
red_y.append(reduced_X[i][1])
elif y[i] == 1:
blue_x.append(reduced_X[i][0])
blue_y.append(reduced_X[i][1])
else:
green_x.append(reduced_X[i][0])
green_y.append(reduced_X[i][1])

plt.scatter(red_x, red_y, c='r', marker='x')
plt.scatter(blue_x, blue_y, c='b', marker='D')
plt.scatter(green_x, green_y, c='g', marker='.')
plt.show()
無監督學習之降維

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2655580/,如需轉載,請註明出處,否則將追究法律責任。

相關文章