我正在做PCA,我對哪些原始特徵最重要感興趣。讓我來說明這一個例子:主要組件分析的最重要的原始特徵
import numpy as np
from sklearn.decomposition import PCA
X = np.array([[1,-1, -1,-1], [1,-2, -1,-1], [1,-3, -2,-1], [1,1, 1,-1], [1,2,1,-1], [1,3, 2,-0.5]])
print(X)
,輸出:
[[ 1. -1. -1. -1. ]
[ 1. -2. -1. -1. ]
[ 1. -3. -2. -1. ]
[ 1. 1. 1. -1. ]
[ 1. 2. 1. -1. ]
[ 1. 3. 2. -0.5]]
直觀地說,一個已經可以說是功能1和功能4不很重要,因爲他們的低方差。讓我們將這套PCA:
pca = PCA(n_components=2)
pca.fit_transform(X)
comps = pca.components_
輸出:
array([[ 0. , 0.8376103 , 0.54436943, 0.04550712],
[-0. , 0.54564656, -0.8297757 , -0.11722679]])
此輸出表示各兩個主成分的每個原始特徵的重要性(見this僅供參考)。換句話說,對於第一個主成分,特徵2是最重要的,然後是特徵3.對於第二個主成分,特徵3看起來最重要。
問題是,哪個功能最重要,最重要的是哪一秒?我可以使用component_
屬性嗎?或者我錯了,PCA不是做這種分析的正確方法(我應該使用特徵選擇方法)?
我們可以對特徵2的這個特徵重要性做一個測量嗎?類似0.9893 * 0.8376? – Guido
我從來沒有見過任何人以你描述的方式使用解釋的方差和加載。你正在做的是基本上通過組件的貢獻來衡量負載。這是不尋常的,但它應該工作。 – Schmuddi
既然你說這很不尋常,我對其他人對這個問題的看法非常感興趣 – Guido