본문 바로가기

TIL

23.06.27 - feature extracion

feature extraction(특징 추출)의 여러 가지 방법

PCA(주성분 분석)

  • 데이터의 차원을 줄이기 위한 기법이다.
  • 원본 데이터에 선형 변환을 적용하여 새로운 좌표계로 변환한다
  • 첫 번째 좌표(첫 번째 주성분)는 최대 분산을 가정하고, 두 번째 좌표는 두 번째로 큰 분산을 가정하는 식이다.
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

LDA(선형 판별 분석)

  • 차원 축소를 위한 지도 학습 기법이다.
  • LDA 목표는 같은 클래스 데이터의 투영점은 최대한 가깝게, 다른 클래스의 투영점은 최대한 멀게 만드는 투영 방향을 찾는 것이다.
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA

lda = LDA(n_components=2)
X_lda = lda.fit_transform(X, y)

Feature Agglomeration(피처 응집)

  • 이 방법은 유사한 피처를 병합하는 방법이다.
  • 계층적 클러스터링과 비슷하지만 피처에 적용된다.
from sklearn.cluster import FeatureAgglomeration

agglo = FeatureAgglomeration(n_clusters=2)
agglo.fit(X)
X_reduced = agglo.transform(X)

ICA(독립 컴포넌트 분석)

  • 다변량 신호를 최대한 독립적인 추가 하위 컴포넌트로 분리한다.
  • 블라인드 소스 분리에 자주 사용된다.
from sklearn.decomposition import FastICA

transformer = FastICA(n_components=7, random_state=0)
X_transformed = transformer.fit_transform(X)

NMF(비음수 행렬 인수분해)

  • 행렬 V를 (일반적으로) 두 개의 행렬 W와 H로 인수분해하는 알고리즘 그룹이다.
from sklearn.decomposition import NMF

model = NMF(n_components=2, init='random', random_state=0)
W = model.fit_transform(X)
H = model. Components_

t-SNE

  • 비선형 데이터의 차원을 축소하는 방법이다.
  • 보이지 않는 데이터의 시각화를 하기 위한 도구이다.
    from sklearn.manifold import TSNE
    
    tsne = TSNE(n_components=2)
    X_tsne = tsne.fit_transform(X)
    

프로젝트의 진척이 별로 없으니 의욕이 점점 사라진다. 캐글이 어려울 거라고 생각은 했지만 나의 부족함이 많이 느껴진다. 더 열심히 공부해서 훗날 이런 쉬운 걸 어렵다고 느꼈구나 라는 수준까지 도달하고 싶다.

그리고 이번엔 팀 프로젝트지만 개인적으로 진행하고 있는데, 다음 프로젝트 땐 팀으로 수행할 수 있도록 하고 싶다. (혼자 하니 파이팅이 힘들고, 게을러진다.)

'TIL' 카테고리의 다른 글

23.07.03 - 양함수, 음함수, 함수 분류  (0) 2023.07.03
23.06.28~29 - 잘못된 방향  (0) 2023.06.29
23.06.26 - Isotonic Regression  (0) 2023.06.27
23.06.23  (0) 2023.06.24
23.06.22 - numpy.clip, numpy.bincount  (0) 2023.06.22