다음을 통해 공유


K-평균 클러스터링

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

K-Means 클러스터링 모델을 구성 및 초기화

범주: Machine Learning/초기화 모델/클러스터링

참고

적용 대상: Machine Learning Studio(클래식) 전용

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 K-평균 클러스터링 모듈을 사용하여 학습되지 않은 K-평균 클러스터링 모델을 만드는 방법을 설명합니다.

K-평균은 가장 간단하고 가장 잘 알려진 감독되지 않은 학습 알고리즘 중 하나이며, 다른 분류 또는 회귀 방법을 사용하기 전에 비정상적인 데이터 검색, 텍스트 문서 클러스터링 및 데이터 세트 분석과 같은 다양한 기계 학습 작업에 사용할 수 있습니다. 클러스터링 모델을 만들려면 이 모듈을 실험에 추가하고, 데이터 세트를 연결하고, 예상되는 클러스터 수, 클러스터를 만드는 데 사용할 거리 메트릭 등의 매개 변수를 설정합니다.

모듈 하이퍼 매개 변수를 구성한 후 학습되지 않은 모델을 클러스터링 모델 학습 또는 스윕 클러스터링 모듈에 연결하여 사용자가 제공하는 입력 데이터에 대해 모델을 학습시킵니다. K-평균 알고리즘은 자율 학습 방법이므로 레이블 열은 선택 사항입니다.

  • 데이터에 레이블이 포함된 경우 레이블 값을 사용하여 클러스터 선택을 안내하고 모델을 최적화할 수 있습니다.
  • 데이터에 레이블이 없는 경우 알고리즘은 전적으로 데이터를 기준으로 가능한 범주를 나타내는 클러스터를 만듭니다.

학습 데이터에 레이블이 있는 경우 Machine Learning에 제공된 감독된 분류 방법 중 하나를 사용하는 것이 좋습니다. 예를 들어 다중 클래스 의사 결정 트리 알고리즘 중 하나를 사용할 때 클러스터링 결과를 결과와 비교할 수 있습니다.

k-평균 클러스터링 이해

일반적으로 클러스터링에서는 반복 기술을 사용하여 비슷한 특성이 포함된 클러스터로 데이터 집합의 사례를 그룹화합니다. 그룹화는 데이터를 검색하고, 데이터의 변칙을 식별하고, 궁극적으로 예측을 수행하는 데 유용합니다. 클러스터링 모델은 검색하거나 대충 관찰해서는 논리적으로 도출할 수 없는 데이터 세트의 관계를 식별하는 데도 유용할 수 있습니다. 따라서 클러스터링은 기계 학습 작업의 초기 단계에서 데이터를 탐색하고 예기치 않은 상관 관계를 검색하는 데 자주 사용됩니다.

k-means 메서드를 사용하여 클러스터링 모델을 구성하는 경우 모델에서 원하는 중심 수를 나타내는 대상 숫자 k 지정해야 합니다. 중심은 각 클러스터를 나타내는 지점입니다. K-평균 알고리즘은 클러스터 내 제곱합을 최소화하여 들어오는 각 데이터 요소를 클러스터 중 하나에 할당합니다.

학습 데이터를 처리할 때 K-평균 알고리즘은 임의로 선택된 중심선의 초기 집합으로 시작하여 각 클러스터의 시작점으로 사용되며 Lloyd 알고리즘을 적용하여 중심점의 위치를 반복적으로 구체화합니다. K-평균 알고리즘은 다음 조건을 하나 이상 충족할 경우 클러스터 빌드 및 구체화를 중지합니다.

  • 중심이 안정화되므로 개별 지점에 대한 클러스터 할당이 더 이상 변경되지 않고 알고리즘이 솔루션에 수렴됩니다.

  • 알고리즘에서 지정된 수의 반복 실행을 완료했습니다.

학습 단계를 완료한 후 클러스터에 데이터 할당 모듈을 사용하여 k-평균 알고리즘에서 찾은 클러스터 중 하나에 새 사례를 할당합니다. 클러스터 할당은 새 사례와 각 클러스터의 중심 사이의 거리를 계산하여 수행됩니다. 새 사례는 가장 가까운 중심이 있는 클러스터에 각각 할당됩니다.

K-평균 클러스터링을 구성하는 방법

  1. K-평균 클러스터링 모듈을 실험에 추가합니다.

  2. 트레이너 모드 만들기 옵션을 설정하여 모델을 학습시키려는 방법을 지정합니다.

    • 단일 매개 변수: 클러스터링 모델에서 사용할 정확한 매개 변수를 알고 있는 경우 특정 값 세트를 인수로 제공할 수 있습니다.

    • 매개 변수 범위: 최상의 매개 변수를 잘 모르는 경우 여러 값을 지정하고 스윕 클러스터링 모듈을 사용하여 최적의 구성을 찾아 최적의 매개 변수를 찾을 수 있습니다.

      트레이너는 제공한 설정의 여러 조합을 반복하고 최적의 클러스터링 결과를 생성하는 값의 조합을 결정합니다.

  3. Centroid 수에 알고리즘을 시작할 클러스터 수를 입력합니다.

    모델이 정확히 이 수의 클러스터를 생성한다고 보장되지는 않습니다. algorithn은 이 수의 데이터 요소로 시작하고 기술 정보 섹션에 설명된 대로 최적의 구성을 찾기 위해 반복합니다.

    매개 변수 스윕을 수행하는 경우 속성의 이름이 중심 수의 범위로 변경됩니다. Range Builder를 사용하여 범위를 지정하거나 각 모델을 초기화할 때 만들 클러스터 수를 나타내는 일련의 숫자를 입력할 수 있습니다.

  4. 스윕에 대한초기화 또는 초기화 속성은 초기 클러스터 구성을 정의하는 데 사용되는 알고리즘을 지정하는 데 사용됩니다.

    • 첫 번째 N: 데이터 집합에서 일부 초기 데이터 요소가 선택되어 초기 수단으로 사용됩니다.

      Forgy 메서드라고도 합니다.

    • 임의: 알고리즘에서 클러스터에 데이터 요소를 임의로 배치한 다음, 임의로 할당된 클러스터 요소의 중심이 될 초기 평균을 계산합니다.

      임의 파티션 메서드라고도 합니다.

    • K-평균++ : 클러스터를 초기화하는 기본 방법입니다.

      K-평균 ++ 알고리즘은 표준 k-평균 알고리즘에 의한 부실한 클러스터링 방지하기 위해 2007년 데이비드 아서와 세르게이 바실비츠키에 의해 제안되었습니다. K-means ++는 초기 클러스터 센터를 선택하는 다른 방법을 사용하여 표준 K-평균을 개선합니다.

    • K-Means++Fast: 더 빠른 클러스터링 최적화된 K-평균 ++ 알고리즘의 변형입니다.

    • 균등: 중심은 n 데이터 요소의 d 차원 공간에서 서로 동등하게 배치됩니다.

    • 레이블 열 사용: 레이블 열의 값은 중심선 선택을 안내하는 데 사용됩니다.

  5. 필요에 따라 난수 시드에 클러스터 초기화의 시드로 사용할 값을 입력합니다. 이 값은 클러스터 선택에 상당한 영향을 미칠 수 있습니다.

    매개 변수 스윕을 사용하는 경우 여러 초기 시드를 만들도록 지정하여 최상의 초기 시드 값을 찾을 수 있습니다. 스윕할 시드 수에 시작점으로 사용할 총 임의 시드 값 수를 입력합니다.

  6. 메트릭에서 클러스터 벡터 간 거리나 새 데이터 요소와 임의로 선택된 중심 간 거리를 측정하는 데 사용할 함수를 선택합니다. Machine Learning은 다음 클러스터 거리 메트릭을 지원합니다.

    • 유클리드: 유클리드 거리는 일반적으로 K-평균 클러스터링의 클러스터 산점도 측정값으로 사용됩니다. 이 메트릭은 지점과 중심 사이의 평균 거리를 최소화하므로 사용하는 것이 좋습니다.

    • Cosine: 코사인 함수는 클러스터 유사성을 측정하는 데 사용됩니다. 코사인 유사성은 벡터의 길이에 신경 쓰지 않고 각도만 신경 쓰지 않는 경우에 유용합니다.

  7. 반복에 대해 중심선 선택을 완료하기 전에 알고리즘이 학습 데이터를 반복해야 하는 횟수를 입력합니다.

    정확도와 학습 시간의 균형을 맞추도록 이 매개 변수를 조정할 수 있습니다.

  8. 레이블 할당 모드에서 데이터 세트에 있는 경우 레이블 열을 처리하는 방법을 지정하는 옵션을 선택합니다.

    K-평균 클러스터링은 자율 기계 학습 방법이므로 레이블은 선택 사항입니다. 그러나 데이터 세트에 이미 레이블 열이 있는 경우 해당 값을 사용하여 클러스터 선택을 안내하거나 값을 무시하도록 지정할 수 있습니다.

    • 레이블 열 무시: 레이블 열 값이 무시되고 모델을 빌드하는 데 사용되지 않습니다.

    • 누락 값 채우기: 레이블 열 값이 클러스터를 빌드하는 데 도움이 되는 기능으로 사용됩니다. 행에 레이블이 없는 경우 다른 기능을 사용하여 값을 대체합니다.

    • 중심에 가장 가까운 요소에서 덮어쓰기: 현재 중심에 가장 가까운 요소의 레이블을 사용하여 예측된 레이블 값으로 레이블 열 값을 대체합니다.

  9. 모델을 학습시킵니다.

    • 트레이너 모드 만들기단일 매개 변수로 설정하는 경우 태그가 지정된 데이터 세트를 추가하고 클러스터링 모델 학습 모듈을 사용하여 모델을 학습시킵니다.

    • 트레이너 만들기 모드매개 변수 범위로 설정하면 태그가 지정된 데이터 세트를 추가하고 스윕 클러스터링을 사용하여 모델을 학습시킵니다. 이러한 매개 변수를 사용하여 학습된 모델을 사용하거나, 학습자를 구성할 때 사용할 매개 변수 설정을 기록해 둘 수 있습니다.

결과

모델 구성 및 학습을 완료한 후 점수를 생성하는 데 사용할 수 있는 모델이 있습니다. 그러나 모델을 학습하는 방법과 결과를 확인하고 사용하는 방법에는 여러 가지가 있습니다.

작업 영역에서 모델 스냅샷 캡처

  • 클러스터링 모델 학습 모듈을 사용한 경우

    1. 클러스터링 모델 학습 모듈을 마우스 오른쪽 단추로 클릭합니다.
    2. 학습된 모델을 선택한 다음 학습된 모델로 저장을 클릭합니다.
  • 스윕 클러스터링 모듈을 사용하여 모델을 학습한 경우

    1. 스윕 클러스터링 모듈을 마우스 오른쪽 단추로 클릭합니다.
    2. 가장 잘 학습된 모델을 선택한 다음 학습된 모델로 저장을 클릭합니다.

저장된 모델은 모델을 저장한 시점의 학습 데이터를 나타냅니다. 나중에 실험에 사용된 학습 데이터를 업데이트하는 경우 저장된 모델을 업데이트하지 않습니다.

모델에서 클러스터의 시각적 표현 보기

  • 클러스터링 모델 학습 모듈을 사용한 경우

    1. 모듈을 마우스 오른쪽 단추로 클릭하고 결과 데이터 세트를 선택합니다.
    2. 시각화를 선택합니다.
  • 스윕 클러스터링 모듈을 사용한 경우

    1. 클러스터에 데이터 할당 모듈의 instance 추가하고 가장 잘 학습된 모델을 사용하여 점수를 생성합니다.

    2. 클러스터에 데이터 할당 모듈을 마우스 오른쪽 단추로 클릭하고 결과 데이터 세트를 선택한 다음 시각화를 선택합니다.

차트는 모델의 기능 공간을 압축하기 위한 데이터 과학 기술인 보안 주체 구성 요소 분석을 사용하여 생성됩니다. 차트는 클러스터 간의 차이를 가장 잘 나타내는 두 가지 차원으로 압축된 일부 기능 집합을 보여 줍니다. 각 클러스터에 대한 기능 공간의 일반 크기와 클러스터가 겹치는 정도를 시각적으로 검토하여 모델이 얼마나 잘 수행되는지 파악할 수 있습니다.

예를 들어 다음 PCA 차트는 동일한 데이터를 사용하여 학습된 두 모델의 결과를 나타냅니다. 첫 번째는 두 클러스터를 출력하도록 구성되었고 두 번째 차트는 세 개의 클러스터를 출력하도록 구성되었습니다. 이러한 차트에서 클러스터 수를 늘리면 클래스 분리가 반드시 개선되는 것은 아니라는 것을 알 수 있습니다.

PCA 클러스터 비교

스윕 클러스터링 모듈을 사용하여 임의 시드 및 시작 중심점 수를 포함하여 최적의 하이퍼 매개 변수 집합을 선택합니다.

데이터 요소 목록 및 해당 데이터 요소가 속한 클러스터를 참조하세요.

모델을 학습한 방법에 따라 결과를 사용하여 데이터 세트를 볼 수 있는 두 가지 옵션이 있습니다.

  • 스윕 클러스터링 모듈을 사용하여 모델을 학습한 경우

    1. 스윕 클러스터링 모듈의 확인란을 사용하여 입력 데이터를 결과와 함께 볼지 아니면 결과만 볼 것인지를 지정합니다.
    2. 학습이 완료되면 모듈을 마우스 오른쪽 단추로 클릭하고 결과 데이터 세트 (출력 번호 2)를 선택합니다.
    3. 시각화를 클릭합니다.
  • 클러스터링 모델 학습 모듈을 사용한 경우

    1. 클러스터에 데이터 할당 모듈을 추가하고 학습된 모델을 왼쪽 입력에 연결합니다. 데이터 세트를 오른쪽 입력에 연결합니다.
    2. 데이터 세트로 변환 모듈을 실험에 추가하고 클러스터에 데이터 할당의 출력에 연결합니다.
    3. 클러스터에 데이터 할당 모듈의 확인란을 사용하여 입력 데이터를 결과와 함께 볼지 아니면 결과만 볼 것인지를 지정합니다.
    4. 실험을 실행하거나 데이터 세트로 변환 모듈만 실행합니다.
    5. 데이터 세트로 변환을 마우스 오른쪽 단추로 클릭하고 결과 데이터 세트를 선택한 다음 시각화를 클릭합니다.

출력에는 입력 데이터 열이 포함된 경우 먼저 입력 데이터 열과 입력 데이터의 각 행에 대해 다음 열이 포함됩니다.

  • 할당: 할당은 1에서 n 사이의 값입니다. 여기서 n 은 모델의 총 클러스터 수입니다. 각 데이터 행을 하나의 클러스터에만 할당할 수 있습니다.

  • DistancesToClusterCenter no.n: 이 값은 현재 데이터 요소에서 클러스터의 중심까지의 거리를 측정합니다. 학습된 모델의 각 클러스터에 대한 출력의 별도 열입니다.

    클러스터 거리에 대한 값은 클러스터 결과를 측정하기 위한 메트릭 옵션에서 선택한 거리 메트릭을 기반으로 합니다. 클러스터링 모델에서 매개 변수 스윕을 수행하더라도 스윕 중에 하나의 메트릭만 적용할 수 있습니다. 메트릭을 변경하면 다른 거리 값을 얻을 수 있습니다.

클러스터 내 거리 시각화

이전 섹션의 결과 데이터 세트에서 각 클러스터에 대한 거리 열을 클릭합니다. Studio(클래식)는 클러스터 내의 지점에 대한 거리 분포를 시각화하는 히스토그램을 표시합니다.

예를 들어 다음 히스토그램은 4개의 다른 메트릭을 사용하여 동일한 실험에서 클러스터 거리 분포를 보여 줍니다. 매개 변수 스윕에 대한 다른 모든 설정은 동일했습니다. 메트릭을 변경하면 한 모델에서 다른 수의 클러스터가 생성되었습니다.

클러스터 거리 히스토그램

일반적으로 서로 다른 클래스의 데이터 요소 간 거리를 최대화하고 클래스 내의 거리를 최소화하는 메트릭을 선택해야 합니다. 통계 창에서 미리 계산된 수단 및 기타 값을 사용하여 이 결정을 안내할 수 있습니다.

Machine Learning용 PowerShell 모듈을 사용하여 시각화에 사용되는 수단 및 기타 값을 추출할 수 있습니다.

또는 R 스크립트 실행 모듈을 사용하여 사용자 지정 거리 행렬을 계산합니다.

최적 클러스터링 모델을 생성하기 위한 팁

클러스터링 중에 사용되는 시드 프로세스가 모델에 큰 영향을 줄 수 있는 것으로 알려져 있습니다. 시드는 포인트가 강력한 중심선으로 처음 배치되는 것을 의미합니다.

예를 들어 데이터 세트에 이상값이 많이 포함되어 있고 클러스터를 시드하기 위해 이상값을 선택한 경우 다른 데이터 요소가 해당 클러스터와 잘 맞지 않으며 클러스터는 싱글톤일 수 있습니다. 즉, 1포인트만 있는 클러스터일 수 있습니다.

이 문제를 방지하는 방법에는 여러 가지가 있습니다.

  • 매개 변수 스윕을 사용하여 중심 수를 변경하고 여러 시드 값을 시도합니다.

  • 메트릭을 변경하거나 반복 횟수를 늘려 여러 모델을 만듭니다.

  • PCA와 같은 메서드를 사용하여 클러스터링 해로운 영향을 주는 변수를 찾습니다. 이 기술의 데모 는 유사한 회사 찾기 샘플을 참조하세요.

일반적으로 클러스터링 모델을 사용하면 지정된 구성으로 인해 로컬로 최적화된 클러스터 집합이 생성될 수 있습니다. 즉, 모델에서 반환된 클러스터 집합은 현재 데이터 요소에만 적합하며 다른 데이터로 일반화할 수 없습니다. 다른 초기 구성을 사용한 경우 K-means 방법을 통해 다른 우수한 구성을 찾을 수도 있습니다.

중요

항상 매개 변수를 실험하고, 여러 모델을 만들고, 결과 모델을 비교하는 것이 좋습니다.

예제

Machine Learning에서 K-평균 클러스터링 사용되는 방법에 대한 예제는 Azure AI 갤러리에서 다음 실험을 참조하세요.

기술 정보

N개의 데이터 요소가 있는 D-차원 데이터 요소 집합을 찾기 위해 특정 수의 클러스터(K)가 제공된 경우 K-means 알고리즘에서는 다음과 같이 클러스터를 빌드합니다.

  1. 모듈은 찾은 K 클러스터를 정의하는 최종 중심을 사용하여 K-by-D 배열을 초기화 합니다.

  2. 기본적으로 모듈은 K 클러스터에 첫 번째 K 데이터 요소를 할당합니다.

  3. 이 방법에서는 초기 K개의 중심 집합부터 Lloyd의 알고리즘을 사용하여 중심의 위치를 반복적으로 구체화합니다.

  4. 중심이 안정화되거나 지정된 수의 반복이 완료되면 알고리즘이 종료됩니다.

  5. 유사성 메트릭(기본적으로, 유클리드 거리)은 가장 가까이에 중심이 있는 클러스터의 각 데이터 요소를 할당하는 데 사용합니다.

경고

  • 매개 변수 범위를 학습 클러스터링 모델에 전달하는 경우 매개 변수 범위 목록의 첫 번째 값만 사용합니다.
  • 단일 매개 변수 값 집합을 스윕 클러스터링 모듈에 전달하는 경우 각 매개 변수에 대한 설정 범위가 예상되는 경우 값을 무시하고 학습자의 기본값을 사용합니다.
  • 매개 변수 범위 옵션을 선택하고 임의 매개 변수의 단일 값을 입력하는 경우 다른 매개 변수가 값 범위에서 변경되더라도 지정한 단일 값은 스윕 전체에서 사용됩니다.

모듈 매개 변수

Name 범위 Type 기본값 Description
중심의 수입니다. >=2 정수 2 중심의 수입니다.
메트릭 목록(하위 집합) 메트릭 유클리드 선택한 메트릭입니다.
초기화 목록 중심 초기화 메서드 K-Means++ 초기화 알고리즘입니다.
반복 횟수 >=1 정수 100 반복 횟수

출력

Name 형식 Description
학습되지 않은 모델 ICluster 인터페이스 학습되지 않은 K-Means 클러스터링 모델입니다.

예외

모든 예외 목록은 Machine Learning 모듈 오류 코드를 참조하세요.

예외 설명
오류 0003 하나 이상의 입력이 null이거나 비어 있으면 예외가 발생합니다.

추가 정보

클러스터링
클러스터에 데이터 할당
클러스터링 모델 학습
스윕 클러스터링