진도: Chapter 06
기본 숙제(필수): k-평균 알고리즘 작동 방식 설명하기
추가 숙제(선택): Ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기
저번주는 여름 방학이라 쉬었더니 너무너무 좋았다. 다시 충전이 된 느낌이다. 마지막 주차까지 꾸준히 달려서 마무리 해보자!ㅎㅎ
드디어 비지도 학습이다!!
미리 정답을 알 수 없을때 하는 방법, 타깃을 모를때 쓰는 방법이다.
타깃이 없을 때 사용하는 머신러닝 알고리즘
첫 번째 차원(300) : 샘플의 개수
두 번째 차원(100) : 이미지 높이
세 번째 차원(100) : 이미지 너비
즉, 크기는 100 X 100
흑백 사진이므로 0~255 사이의 정수값을 가진다.
0에 가까울 수록 검게 나타나고, 높은 값은 밝게 표시된다.
이 이미지는 넘파이 배열로 반환할 때 반전시킨것. 흰 바탕이 높은 값인데 실제 사과가 있는 부분은 짙다. 하지만 중요한 관심 부분은 바탕이 아닌 사과이므로 대상을 밝게 반전 시킨 값이 의미 부여하기 좋다.
픽셀값만으로는 파인애플과 사과를 구분하기 어려움
-> 샘플의 평균값이 아니라 픽셀별 평균값을 비교
-> 마지막 2개가 바나나가 아닌 사과가 나온다. 다 찾을 수 없었다...
위 과일들은 어떤 사진인지 알고 있어서 평균을 구할 수 있었다.
하지만 진짜 비지도 학습에서는 어떤 과일인지 모른다.
이때 K-평균 군집 알고리즘을 사용하면 평균값을 자동으로 찾아준다.
평균값이 클러스터의 중심에 위치하기 때문에 클러스터 중심 또는 센트로이드라고 부른다.
clustercenters 속성에 저장
클러스터 중심을 옮기는 것을 반복하며 최적의 클러스터를 찾음
데이터에 있는 분산이 큰 방향을 찾는 것
분산 : 데이터가 널리 퍼져있는 정도
이 벡터를 주성분 이라고 부름
주성분 벡터의 원소 개수 = 원본 데이터셋에 있는 특성 개수
결과
n_components=50으로 지정했기 때문에 50개의 주성분을 찾음. -> 첫 번째 차원 = 50, 두 번째 차원 = 원본 데이터의 특성 개수인 10,000
fruits_2d는 (300,10000) 크기의 배열 => (300, 50) 크기의 배열로 변환
: 주성분이 원본 데이터의 분산을 얼마나 잘 나타내는지 기록한 값
99% 정도의 정확도 달성
훈련 데이터의 차원을 줄이면 얻을 수 있는 또 하나의 장점 = 시각화
3번 풀이
주성분 분석은 가장 분산이 큰 방향부터 차례대로 수평으로 가면서 찾음. 따라서 첫 번째 주성분이 설명된 분산이 가장 크다.
주성분 분석(Principal Component Analysis, PCA)는 여러 개의 독립변수들을 가장 잘 설명해줄 수 있는 주된 성분을 추출하는 기법
핵심 특성만 선별하기 때문에 독립 변수의 수(차원)를 줄일 수 있음. 여러 개의 변수들이 소수의 특정한 변수들로 축약되도록 가공하는 것
흔히 말하는 차원의 저주를 방지하기 위한 것
차원의 저주(Curse of dimensionality)란?
데이터 차원이 증가할수록 해당 공간의 크기가 기하급수적으로 증가하며, 데이터 분석이나 모델 학습에 어려움을 초래하는 현상
차원 축소 시, 데이터의 일부 정보 손실 발생 가능. 어떤 차원을 유지하고 제거할지 결정하는 것이 복잡할 수 있음
PCA 수행 시 데이터의 구조를 가장 잘 반영하는 기저를 찾는 것이 중요 -> 최적의 기저(Optimal Bases)라고 부름
PCA에서는 자동으로 분산이 최대가 되는 방향으로 최적의 기저를 찾아냄