資料預處理系列 (十)用因子分析降維

2021-07-14 02:05:20 字數 1929 閱讀 8056

博主簡介:風雪夜歸子(英文名: allen),機器學習演算法攻城獅,喜愛鑽研machine learning的黑科技,對deep learning和artificial intelligence充滿興趣,經常關注kaggle資料探勘競賽平台,對資料、machine learning和artificial intelligence有興趣的各位童鞋可以一起**哦,個人csdn部落格: 

?viewmode=contents

因子分析(factor analysis)是另一種降維方法。與pca不同的是,因子分析有假設而pca沒有假設。因子分析的基本假設是有一些隱藏特徵與資料集的特徵相關。

這個主題將濃縮(boil down)樣本資料集的顯性特徵,嘗試像理解因變數一樣地理解自變數之間的隱藏特徵。

讓我們再用iris資料集來比較pca與因子分析,首先載入因子分析類:

in [3]:

from

sklearn

import

datasets

iris

=datasets

.load_iris

()from

sklearn.decomposition

import

factoranalysis

從程式設計角度看,兩種方法沒啥區別:

in [6]:

fa

=factoranalysis

(n_components=2

)iris_two_dim=fa

.fit_transform

(iris

.data

)iris_two_dim[:5

]

array([[-1.33125848,  0.55846779],

[-1.33914102, -0.00509715],

[-1.40258715, -0.307983 ],

[-1.29839497, -0.71854288],

[-1.33587575, 0.36533259]])

in [7]:

%

matplotlib inline

from

matplotlib

import

pyplot

aspltf=

plt.

figure

(figsize=(

5,5))

ax=f.

add_subplot

(111)ax

.scatter

(iris_two_dim

[:,0

],iris_two_dim

[:,1],c

=iris

.target)ax

.set_title

("factor analysis 2 components"

)

由於因子分析是一種概率性的轉換方法,我們可以通過不同的角度來觀察,例如模型觀測值的對數似然估計值,通過模型比較對數似然估計值會更好。

因子分析也有不足之處。由於你不是通過擬合模型直接**結果,擬合模型只是乙個中間步驟。這本身並非壞事,但是訓練實際模型時誤差就會產生。

因子分析與前面介紹的pca類似。但兩者有乙個不同之處。pca是通過對資料進行線性變換獲取乙個能夠解釋資料變數的主成分向量空間,這個空間中的每個主成分向量都是正交的。你可以把pca看成是

n維資料降維成 m  

維 ( 

n>m )

而因子分析的基本假設是,有

m 個重要特徵和它們的線性組合(加雜訊),能夠構成原始的n

維資料集。也就是說,你不需要指定結果變數(就是最終生成n

維),而是要指定資料模型的因子數量(

m 個因子)。

資料預處理 資料降維(主成分分析)

資料降維 在構建機器學習模型時,有時特徵是極其複雜,當特徵的維度達到幾千維時,模型訓練將會耗費大量的時間。另外,如果特徵較多,還會出現多重共線性 稀疏性的問題。因此,需要簡化屬性 去噪 去冗餘,以求取更典型的屬性,但同時又不希望不損失資料本身的意義,這時就需要對特徵進行降維。1.降維的方法 資料降維...

資料預處理系列 (十二)用截斷奇異值分解降維

博主簡介 風雪夜歸子 英文名 allen 機器學習演算法攻城獅,喜愛鑽研machine learning的黑科技,對deep learning和artificial intelligence充滿興趣,經常關注kaggle資料探勘競賽平台,對資料 machine learning和artificial...

資料處理 一 降維之主成分分析 PCA

降維目的 樣本資料為高維資料時,對資料進行降維操作,避免模型出現過擬合。1.過擬合含義 訓練集誤差小,驗證集誤差大。過擬合三種解決方案 1 增加資料集 2 正則化 3 降維。2.高維災難 具有高維度特徵的資料易導致高維災難。高維災難的幾何角度解釋 高維災難含義 高維資料分布具有稀疏性 不容易根據特徵...