혼공머신( 머신러닝 + 딥러닝 ) 5주차 미션
기본미션 : k-평균 알고리즘 작동 방식 설명하기
오늘은 비지도 학습의 방식 중 하나인 k평균 알고리즘을 실습해보겠다
k평균 알고리즘은 기본적으로 3가지 단계로 움직인다
1. 무작위로 k개의 클러스터 중심을 정한다2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다
클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복하는 것이 이 알고리즘의 작동 방식이다이러한 단계들을 그림으로 나타내면 다음과 같다
1번 그림에서처럼 클러스터 중심(파란 점)을 랜덤하게 지정한 뒤 클러스터 중심에서 가장 가까운 샘플을 클러스터로 묶는다
그리고 클러스터의 중심을 조금 이동시킨다
이동시킨 다음 그 중심을 기준으로 다시 클러스터를 묶는다 (2번 그림)
K-평균 알고리즘 코드를 통해 확인해보았다
먼저 데이터를 불러와준다
n_clusters는 클래스터 개수를 지정하는 매개변수이다
3으로 지정했다
샘플들을 확인해보면 n_clusters를 3으로 했기 때문에 0,1,2로 되어있는 것을 확인할 수 있다
각 클러스터가 어떤 이미지를 가지고 있는지를 확인하기 위한 함수를 만들어준다draw_fruits()는 (샘플 개수, 너비, 높이)의 3차원 배열을 입력값으로 받아 가로로 10개씩 이미지를 출력하는 함수이다figsize는 ratio 매개변수에 따라 커지는데, 기본값은 1이다
그리고 각 클러스터별로 샘플 이미지들을 출력한다여기서는 레이블 0, 레이블 1, 레이블 2에 각각 파인애플, 사과, 바나나가 각각 포함되어 있었다레이블0의 경우 파인애플이 대부분이었지만 바나나와 사과가 섞여있었다
KMeans가 찾은 최종 클러스터 중심은 cluster_centers_에 저장되어 있다이를 2차원 배열로 바꾸어 이미지로 출력했다
k평균 알고리즘은 클러스터에 속한 샘플 사이의 거리를 잴 수 있는데, 이 거리의 제곱 합을 이너셔(inertia)라고 부른다이너셔는 클러스터에 속한 샘플이 얼마나 가까이 모여 있는가를 나타내는 값으로도 볼 수 있다클러스터 개수가 늘어나면 클러스터 개개의 크기가 줄어들게 되므로 이너셔도 줄어든다
과일 데이터셋을 사용해 이너셔를 개산해보면 k=3에서 그래프의 기울기가 조금 바뀐 것을 확인할 수 있다엘보우 지점(줄어드는 지점)보다 클러스터 개수가 많아지면 이너셔의 변화가 줄어들면서 군집효과가 줄어들게 된다이 그래프에서는 명확하게 나타나지는 않은 편이다
선택 미션 : 06-3 확인문제 풀고 풀이과정 설명
1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요?
답 : 20개
주성분 벡터의 원소 개수는 원본 데이터셋에 있는 특성 개수와 같기 때문에 특성이 20개인 데이터셋에서 찾을 수 있는 주성분 개수는 20개이다
2. 샘플 개수가 1000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000,100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요?
답 : (1000,10)
기존 데이터셋의 크기는 (1000,100)이었다 이는 100개의 픽셀을 가진 1000개의 이미지이다10개의 주성분을 찾은 PCA 모델을 이용하면 이를 (1000,10) 크기의 배열로 변환할 수 있다
3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째인가요?
답 : 첫 번째 주성분
주성분은 가장 분산이 큰 방향이기 때문에 설명된 분산이 가장 큰 주성분은 첫 번째이다
'study > 혼공학습단 9기' 카테고리의 다른 글
혼공학습단 9기 혼공머신 6주차 ! (0) | 2023.02.19 |
---|---|
혼공학습단 9기 혼공머신 4주차 (0) | 2023.02.05 |
혼공학습단 9기 혼공머신 3주차 (0) | 2023.01.24 |
혼공학습단 9기 혼공머신 2주차 (0) | 2023.01.14 |
혼공학습단 9기 혼공머신 1주차 (0) | 2023.01.07 |