선택미션
주차 | 진도 | 선택 미션 |
5주차 | chapter 06 | ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기 |
문제 풀이 전 선수 지식
주성분 분석에 관한 다음 3가지 문제를 풀기 전에 왜 주성분 분석이 필요한지 거슬러 올라가면 차원의 저주(The Curse of Dimensionality)라는 개념이 나온다. 이 개념부터 주성분 분석까지 간단하게 내용을 정리해보기로 한다.
차원의 저주(CoD)
- 일상 경험의 3차원 물리적 공간 과 같은 저차원 환경에서 발생하지 않는 고차원 공간 에서 데이터를 분석하고 정리할 때 발생하는 다양한 현상
- 데이터 마이닝에서는 특성이 너무 많은 데이터셋에서 발생하는 현상의 의미함
- 원인은 차원이 증가하면 부피가 기하급수적으로 증가하게 되는데 사용 가능한 데이터가 희박해짐, 즉 필요한 데이터의 양이 기하급수적으로 증가하기 때문임
차원의 저주에 대한 이해는 아래 영상을 보면 이해가 쉽다!
차원의 저주 해결방법
- 첫째는, 고차원의 공간을 대표할 수 있을만큼 데이터수를 충분히 늘리는 것, 그러나 데이터가 전체 공간에 균일하게 퍼져있다고 가정하더라도 같은 수준의 데이터 밀도를 유지하기 위해 필요한 데이터는 제곱수로 증가하기 때문에 현실적으로 불가능함
- 둘째로, 데이터에 존재하는 모든 특징을 확인하는 대신 일정 개수의 변수 차원으로 데이터를 분류하는 것, 이를 '차원축소'라고 함
- 차원축소는 크게 Feature Selection과 Feature Extraction으로 나눠짐
차원 축소의 2 가지 방법
- 선형 차원 축소방법인 'PCA'와 비선형 차원 축소방법인 't-SNE'가 존재
PCA
- 고차원 데이터의 서로 연관이 있는 변수들의 선형 결합을 통해 저차원의 서로 연관없는 변수들을 변환하는 차원 축소 방법
- 장점: 선형 차원 축소기법으로 데이터의 분산을 최대한 보존하면서 차원 축소, 계산이 비교적 빠르고 대규모 데이터셋에 적용 가능함
- 단점: 비선형 관계를 갖는 데이터의 구조를 잘 표현하지 못할 수 있음
t-SNE
- 고차원의 복잡한 데이터를 2차원(혹은 3차원)에 차원에 축소하는 방법
- 장점: 비선형 차원축소 기법으로, 고차원 공간에서 국부적인 구조를 잘 보존
- 단점: 계산비용이 매우 높고, 대규모 데이터셋에 적용하기 어려움, 해석이 어렵고 고차원에서의 거리 관계를 왜곡할 수 있음
확인 문제 풀이
1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요? ① 10개 ② 20개 ③ 50개 ④ 100개 |
답: ② 20개
주성분의 개수는 고차원의 데이터를 저차원으로 데이터로 환원시키는 기법을 말하기 때문에 일반적으로는 주어진 특성을 줄이는 것이 목적이다. 그러나 최대값은 주어진 특성수를 넘을 수 없으므로 20개이다.
2. 샘플 개수 1,000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉, 이데이터셋의 크기는 (1000, 100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요? ① (1000, 10) ② (10, 1000) ③ (10, 10) ④ (1000, 1000) |
답: ① (1000, 10)
주성분 분석은 특성의 개수를 줄이지만 샘플의 개수를 줄이진 않기 때문에 샘플 개수는 1,000개, 특성 개수는 10개인 (1000,10)이 된다.
3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째 인가요? ① 첫 번째 주성분 ② 다섯 번째 주성분 ③ 열 번째 주성분 ④ 알 수 없음 |
답: ① 첫 번째 주성분
주성분 분석은 분산의 크기에 따라 정렬하기 때문에 가장 큰 분산이 첫번째로 오게 된다.
따라서 첫 번째 주성분이 가장 분산이 크다.
References
https://www.youtube.com/watch?v=EXHR2-hECRM
https://en.wikipedia.org/wiki/Curse_of_dimensionality
https://blog.naver.com/jjys9047/222585321614
** 사실과 다른 내용이 있을 수 있습니다. 언제든지 피드백 부탁드립니다!
반응형
'스터디 > 혼공학습단 10기 - 자바 & 머신러닝' 카테고리의 다른 글
[혼공학습단] 딥러닝을 좀 더 딥하게 가보자, 심층 신경망 (0) | 2023.08.15 |
---|---|
[혼공학습단] 딥러닝의 세계로 들어가보자 (0) | 2023.08.15 |
[혼공학습단] k-평균 알고리즘의 작동방식 (0) | 2023.08.12 |
[혼공학습단 ] HashMap으로 Map컬렉션을 이해하기 (0) | 2023.08.12 |
[혼공학습단] 파이썬과 비교해보는 자바의 컬렉션 프레임워크 (0) | 2023.08.07 |
댓글