

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# k-means 알고리즘
<a name="k-means"></a>

k-means는 비지도 학습 알고리즘입니다. 데이터 내 별도의 그룹화를 찾으려 합니다. 이 경우 그룹의 멤버는 가급적 다른 멤버와 유사하고 다른 그룹의 멤버와는 가급적 다릅니다. 알고리즘이 유사성을 결정하는 데 사용하고자 하는 속성을 정의합니다.

Amazon SageMaker AI는 수정된 버전의 웹 스케일 k-means 클러스터링 알고리즘을 사용합니다. 기존 버전의 알고리즘과 비교했을 때, Amazon SageMaker AI에서 사용하는 버전의 정확도가 더 높습니다. 기존 알고리즘과 마찬가지로 대량의 데이터 세트로 크기 조정되고 훈련 시간이 개선됩니다. 이를 위해 Amazon SageMaker AI에서 사용하는 버전은 훈련 데이터의 미니 배치(소규모 임의 하위 세트)를 스트림합니다. 미니 배치 k-means에 대한 자세한 정보는 [Web-scale k-means Clustering](https://dl.acm.org/doi/10.1145/1772690.1772862)을 참조하세요.

k-means 알고리즘은 테이블형 데이터를 예상합니다. 여기에서 행은 클러스터링하고자 하는 관측치를 나타내고 열은 관측치의 속성을 나타냅니다. 각 행의 *n* 속성은 *n* 차원 공간의 지점을 나타냅니다. 지점 사이의 유클리드 거리는 해당 관측치의 유사성을 나타냅니다. 속성 값이 유사한 알고리즘 그룹 관측치(이러한 관측치를 나타내는 지점은 가까이에 있습니다). Amazon SageMaker AI에서 k-means가 작동하는 방식에 대한 자세한 내용은 [k-means 클러스터링 작동 방식](algo-kmeans-tech-notes.md) 섹션을 참조하세요.

**Topics**
+ [K-Means 알고리즘의 입/출력 인터페이스](#km-inputoutput)
+ [K-Means 알고리즘에 대한 EC2 인스턴스 권장 사항](#km-instances)
+ [K-Means 샘플 노트북](#kmeans-sample-notebooks)
+ [k-means 클러스터링 작동 방식](algo-kmeans-tech-notes.md)
+ [k-means 하이퍼파라미터](k-means-api-config.md)
+ [K-Means 모델 튜닝](k-means-tuning.md)
+ [K-Means 응답 형식](km-in-formats.md)

## K-Means 알고리즘의 입/출력 인터페이스
<a name="km-inputoutput"></a>

훈련을 위해 k-means 알고리즘은 데이터가 *train* 채널(권장 `S3DataDistributionType=ShardedByS3Key`)에서 제공되고, 선택적 *test* 채널(권장 `S3DataDistributionType=FullyReplicated`)을 사용하여 데이터에 대한 점수를 매긴다고 예상합니다. `recordIO-wrapped-protobuf` 형식과 `CSV` 형식 모두 훈련에 지원됩니다. 파일 모드 또는 파이프 모드를 사용하여 `recordIO-wrapped-protobuf` 또는 `CSV`로 형식이 지정된 데이터에 대해 모델을 훈련할 수 있습니다.

추론을 위해 `text/csv`, `application/json` 및 `application/x-recordio-protobuf`가 지원됩니다. k-means는 각 관측에 대해 `closest_cluster` 레이블 및 `distance_to_cluster`를 반환합니다.

입력 및 출력 파일 형식에 대한 자세한 정보는 [K-Means 응답 형식](km-in-formats.md)(추론의 경우) 및 [K-Means 샘플 노트북](#kmeans-sample-notebooks) 섹션을 참조하세요. k-means 알고리즘은 복수의 인스턴스 학습을 지원하지 않으며, 훈련 세트는 라벨링되지 않은 인스턴스 집합인 라벨링된 "백"으로 구성됩니다.

## K-Means 알고리즘에 대한 EC2 인스턴스 권장 사항
<a name="km-instances"></a>

CPU 인스턴스에서 훈련 k-means를 권장합니다. GPU 인스턴스에서 훈련할 수 있지만 GPU 훈련을 ml.g4dn.xlarge와 같은 단일 GPU 인스턴스로 제한해야 합니다. 인스턴스당 단 하나의 GPU만 사용되기 때문입니다. k-means 알고리즘은 훈련 및 추론을 위해 P2, P3, G4dn, G5 인스턴스를 지원합니다.

## K-Means 샘플 노트북
<a name="kmeans-sample-notebooks"></a>

주 구성 요소 분석을 사용하여 식별된 속성에 따라 미국 내 카운티의 인구를 분할하기 위해 SageMaker AI K-means 알고리즘을 사용하는 샘플 노트북은 [Analyze US census data for population segmentation using Amazon SageMaker AI](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_applying_machine_learning/US-census_population_segmentation_PCA_Kmeans/sagemaker-countycensusclustering.html)를 참조하세요. SageMaker AI에서 예시 실행에 사용할 수 있는 Jupyter Notebook 인스턴스를 만들고 이 인스턴스에 액세스하는 방법에 대한 설명은 [Amazon SageMaker 노트북 인스턴스](nbi.md) 섹션을 참조하세요. 노트북 인스턴스를 만든 후 열면 **SageMaker AI 예시** 탭을 선택하여 모든 SageMaker AI 샘플 목록을 확인할 수 있습니다. 노트북을 열려면 **사용** 탭을 클릭하고 사본 생성을 선택합니다.

# k-means 클러스터링 작동 방식
<a name="algo-kmeans-tech-notes"></a>

k-means는 유사한 객체를 그룹화하는 모델을 교육하는 알고리즘입니다. k-means 알고리즘은 입력 데이터 세트의 각 관측치를 *n* 차원 공간(*n*은 관측치의 속성 수)의 지점으로 매핑하여 이를 달성합니다. 예를 들어 데이터 세트에는 특정 위치의 온도 및 습도 관측치가 포함될 수 있으며, 이는 2차원 공간의 지점(*t, h*)에 매핑됩니다.



**참고**  
클러스터링 알고리즘은 비지도 방식입니다. 비지도 학습에서 훈련 데이터 세트의 객체와 연결될 수 있는 레이블은 사용되지 않습니다. 자세한 내용은 [비지도 학습](algorithms-choose.md#algorithms-choose-unsupervised-learning) 섹션을 참조하세요.

k-means 클러스터링에서 각 클러스터에는 중심이 있습니다. 모델 훈련 도중 k-means 알고리즘은 클러스터링의 기반인 클러스터 중심까지 데이터 세트의 각 관측치에 해당하는 지점 거리를 사용합니다. 생성할 클러스터의 수(*k*)를 선택합니다.

예를 들어 수기 숫자를 인식하는 모델을 생성하고자 하는 경우 훈련용 MNIST 데이터 세트를 선택합니다. 데이터 세트는 수천 개의 수기 숫자 이미지를 제공합니다(0\$19). 이 예제에서 각 숫자별로(0, 1, …, 9) 하나씩 10개의 클러스터를 선택할 수 있습니다. 모델 훈련의 일환으로 k-means 알고리즘은 입력 이미지를 10개의 클러스터로 그룹화합니다.

MNIST 데이터 세트의 각 이미지는 28x28픽셀 이미지로, 총 784픽셀입니다. 각 이미지는 784차원 공간의 지점과 일치하고, 2차원 공간의 지점(x,y)과 유사합니다. 지점이 속하는 클러스터를 확인하기 위해 k-means 알고리즘은 모든 클러스터 중심으로부터 해당 지점의 거리를 확인합니다. 그리고 가장 근접한 중심이 포함된 클러스터를 이미지가 속하는 클러스터로 선택합니다.

**참고**  
Amazon SageMaker AI는 사용자 지정 버전의 알고리즘을 사용합니다. 해당 버전에서는 *k* 클러스터를 만드는 알고리즘을 지정하는 대신 추가 클러스터 중심*(K = k\$1x)*을 지정하여 모델 정확도를 개선시킬 수 있습니다. 하지만 알고리즘은 이를 *k* 클러스터로 줄입니다.

SageMaker AI에서 훈련 작업을 만들 때 클러스터의 수를 지정합니다. 자세한 내용은 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 단원을 참조하십시오. 요청 본문에서 `HyperParameters` 문자열 맵을 추가하여 `k` 및 `extra_center_factor` 문자열을 지정합니다.

다음은 SageMaker AI의 모델 훈련에 대한 k-means 작동 원리를 요약합니다.

1. 초기 *K* 클러스터 중심을 결정합니다.
**참고**  
다음 주제에서 *K* 클러스터는 *k \$1 x*를 참조합니다. 여기서 모델 훈련 작업 생성 시 *k* 및 *x*를 지정합니다.

1. 입력 훈련 데이터에 대해 반복하고 클러스터 중심을 다시 계산합니다.

1. 결과 클러스터를 *k*로 줄입니다(데이터 과학자가 요청에서 *k\$1x* 클러스터 생성을 지정한 경우).

다음 섹션은 데이터 과학자가 `HyperParameters` 문자열 맵의 일부로서 모델 훈련 작업을 구성하도록 지정할 수 있는 일부 파라미터를 설명합니다.

**Topics**
+ [1단계: 초기 클러스터 중심 결정](#kmeans-step1)
+ [2단계: 훈련 데이터 세트 반복 및 클러스터 중심 계산](#kmeans-step2)
+ [3단계: 클러스터를 *K*에서 *k*로 감소](#kmeans-step3)

## 1단계: 초기 클러스터 중심 결정
<a name="kmeans-step1"></a>

SageMaker AI에서 k-means를 사용할 때 초기 클러스터 중심은 소규모의 임의 샘플링된 배치의 관측치로부터 선택됩니다. 다음 전략 중 하나를 선택하여 초기 클러스터 중신의 선택 방법을 결정합니다.
+ 무작위 접근법 - 입력 데이터 세트에서 *K*개의 관측치를 클러스터 중심으로 무작위로 선택합니다. 예를 들어 MNIST 훈련 데이터 세트에 있는 10개의 이미지와 일치하는 784차원 공간을 가리키는 클러스터 중심을 선택할 수 있습니다.
+ k-means\$1\$1 접근 방식은 다음과 같이 작동합니다.

  1. 하나의 클러스터로 시작하고 중심을 결정합니다. 훈련 데이터 세트로부터 관측치를 임의적으로 선택하고 관측치와 일치하는 지점을 클러스터 중심으로 사용합니다. 예를 들어 MNIST 데이터 세트에서 수기 숫자 이미지를 임의적으로 선택합니다. 그런 다음 이미지와 일치하는 784차원 공간의 지점을 클러스터 중심으로 선택합니다. 이는 클러스터 중심 1입니다.

  1. 클러스터 2의 중심을 결정합니다. 훈련 데이터 세트의 남은 관측치에서 임의적으로 관측치를 선택합니다. 이전에 선택했던 것과는 다른 것을 선택합니다. 이 관측치는 클러스터 중심 1로부터 멀리 떨어진 지점과 일치합니다. MNIST를 예제로 사용하여 다음을 수행합니다.
     + 각각의 남은 이미지의 경우 클러스터 중심 1로부터 일치하는 지점의 거리를 확인합니다. 거리를 제곱하고 거리의 제곱에 비례하는 가능성을 할당합니다. 그러한 방식으로 이전에 선택했던 것과 다른 이미지는 클러스터 중심 2로 선택될 가능성이 더욱 높습니다.
     + 이전 단계에 할당된 가능성을 기반으로 이미지 중 하나를 임의적으로 선택합니다. 이미지와 일치하는 지점은 클러스터 중심 2입니다.

  1. 2단계를 반복하여 클러스터 중심 3을 찾습니다. 이번에는 클러스터 중심 2로부터 남은 이미지의 거리를 확인합니다.

  1. *K* 클러스터 중심을 확보할 때까지 프로세스를 반복합니다.

SageMaker AI에서 모델을 훈련하려면 훈련 작업을 만듭니다. 요청에서 다음 `HyperParameters` 문자열 맵을 지정하여 구성 정보를 제공합니다.
+ 생성할 클러스터의 수를 지정하려면 `k` 문자열을 추가합니다.
+ 더 높은 정확도를 위해 선택 사항으로 `extra_center_factor` 문자열을 추가합니다.
+ 초기 클러스터 중심을 결정할 때 사용하고자 하는 전략을 지정하려면 `init_method` 문자열을 추가하고 그 값을 `random` 또는 `k-means++`로 설정합니다.

SageMaker AI k-means 예측기에 대한 자세한 내용은 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) 설명서에서 [K-means](https://sagemaker.readthedocs.io/en/stable/algorithms/unsupervised/kmeans.html)를 참조하세요.

이제 초기 클러스터 중심 세트를 보유합니다.

## 2단계: 훈련 데이터 세트 반복 및 클러스터 중심 계산
<a name="kmeans-step2"></a>

이전 단계에서 생성한 클러스터 중심은 대부분 임의적인 것으로 훈련 데이터 세트에 대한 일부 고려가 포함됩니다. 이 단계에서 훈련 데이터 세트를 사용하여 이 중심을 진짜 클러스터 중심으로 이동합니다. 알고리즘은 훈련 데이터 세트를 반복하고 *K* 클러스터 중심을 다시 계산합니다.

1. 훈련 데이터 세트에서 관측치의 미니 배치(모든 레코드에서 임의적으로 선택된 소형 서브셋)를 읽고 다음을 수행합니다.
**참고**  
모델 훈련 작업 생성 시 `mini_batch_size` 문자열 맵의 `HyperParameters` 문자열에서 배치 크기를 지정합니다.

   1. 미니 배치의 모든 관측치를 가장 가까이에 있는 클러스터 중심이 포함된 클러스터 중 하나로 할당합니다.

   1. 각 클러스터에 할당된 관측치의 수를 계산합니다. 그런 다음 클러스터당 할당된 새 지점의 비율을 계산합니다.

      예를 들어 다음 클러스터를 고려해 보세요.

      클러스터 c1 = 이전에 할당된 100개의 지점. 이 단계의 미니 배치에서 25개의 지점을 추가합니다.

      클러스터 c2 = 이전에 할당된 150개의 지점. 이 단계의 미니 배치에서 40개의 지점을 추가합니다.

      클러스터 c3 = 이전에 할당된 450개의 지점. 이 단계의 미니 배치에서 5개의 지점을 추가합니다.

      다음과 같이 각 클러스터에 할당된 새 지점의 비율을 계산합니다.

      ```
      p1 = proportion of points assigned to c1 = 25/(100+25)
      p2 = proportion of points assigned to c2 = 40/(150+40)
      p3 = proportion of points assigned to c3 = 5/(450+5)
      ```

   1. 각 클러스터에 추가된 새 지점의 중심 컴퓨팅:

      ```
      d1 = center of the new points added to cluster 1
      d2 = center of the new points added to cluster 2
      d3 = center of the new points added to cluster 3
      ```

   1. 다음과 같이 업데이트된 클러스터 중심을 찾는 가중치 평균 컴퓨팅:

      ```
      Center of cluster 1 = ((1 - p1) * center of cluster 1) + (p1 * d1)
      Center of cluster 2 = ((1 - p2) * center of cluster 2) + (p2 * d2)
      Center of cluster 3 = ((1 - p3) * center of cluster 3) + (p3 * d3)
      ```

1. 다음 미니 배치를 읽고 1단계를 반복하여 클러스터 중심을 다시 계산합니다.

1. 미니 배치 *k*-means에 대한 자세한 정보는 [웹 스케일 k-means 클러스터링](https://citeseerx.ist.psu.edu/document?repid=rep1type=pdf&doi=b452a856a3e3d4d37b1de837996aa6813bedfdcf)을 참조하세요.

## 3단계: 클러스터를 *K*에서 *k*로 감소
<a name="kmeans-step3"></a>

알고리즘이 *x*가 1보다 큰 경우 *K = k\$1x*인 *K* 클러스터를 생성하는 경우 이는 *K* 클러스터를 *k* 클러스터로 축소합니다. (자세한 정보는 이전 논의의 `extra_center_factor` 참조) Lloyd의 메서드를 `kmeans++` 초기화와 함께 *K* 클러스터 중심에 적용하여 이 작업을 수행합니다. Lloyd의 메서드에 대한 자세한 정보는 [k-means clustering](https://pdfs.semanticscholar.org/0074/4cb7cc9ccbbcdadbd5ff2f2fee6358427271.pdf)을 참조하세요.

# k-means 하이퍼파라미터
<a name="k-means-api-config"></a>

[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 요청에서 사용하고자 하는 훈련 알고리즘을 지정합니다. 알고리즘별 하이퍼파라미터를 문자열-문자열 맵으로 지정할 수 있습니다. 다음 테이블에는 Amazon SageMaker AI에서 제공되는 k-means 훈련 알고리즘에 대한 하이퍼파라미터가 나열되어 있습니다. k-means 클러스터링 작동 방식에 대한 자세한 정보는 [k-means 클러스터링 작동 방식](algo-kmeans-tech-notes.md) 섹션을 참조하세요.


| 파라미터 이름 | 설명 | 
| --- | --- | 
| feature\$1dim | 입력 데이터의 특징 수. **필수** 유효한 값: 양수  | 
| k |  필요한 클러스터 수. **필수** 유효한 값: 양수  | 
| epochs | 훈련 데이터에 대한 전달 횟수. **선택 사항** 유효한 값: 양수 기본값: 1  | 
| eval\$1metrics | 모델에 대한 점수를 보고하는 데 사용되는 지표 유형의 JSON 목록. 허용되는 값은 평균 제곱 편차의 경우 `msd`이고, 제곱 거리의 합의 경우 `ssd`입니다. 테스트 데이터가 제공된 경우에는 요청된 각 지표에 대해 점수가 보고됩니다. **선택 사항** 유효한 값: `[\"msd\"]`, `[\"ssd\"]` 또는 `[\"msd\",\"ssd\"]`. 기본값: `[\"msd\"]`  | 
| extra\$1center\$1factor | 이 알고리즘은 실행 시 K 중심 = `num_clusters` \$1 `extra_center_factor`를 생성하고 모델 완료 시 중심 수를 K에서 `k`로 줄입니다. **선택 사항** 유효한 값: 양의 정수 또는 `auto`. 기본값: `auto`  | 
| half\$1life\$1time\$1size | 클러스터 평균을 계산할 때 관측치에 지정할 가중치를 결정하는 데 사용됩니다. 더 많은 지점을 관측할수록 가중치는 급격하게 감소합니다. 지점이 처음으로 관측되는 경우 클러스터 평균을 계산할 때 해당 지점에는 가중치 1이 할당됩니다. `half_life_time_size` 지점을 관측한 이후 가중치는 1/2이 되도록 지수 감소 함수의 감소 상수를 선택합니다. 0으로 설정된 경우 감퇴가 없습니다. **선택 사항** 유효한 값: 음수가 아닌 정수 기본값: 0  | 
| init\$1method | 이 알고리즘이 초기 클러스터 중심을 선택하는 메서드. 표준 k-means 접근 방식은 이러한 메서드를 무작위로 선택합니다. 대체 k-means\$1\$1 메서드는 첫 번째 클러스터 중심을 무작위로 선택합니다. 그런 다음 기존 중심에서 남은 데이터 포인트까지 거리의 제곱에 비례하는 가능성 분포로 중심 선택에 가중치를 부여해 초기 클러스터의 위치를 분산시킵니다. **선택 사항** 유효한 값: `random` 또는 `kmeans++`. 기본값: `random`  | 
| local\$1lloyd\$1init\$1method | `k` 중심이 포함된 최종 모델을 빌드하기 위해 사용되는 Lloyd의 Expectation–Maximization(EM) 프로시저에 대한 초기화 메서드. **선택 사항** 유효한 값: `random` 또는 `kmeans++`. 기본값: `kmeans++`  | 
| local\$1lloyd\$1max\$1iter | `k` 중심이 포함된 최종 모델을 빌드하기 위해 사용되는 Lloyd의 Expectation–Maximization(EM) 프로시저에 대한 최대 반복 횟수. **선택 사항** 유효한 값: 양수 기본값: 300  | 
| local\$1lloyd\$1num\$1trials | `k` 중심이 포함된 최종 모델을 빌드하는 경우 손실이 가장 낮은 Lloyd의 Expectation–Maximization(EM) 프로시저가 실행되는 횟수. **선택 사항** 유효한 값: 양의 정수 또는 `auto`. 기본값: `auto`  | 
| local\$1lloyd\$1tol | `k` 중심이 포함된 최종 모델을 빌드하기 위해 사용되는 Lloyd의 Expectation–Maximization(EM) 프로시저의 조기 중지에 대한 손실 변화 내결함성. **선택 사항** 유효한 값: 부동 소수점. 범위: [0, 1]. 기본값: 0.0001  | 
| mini\$1batch\$1size | 데이터 반복자의 미니 배치당 관측치의 수. **선택 사항** 유효한 값: 양수 기본값: 5000  | 

# K-Means 모델 튜닝
<a name="k-means-tuning"></a>

하이퍼파라미터 튜닝이라고도 하는 자동 모델 튜닝은 데이터세트에 대한 광범위한 하이퍼파라미터를 테스트하는 여러 작업을 실행하여 최적의 모델 버전을 찾습니다.** 튜닝 가능한 하이퍼파라미터, 각 하이퍼파라미터에 대한 값 범위 및 목표 지표를 선택합니다. 알고리즘에서 계산하는 지표 중에서 목표 지표를 선택합니다. 자동 모델 튜닝은 선택한 하이퍼파라미터를 검색하여 목표 지표를 최적화하는 모델을 만드는 값 조합을 찾습니다.

Amazon SageMaker AI k-means 알고리즘은 가능한 한 구성원이 유사한 클러스터로 데이터를 그룹화하는 비지도 알고리즘입니다. 비지도 알고리즘이기 때문에 하이퍼파라미터가 최적화할 수 있는 기준이 되는 검증 데이터 세트를 사용하지 않습니다. 그러나 테스트 데이터 세트를 사용해 각 훈련 실행 종료 시 데이터 포인트와 최종 클러스터 중심 사이의 제곱 거리에 따라 달라지는 지표를 내보냅니다. 테스트 데이터 세트에 대해 밀집도가 가장 높은 클러스터를 보고하는 모델을 찾기 위해 하이퍼파라미터 튜닝 작업을 사용할 수 있습니다. 클러스터는 구성원의 유사성을 최적화합니다.

모델 튜닝에 대한 추가 정보는 [SageMaker AI로 자동 모델 튜닝](automatic-model-tuning.md) 섹션을 참조하세요.

## K-Means 알고리즘으로 계산되는 지표
<a name="km-metrics"></a>

k-means 알고리즘은 훈련 중 다음 지표를 계산합니다. 모델을 튜닝할 때 목표 지표로 이러한 지표 중 하나를 선택합니다.


| 지표 이름 | 설명 | 최적화 방향 | 
| --- | --- | --- | 
| test:msd | 테스트 세트의 각 레코드와 모델의 가장 가까운 중심 간 평균 제곱 거리. | 최소화 | 
| test:ssd | 테스트 세트의 각 레코드와 모델의 가장 가까운 중심 간 제곱 거리 합. | 최소화 | 



## 튜닝 가능한 K-Means 하이퍼파라미터
<a name="km-tunable-hyperparameters"></a>

다음 하이퍼파라미터를 사용하여 Amazon SageMaker AI k-means 모델을 튜닝합니다. k-means 목표 지표에 가장 큰 영향을 미치는 하이퍼파라미터는 `mini_batch_size`, `extra_center_factor` 및 `init_method`입니다. 하이퍼파라미터 `epochs`를 튜닝할 경우 일반적으로 개선 결과는 미미합니다.


| 파라미터 이름 | 파라미터 유형 | 권장 범위 | 
| --- | --- | --- | 
| epochs | IntegerParameterRanges | MinValue: 1, MaxValue:10 | 
| extra\$1center\$1factor | IntegerParameterRanges | MinValue: 4, MaxValue: 10 | 
| init\$1method | CategoricalParameterRanges | ['kmeans\$1\$1', 'random'] | 
| mini\$1batch\$1size | IntegerParameterRanges | MinValue: 3000, MaxValue:15000 | 

# K-Means 응답 형식
<a name="km-in-formats"></a>

모든 SageMaker AI 기본 제공 알고리즘은 [공통 데이터 형식 - 추론](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html)에서 설명하는 공통 입력 추론 형식을 따릅니다. 이 주제에는 SageMaker AI k-means 알고리즘에 사용 가능한 출력 형식 목록이 포함되어 있습니다.

## JSON 응답 형식
<a name="km-json"></a>

```
{
    "predictions": [
        {
            "closest_cluster": 1.0,
            "distance_to_cluster": 3.0,
        },
        {
            "closest_cluster": 2.0,
            "distance_to_cluster": 5.0,
        },

        ....
    ]
}
```

## JSONLINES 응답 형식
<a name="km-jsonlines"></a>

```
{"closest_cluster": 1.0, "distance_to_cluster": 3.0}
{"closest_cluster": 2.0, "distance_to_cluster": 5.0}
```

## RECORDIO 응답 형식
<a name="km-recordio"></a>

```
[
    Record = {
        features = {},
        label = {
            'closest_cluster': {
                keys: [],
                values: [1.0, 2.0]  # float32
            },
            'distance_to_cluster': {
                keys: [],
                values: [3.0, 5.0]  # float32
            },
        }
    }
]
```

## CSV 응답 형식
<a name="km-csv"></a>

각 행의 첫 번째 값은 `closest_cluster`에 해당됩니다.

각 행의 두 번째 값은 `distance_to_cluster`에 해당됩니다.

```
1.0,3.0
2.0,5.0
```