PCA 理解及鳶尾花實踐(sklearn)

2021-09-14 04:17:00 字數 1881 閱讀 8088

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.第二...