데이터 강 차원 - 주성 분 분석, 인자 분석, 선형 판별 분석

8380 단어
데이터 의 차원 을 낮 추 는 것 은 데이터 의 차원 을 낮 추 는 것 이 고 두 가지 방식 이 있다.
1. 하 나 는 특징 선택 이다. 기 존의 차원 의 일부분 을 직접 선택 하여 후속 적 인 계산 과 모델 링 과정 에 참여 하고 선택 한 차원 으로 모든 차원 을 대체 하 며 전체 과정 에 새로운 차원 이 생기 지 않 는 다.
방법:
(1) 경험 법: 업무 경험 에 따라 선택
(2) 추산 법: 다양한 차원 에서 계산 에 참여 하 는 것 을 계속 테스트 하고 결 과 를 통 해 반복 적 으로 검증 하고 조정 하 며 최종 적 으로 가장 좋 은 특징 방안 을 찾 습 니 다.
(3) 통계 분석 방법: 상관 성 분석 을 통 해 서로 다른 차원 간 의 선형 상관 성 을 분석 하고 상관 성 이 높 은 차원 에서 인공 적 으로 제거 하거나 선별 한다.서로 다른 차원 간 의 상호 정 보 를 계산 하여 비교적 높 은 상호 정 보 를 가 진 특징 집 을 찾 은 다음 에 그 중의 한 특징 을 제거 하거나 남긴다.
(4) 기계 학습: 기계 학습 알고리즘 을 통 해 서로 다른 특징의 특징 값 이나 가중치 를 얻 은 다음 에 권 재 에 따라 비교적 큰 특징 을 선택 하고 예 를 들 어 결정 트 리 로 서로 다른 변수의 중요 도 를 얻 을 수 있다.
2. 다른 하 나 는 특징 추출 이다. 일정한 수학 변환 방법 에 따라 고 차원 공간의 데이터 점 을 저 차원 공간 에 투사 한 다음 에 매 핑 된 변수 특징 을 이용 하여 원래 의 전체적인 특징 을 나타 낸다.
방법: 상용 알고리즘 은 독립 성분 분석 (ICA), 주성 분분 석 (PCA), 인자 분석 (FA), 선형 판별 분석 (LDA), 국부 선형 삽입 (LLE), 핵 주성 분분 석 (Kernel PCA) 등 이 있다
 
주성 분 분석 (PCA):
주어진 관련 변수 (차원) 를 선형 변환 을 통 해 다른 그룹 과 관련 이 없 는 변수 로 변환 합 니 다. 이 새로운 변 수 는 분산 순서에 따라 정렬 합 니 다.첫 번 째 변 수 는 가장 큰 방 차 를 가지 고 첫 번 째 주성 분 이 라 고 부 르 고 두 번 째 변수의 방 차 가 크 며 두 번 째 주성 분 이 라 고 부른다.
주성 분 분석 기본 절차:
(1) 원시 d 차원 데이터 에 대해 표준화 처리
(2) 구조 견본 의 협 방 차 행렬
(3) 협 방 차 행렬 의 특징 값 과 해당 하 는 특징 벡터 를 계산한다.
(4) 앞의 k 개 최대 특징 값 과 대응 하 는 특징 벡터 를 선택 하 십시오. 그 중에서 k 는 새로운 특징 공간의 차원 (k < = d) 입 니 다.
(5) 앞의 k 개 특징 벡터 를 통 해 매 핑 매트릭스 W 구축
(6) 매 핑 매트릭스 W 를 통 해 d 차원 의 입력 데이터 세트 X 를 새로운 k 차원 특징 서브 공간 으로 변환
 
#   
import
pandas as pd import numpy as np from sklearn.decomposition import PCA from sklearn import datasets

# iris
=datasets.load_iris() # x=iris.data print(x[:10])
[[ 5.1  3.5  1.4  0.2]
 [ 4.9  3.   1.4  0.2]
 [ 4.7  3.2  1.3  0.2]
 [ 4.6  3.1  1.5  0.2]
 [ 5.   3.6  1.4  0.2]
 [ 5.4  3.9  1.7  0.4]
 [ 4.6  3.4  1.4  0.3]
 [ 5.   3.4  1.5  0.2]
 [ 4.4  2.9  1.4  0.2]
 [ 4.9  3.1  1.5  0.1]]

 
#    
pca=PCA(n_components=2)   #  PCA    ,n_components         
pca.fit(x)   #       
x_r=pca.transform(x)   #          
print(x_r[:10])

[[-2.68420713  0.32660731]
 [-2.71539062 -0.16955685]
 [-2.88981954 -0.13734561]
 [-2.7464372  -0.31112432]
 [-2.72859298  0.33392456]
 [-2.27989736  0.74778271]
 [-2.82089068 -0.08210451]
 [-2.62648199  0.17040535]
 [-2.88795857 -0.57079803]
 [-2.67384469 -0.1066917 ]]

 
#         
components=pca.components_    #         
var=pca.explained_variance_    #            
var_ratio=pca.explained_variance_ratio_   #              
print('components',components)
print('variance',var)
print('variance ratio',var_ratio)
components [[ 0.36158968 -0.08226889  0.85657211  0.35884393]
 [ 0.65653988  0.72971237 -0.1757674  -0.07470647]]
variance [ 4.22484077  0.24224357]
variance ratio [ 0.92461621  0.05301557]

 상기 수출 결과 에서 주성 분 의 분산 비례 는 주성 분 수량 을 선택 하 는 관건 이 고 주성 분 의 분산 비례 가 70% 이상 이면 이 주성 분 을 선택 하여 후속 모델 계산 에 참여 할 수 있다.
 
 
인자 분석 (FA):
변수 에서 공통성 인 자 를 추출 하 다.
 인자 분석 은 기 존의 변수 간 에 비교적 강 한 상관 성 을 가 져 야 한다. 그렇지 않 으 면 인자 분석 은 변수 간 의 공통성 특징 을 추출 할 수 없다. 만약 에 관련 계수 가 0.3 보다 적 으 면 변수 간 의 공선 성 이 비교적 작고 인자 분석 에 적합 하지 않다.인자 분석 은 인자 와 원 변수의 관 계 를 얻 기 때문에 인 자 를 해석 할 수 있다.
 
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.decomposition import FactorAnalysis

iris=datasets.load_iris()
x=iris.data

fa=FactorAnalysis(n_components=3)  #  3        
fa.fit(x)
tran_x=fa.transform(x)
print(tran_x[:10])   #     

[[ -1.31686745e+00   5.97520018e-01   1.11217811e-03]
 [ -1.32710651e+00  -3.28650685e-01  -3.88642995e-01]
 [ -1.39619171e+00  -2.84417674e-01   1.31593688e-01]
 [ -1.33067991e+00  -5.98068260e-01   1.15421214e-03]
 [ -1.33261365e+00   6.06424839e-01   2.31749197e-01]
 [ -1.11358590e+00   1.37362223e+00   5.32582144e-01]
 [ -1.34512235e+00  -1.98028671e-01   6.99463537e-01]
 [ -1.28894846e+00   3.10292800e-01  -7.03646521e-02]
 [ -1.38762034e+00  -1.09325259e+00   3.50884895e-02]
 [ -1.32480883e+00  -1.89272934e-01  -6.00649914e-01]]

 
 
선형 판별 분석 (LDA):
선형 판별 은 고 차원 의 모델 샘플 을 가장 좋 은 감별 벡터 공간 에 투영 시 켜 분류 정보 추출 과 특징 공간 차원 의 효 과 를 얻 도록 한다. 투영 후 모델 샘플 은 새로운 서브 공간 에서 가장 큰 유형 간 거리 와 가장 작은 유형 내 거 리 를 가진다. 즉, 모델 은 이 공간 에서 가장 좋 은 분리 성 을 가진다.선형 판별 은 이미 알 고 있 는 유형의 '훈련 샘플' 을 통 해 판별 준칙 을 구축 하고 예측 변 수 를 통 해 알 수 없 는 유형의 데 이 터 를 분류 한다.
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.lda import LDA

iris=datasets.load_iris()
x=iris.data
y=iris.target
print(x[:5],y[:5])

lda=LDA()
lda.fit(x,y)
x_r=lda.transform(x)
print(x_r[:5])

 
 
 
참고:
http://www.dataivy.cn/blog/%E5%9B%A0%E5%AD%90%E5%88%86%E6%9E%90factor-analysis/
다음으로 전송:https://www.cnblogs.com/niniya/p/8799397.html

좋은 웹페이지 즐겨찾기