상세 컨텐츠

본문 제목

혼공단 머신러닝+딥러닝 5주차 미션 - Chapter 06

Developer/혼공단

by cepiloth 2022. 3. 4. 16:57

본문

728x90
반응형

기본 미션

k-평균 알고리즘 작동 방식 설명하기

1. 무작위로 k개의 클러스터 중심을 정합니다.
2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정합니다.
3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경합니다.
4. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복합니다.

아래 그림을 보면 클러스터 중심이 이동 되면서 변화가 없을때까지의 과정을 알 수 있다.

출처 - https://itstory1592.tistory.com/17


 

선택 미션

Ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기

1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇개일까요? 
-> 10개 문제에서 주어진 선택지 중에서는 10개의 특성이 가장 작다. 일반적으로 주성분 분석은 원본 데이터에 있는 특성 개수보다 작기 때문이다.

2. 샘플 개수가 1000개이고 특성 개수가 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000, 100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요?
-> (1000, 10) : 데이터 셋에서 10개의 주성분을 찾아 변환하며 샘플의 수는 그대로고 특성 개수만 100에서 10으로 줄어들게 됩니다.

3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째인가요?
-> 주성분 분석은 가장 분산이 큰 방향부터 순서대로 찾습니다. 그러므로 첫번째 주성분의 설명된 분산이 가장 큽니다.


 

확인 문제

6.1.1 히스토그램을 그릴 수 있는 맷플롯립 함수는 무엇인가요?
-> hist()

6.1.2 본문에서 했던 것처럼 바나나 사진의 평균 banana_mean과 비슷한 사진 100장을 찾아 출력해 보세요. 바나나 사진을 모두 찾을 수 있나요?

#abs_diff 를 구할때 fruits 에서 banana 의 평균값으로 변경
abs_diff = np.abs(fruits - banana_mean)
abs_mean = np.mean(abs_diff, axis=(1,2))
print(abs_mean.shape)

banana_index = np.argsort(abs_mean)[:100]
fig, axs = plt.subplots(10, 10, figsize=(10, 10))
for i in range(10):
  for j in range(10):
    axs[i, j].imshow(fruits[banana_index[i*10 + j]], cmap='gray_r')
    axs[i, j].axis('off')
plt.show()

6.2.1 k-평균 알고리즘에서 클러스터를 표현하는 방법이 아닌것은 무엇인가요?
-> 클러스터에 속한 샘플 개수

6.2.2 k평균에서 최적의 클러스터를 개수는 어떻게 정할 수 있나요?
-> 엘보우 방법을 사용해 이너셔의 감소 정도가 꺽이는 클러스터 개수를 찾습니다.


 

용어정리

비지도 학습은 머신러닝의 한 종류로 훈련 데이터에 타깃이 없습니다. 타깃이 없기 때문에 외부의 도움 없이 스스로 유용한 무언가를 학습해야 합니다. 대표적인 비지도 학습 작업은 군집, 차원 축소 등입니다.

히스토그램은 구간별로 값이 발생한 빈도를 그래프로 표시한 것입니다. 보통 x축이 값의 구간(계급)이고 y축은 발생 빈도(도수)입니다.

군집은 비슷한 샘플끼리 하나의 그룹으로 모으는 대표적인 비지도 학습 작업입니다. 군집 알고리즘으로 모은 샘플 그룹을 클러스터라고 부릅니다.

k-평균 알고리즘은 처음에 랜덤하게 클러스터 중심을 정하고 클러스터를 만듭니다. 그다음 클러스터의 중심을 이동하고 다시 클러스터를 만드는 식으로 반복해서 최적의 클러스터를 구성하는 알고리즘입니다.

클러스터 중심은 k-평균 알고리즘이 만든 클러스터에 속한 샘플의 특성 평균값입니다. 센트로이드라고도 부릅니다. 새로운 샘플에 대한 예측으로 활용할 수 있습니다.

엘보우 방법은 최적의 클러스터 개수를 정하는 방법 중 하나입니다. 이너셔는 클러스터 중심과 샘플 사이 거리의 제곱 합입니다. 클러스터 제곱 합입니다. 클러스터 개수에 따라 이너셔 감소가 꺽이는 지점이 적절한 클러스터 개수 k가 될 수 있습니다. 이 그래프의 모양을 따서 엘보우 방법이라고 부릅니다.

차원 축소는 원본 데이터의 특성을 적은 수의 새로운 특성으로 변환하는 비지도 학습의 한 종류입니다. 차원 축소는 저장 공간을 줄이고 시각화하기 쉽습니다. 또한 다른 알고리즘의 성능을 높일 수도 있습니다.

주성분 분석은 차원 축소 알고리즘의 하나로 데이터에서 가장 분산이 큰 방향을 찾는 방법입니다. 이런 방향을 주성분이라고 부릅니다. 원본 데이터를 주성분에 투영하여 새로운 특성을 만들 수 있습니다. 일반적으로 주성분은 원본 데이터에 있는 특성 개수보다 작습니다.

설명된 분산은 주성분 분석에서 주성분이 얼마나 원본 데이터의 분산을 잘 나타내는지 기록한것 입니다. 사이킷런의 PCA 클래스는 주성분 개수나 설명된 분산의 비율을 지정하여 주성분 분석을 수행할 수 있습니다.

728x90
반응형

관련글 더보기

댓글 영역