diff --git "a/week1/0\355\214\200_\355\231\215\352\270\270\353\217\231.md" "b/week1/0\355\214\200_\355\231\215\352\270\270\353\217\231.md" deleted file mode 100644 index e69de29..0000000 diff --git "a/week5/2\355\214\200_\355\231\251\354\235\270\354\204\234.md" "b/week5/2\355\214\200_\355\231\251\354\235\270\354\204\234.md" new file mode 100644 index 0000000..20ecac6 --- /dev/null +++ "b/week5/2\355\214\200_\355\231\251\354\235\270\354\204\234.md" @@ -0,0 +1,53 @@ +# Chapter 06 비지도 학습 +### 06-1 군집 알고리즘 + +- Keywords + - **비지도 학습**: 훈련 데이터에 타깃이 없는 머신러닝의 한 종류. ex) 군집, 차원 축소 + - **군집(clustering)**: 비슷한 샘플끼리 한 그룹(cluster)으로 묶는 비지도 학습 작업 + - 흑백 사진 분류 + 1. 과일 사진 데이터 준비하기 + - 3차원(샘플 개수, 높이, 너비) 넘파이 배열을 load 함. + 2. 픽셀값 분석하기 + - 각 2차원 이미지 배열을 1차원 배열로 reshape 함. + - 각 클래스마다 샘플별 픽셀 평균값을 계산해 히스토그램으로 표현함. + - 각 클래스마다 픽셀별 평균값을 계산해 막대그래프로 표현함. + 3. 평균값과 가까운 사진 고르기 + - abs() 함수로 오차를 구한 다음 argsort() 함수로 오름차순 정렬함. + 4. 문제점 + - 샘플의 타깃을 미리 알고 있는 상태에서 픽셀 평균값을 구했으므로, 비지도학습의 전제에 맞지 않음. + +- Packages and Functions + - numpy + - **load()**: 넘파이에서 npy 파일을 로드함. + - **abs()**: 절댓값을 계산함. + - **argsort()**: 배열을 작은 값에서 큰 값 순서대로 나열했을 때 인덱스를 반환함. + - matplotlib.pyplot + - **imshow()**: 2차원 넘파이 배열을 이미지로 표현함. + - **hist()**: 히스토그램을 그림. + - **bar()**: 막대그래프를 그림. + - **subplots()**: r*c개의 서브 그래프를 만듦. + +### 06-2 k-평균 + +- Keywords + - **k-평균 알고리즘** + 1. 무작위로 k개의 클러스터 중심을 설정함. + 2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정함. + 3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경함. + 4. 클러스터 중심에 변화가 없을 때까지 2~3을 반복함. + - **엘보우 방법**: 적절한 클러스터 개수를 찾기 위한 방법. 클러스터 개수에 따른 **이너셔**(클러스터 중심과 클러스터에 속한 샘플 사이 거리의 제곱 합)의 변화를 관찰함. 변화율이 꺾이는 지점, 즉 이너셔가 더 이상 크게 줄어들지 않는 지점을 클러스터 개수로 설정함. + +- Packages and Functions + - sckit-learn + - **KMeans**: k-평균 알고리즘 클래스. n_clusters는 클러스터 개수. max_iter는 최적의 중심을 찾기 위해 반복할 수 있는 최대 횟수. + +### 06-3 주성분 분석 + +- Keywords + - **차원 축소**: 원본 데이터의 특성을 적은 수의 새로운 특성으로 변환하는 비지도 학습. 데이터셋의 크기를 줄이고 비교적 시각화가 쉬움. 차원 축소된 데이터를 다른 학습에 사용하면 성능을 높이거나 훈련 속도를 높일 수 있음. + - **주성분 분석**:차원 축소 알고리즘. 데이터에서 가장 분산이 큰 방향을 찾음. 이 방향을 주성분이라 함. + - **설명된 분산**: 주성분이 원본 데이터의 분산을 얼마나 잘 나타내는지 기록한 값. + +- Packages and Functions + - scikit-learn + - **PCA**: 주성분 분석을 수행하는 클래스. n-components는 주성분의 개수. components_는 주성분. explained_variance_는 설명된 분산. explained_variance_ratio_는 설명된 분산의 비율. inverse_transform()는 차원 축소된 데이터를 원래 차원으로 되돌림. \ No newline at end of file