Networks/데이터 분석 및 AI

SK networks AI Camp - 비지도 학습

코딩하는 Español되기 2024. 8. 31. 17:30

비지도 학습(Unsupervised Learning)

: 타깃이 없을 때 사용하는 머신러닝 알고리즘

  사진을 분석 할 때는 높은 값으로 설정(밝은 색) why? 픽셀값이 높으면 출력값도 커지기 때문

plt.imshow(fruits[0], cmap ='gray')
plt.show()

  색을 반전하고 싶다면?

plt.imshow(fruits[0], cmap ='gray_r')
plt.show()

 

○ 군집(clustering) 분석 : 비슷한 샘플끼리 하나의 그룹으로 모으는 대표적인 비지도 학습

    ● 평균 값 찾기 : k-평균(= 클러스터 중심 | 센트로이드)

       - 작동 방식

          1. 무작위로 k개의 클러스터 중심 선정

              * 클러스터 : 군집 알고리즘으로 모은 샘플 그룹

          2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정

          3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경

          4. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복

       - 최적의 k 찾기 : k-평균 알고리즘의 단점 중 하나(직접 지정해줘야함)

       - 대표적인 k 찾기 방법

          1. 엘보우(Elbow) : 이너셔(inertia)의 변화를 관찰하여 최적 클러스터 개수를 찾을 수 있음

                                        특정 지점부터 클러스터 개수를 늘려도 이너셔가 크게 줄어들지 않음

              * 이너셔 : 클러스터에 속한 샘플이 얼마나 가깝게 모여 있는지를 나타내는 값

                              클러스터 중심과 클러스터에 속한 샘플 사이의 거리의 제곱 합

              * KMeans 클래스 : 자동으로 이너셔를 계산하여 inertia_ 속성으로 제공

 

○ 차원(= 특성) 축소

    ● 왜 할까? 특성이 많으면 선형 모델의 성능이 높아지고 훈련 데이터에 과대적합

       So, 차원 축소를 통해 데이터를 가장 잘 나타내는 일부 특성을 선택하여 데이터 크기를 줄이고 모델 성능 향상

 

    ● PCA(주성분 분석)

      : 데이터에 있는 분산(데이터가 널리 퍼져있는 정도)이 큰 방향(데이터를 잘 표현하는 벡터)을 찾는 것

      - 주성분 벡터의 원소 개수 = 원본 데이터셋에 있는 특성 개수

        But 주성분을 사용해 차원을 줄일 수 있음

        즉, 주성분 = 원본 차원 but 주성분으로 바꾼 데이터는 차원이 줄어들게 된다.

      - PCA 클래스의 객체를 만들 때 n_components 매개변수에 주성분의 개수를 지정해야함

      - 설명된 분산 : 주성분이 원본 데이터의 분산을 얼마나 잘 나타내는 지 기록한 값
         * PCA 클래스의 explained_variance_ratio_ 에 각 주성분의 설명된 분산의 비율이 기록되어 있음
         * 첫 번째 주성분의 설명된 분산이 가장 큼
         * 주성분으로 표현하고 있는 총 분산 비율 = 분산의 비율을 모두 더하기