pca:主成分分析(principal components analysis)
主要是通過對協方差矩陣進行特徵分解,以得出資料的主成分(特徵向量)與它們的權值(特徵值),它提供了一種降低資料維度的有效辦法;如果分析者在原資料中除掉最小的特徵值所對應的成分,那麼所得的低維度資料必定是最優化的(也即,這樣降低維度必定是失去訊息最少的方法)。
其數學定義為:乙個正交化線性變換,把資料變換到乙個新的座標系統中,使得這一資料的任何投影的第一大方差在第乙個座標(稱為第一主成分)上,第二大方差在第二個座標(第二主成分)上,依次類推。
總結:pca可以從資料中識別主要特徵,通過將資料座標軸旋轉到資料角度上那些最重要的方向(方差最大),然後通過特徵值分析,確定出需要保留的主成分個數,去除多餘的資訊和雜訊,從而實現資料的降維,這個特點使得pca可以處理一些特徵較多的資料,例如人臉。
計算樣本每個特徵的平均值
用每個樣本資料減去該特徵的平均值;
求協方差矩陣;
找到協方差矩陣的特徵值和特徵向量;
對特徵值和特徵向量重新排列(特徵值從大到小排列);
選取前n個特徵作為主成分
利用投影矩陣,得到降維資料
先畫個3d圖看一下
看一下資料集:(我是從本地匯入)
import pandas as pd
df = pd.read_csv(
"c:/users/nicht_sehen/desktop/iris.csv"
)df_x = df.iloc[::
,1:5
]# 本地資料集有其他東西,進行了切片
主成分分析:
**如下:
import matplotlib.pyplot as plt
from sklearn.decomposition import pca
import numpy as np
pca = pca(n_components =2)
#保留兩個
df_1 = pca.fit_transform(df_x)
ax = plt.figure(figsize=(10
,10))
index1=np.where(df_y==
'iris-setosa'
)index2=np.where(df_y==
'iris-versicolor'
)index3=np.where(df_y==
'iris-virginica'
)# labels=['setosa', 'versicolor', 'virginica']
plt.plot(df_1[index1][:
,0],df_1[index1][:
,1],
'ro'
)plt.plot(df_1[index2][:
,0],df_1[index2][:
,1],
'go'
)plt.plot(df_1[index3][:
,0],df_1[index3][:
,1],
'bo'
)
降維後:
資料降維 PCA 基於鳶尾花資料集
主成分分析pca 主成分分析 principal component analysis,pca 主成分 可以把具有相關性的高緯度變數,合成為線性無關的低緯度變數,稱為主成分。主成分能夠盡可能保留原始資料的資訊。原理 矩陣的主成分就是其協方差矩陣對應的特徵向量,按照對應的特徵值大小進行排序,最大的特徵...
PCA主成分分析處理鳶尾花資料 python
完整 import numpy as np import pandas as pd data pd.read csv c users administrator desktop iris.csv header none data np.array data data data 0 1,2 3 mea...
主成分分析 PCA 應用例項 鳶尾花資料集
對鳶尾花資料集採用主成分分析方法,使資料降維。如下圖所示為資料集的格式 資料集中前4列資料分別代表花萼長度,花萼寬度,花瓣長度,花瓣寬度,最後一列為標籤。共有150條資料。我們對此資料集利用主成分分析方法,取出資料集的前4列特徵組成矩陣x,矩陣x的維度為150 4,對其進行轉置後變為4 150.第二...