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 |