기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
K-Nearest Neighbors(k-NN) 알고리즘
Amazon SageMaker k-Nearest Neighbors(k-NN) 알고리즘은 인덱스 기반 알고리즘입니다. 이 알고리즘은 분류 또는 회귀에 비모수적 방법을 사용합니다. 분류 문제의 경우 이 알고리즘은 샘플 지점과 가장 가까운 k 지점을 쿼리하여 가장 자주 사용하는 클래스 레이블을 예측 레이블로 반환합니다. 회귀 문제의 경우 이 알고리즘은 샘플 지점과 가장 가까운 k 지점을 쿼리해 특징 값의 평균을 예측 값으로 반환합니다.
k-NN 알고리즘을 사용한 훈련에는 샘플링, 차원 감소 및 인덱스 빌드, 이렇게 3가지 단계가 있습니다. 샘플링은 메모리에 맞도록 최초 데이터 세트의 크기를 줄입니다. 차원 감소를 위해 이 알고리즘은 데이터의 특징 차원을 줄여 메모리 내에서 k-NN 모델이 차지하는 공간을 줄이고 추론 지연 시간을 단축합니다. 차원 감소 메서드로 Random Projection과 빠른 Johnson-Lindenstrauss 변환 두 가지를 제공합니다. 일반적으로, 차원의 증가에 따라 밀도가 떨어지는 데이터의 통계적 분석 문제를 일으키는 "차원의 저주"(curse of dimensionality)를 피하기 위해 고차원(d >1000) 데이터 세트에 대해 차원 감소를 사용합니다. k-NN의 주요 훈련 목표는 인덱스를 생성하는 것입니다. 인덱스를 사용하면 값 또는 클래스 레이블이 아직 확인되지 않은 지점과 추론에 사용할 k nearest 지점 간에 거리를 효율적으로 조회할 수 있습니다.
주제
k-NN 알고리즘에 대한 입력/출력 인터페이스
SageMaker k-NN은 훈련 및 테스트 데이터 채널을 지원합니다.
-
train 채널은 샘플링하거나 k-NN 인덱스로 생성하려는 데이터에 사용합니다.
-
test 채널은 로그 파일에 점수를 내보냅니다. 점수는 미니 배치당 행 하나로 나열되는데,
classifier
는 정확도,regressor
점수는 평균 제곱근 오차(mse)를 나타냅니다.
훈련 입력의 경우 k-NN은 text/csv
및 application/x-recordio-protobuf
데이터 형식을 지원합니다. 입력 유형 text/csv
의 경우 첫 번째 label_size
열은 해당 행의 레이블 벡터로 해석됩니다. 파일 모드 또는 파이프 모드를 사용하여 recordIO-wrapped-protobuf
또는 CSV
로 형식이 지정된 데이터에 대해 모델을 훈련할 수 있습니다.
추론 입력의 경우 k-NN은 application/json
, application/x-recordio-protobuf
및 text/csv
데이터 형식을 지원합니다. text/csv
형식은 label_size
및 인코딩 파라미터를 수용하고, label_size
를 0으로 가정하고 UTF-8 인코딩을 가정합니다.
추론 출력의 경우 k-NN은 application/json
및 application/x-recordio-protobuf
데이터 형식을 지원합니다. 이러한 두 가지 데이터 형식 역시 verbose 출력 모드를 지원합니다. 세부 출력 모드에서 는 검색 결과에 가장 작은 것부터 가장 큰 것까지 정렬된 거리 벡터와 레이블 벡터의 해당 요소를 API 제공합니다.
배치 변환의 경우 k-NN은 입력 및 출력 둘 다에 대해 application/jsonlines
데이터 형식을 지원합니다. 예제 입력은 다음과 같습니다.
content-type: application/jsonlines {"features": [1.5, 16.0, 14.0, 23.0]} {"data": {"features": {"values": [1.5, 16.0, 14.0, 23.0]}}
예제 출력은 다음과 같습니다.
accept: application/jsonlines {"predicted_label": 0.0} {"predicted_label": 2.0}
입력 및 출력 파일 형식에 대한 자세한 정보는 k-NN 훈련 입력을 위한 데이터 형식(훈련의 경우), k-NN 요청 및 응답 형식(추론의 경우) 및 k-NN 샘플 노트북 단원을 참조하세요.
k-NN 샘플 노트북
SageMaker k-가장 가까운 이웃 알고리즘을 사용하여 지리 및 숲 서비스 데이터에서 황야 커버 유형을 예측하는 샘플 노트북은 K-가 가장 가까운 이웃 커버타입을
Jupyter 노트북 인스턴스를 사용하여 에서 예제를 실행합니다 SageMaker. 에서 Jupyter 노트북 인스턴스를 생성하고 여는 방법을 알아보려면 섹션을 SageMaker참조하세요Amazon SageMaker 노트북 인스턴스. 노트북 인스턴스를 생성하고 연 후 SageMaker 예제 탭을 선택하여 모든 SageMaker 예제 노트북 목록을 확인합니다. Introduction to Amazon algorithms(Amazon 알고리즘 소개) 섹션에서 K-Nearest Neighbor 노트북을 찾으세요. 노트북을 열려면 사용 탭을 클릭하고 Create copy(사본 생성)를 선택합니다.
EC2 k-NN 알고리즘에 대한 인스턴스 권장 사항
CPU 인스턴스(예: ml.m5.2xlarge) 또는 GPU 인스턴스에서 훈련하는 것이 좋습니다. k-NN 알고리즘은 훈련 및 추론을 위해 P2, P3, G4dn 및 G5 GPU 인스턴스 패밀리를 지원합니다.
의 추론 요청은 CPUs 일반적으로 의 요청보다 평균 지연 시간이 짧습니다. GPU 하드웨어 사용 시 통신에 CPU-to-GPU 세금이 부과되기 GPUs 때문입니다. 그러나 GPUs 일반적으로 더 큰 배치의 처리량은 더 높습니다.