

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

# k-NN 요청 및 응답 형식
<a name="kNN-inference-formats"></a>

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

## 입력: CSV 요청 형식
<a name="kNN-input-csv"></a>

content-type: text/csv

```
1.2,1.3,9.6,20.3
```

`label_size` 또는 인코딩 파라미터를 수용합니다. 0의 `label_size`와 utf-8 인코딩을 가정합니다.

## 입력: JSON 요청 형식
<a name="kNN-input-json"></a>

content-type: application/json

```
{
  "instances": [
    {"data": {"features": {"values": [-3, -1, -4, 2]}}},
    {"features": [3.0, 0.1, 0.04, 0.002]}]
}
```

## INPUT: JSONLINES 요청 형식
<a name="kNN-input-jsonlines"></a>

content-type: application/jsonlines

```
{"features": [1.5, 16.0, 14.0, 23.0]}
{"data": {"features": {"values": [1.5, 16.0, 14.0, 23.0]}}
```

## 입력: RECORDIO 요청 형식
<a name="kNN-input-recordio"></a>

content-type: application/x-recordio-protobuf

```
[
    Record = {
        features = {
            'values': {
                values: [-3, -1, -4, 2]  # float32
            }
        },
        label = {}
    },
    Record = {
        features = {
            'values': {
                values: [3.0, 0.1, 0.04, 0.002]  # float32
            }
        },
        label = {}
    },
]
```

## OUTPUT: JSON 응답 형식
<a name="kNN-output-json"></a>

accept: application/json

```
{
  "predictions": [
    {"predicted_label": 0.0},
    {"predicted_label": 2.0}
  ]
}
```

## OUTPUT: JSONLINES 응답 형식
<a name="kNN-output-jsonlines"></a>

accept: application/jsonlines

```
{"predicted_label": 0.0}
{"predicted_label": 2.0}
```

## 출력: VERBOSE JSON 응답 형식
<a name="KNN-output-verbose-json"></a>

verbose 모드에서 API는 가장 작은 항목에서 가장 큰 항목 순으로 정렬된 거리 벡터 및 레이블 벡터의 해당 요소와 함께 검색 결과를 제공합니다. 이 예에서는 k가 3으로 설정되어 있습니다.

accept: application/json; verbose=true

```
{
  "predictions": [
    {
        "predicted_label": 0.0,
        "distances": [3.11792408, 3.89746071, 6.32548437],
        "labels": [0.0, 1.0, 0.0]
    },
    {
        "predicted_label": 2.0,
        "distances": [1.08470316, 3.04917915, 5.25393973],
        "labels": [2.0, 2.0, 0.0]
    }
  ]
}
```

## 출력: RECORDIO-PROTOBUF 응답 형식
<a name="kNN-output-recordio-protobuf"></a>

content-type: application/x-recordio-protobuf

```
[
    Record = {
        features = {},
        label = {
            'predicted_label': {
                values: [0.0]  # float32
            }
        }
    },
    Record = {
        features = {},
        label = {
            'predicted_label': {
                values: [2.0]  # float32
            }
        }
    }
]
```

## 출력: VERBOSE RECORDIO-PROTOBUF 응답 형식
<a name="kNN-output-verbose-recordio"></a>

verbose 모드에서 API는 가장 작은 항목에서 가장 큰 항목 순으로 정렬된 거리 벡터 및 레이블 벡터의 해당 요소와 함께 검색 결과를 제공합니다. 이 예에서는 k가 3으로 설정되어 있습니다.

accept: application/x-recordio-protobuf; verbose=true

```
[
    Record = {
        features = {},
        label = {
            'predicted_label': {
                values: [0.0]  # float32
            },
            'distances': {
                values: [3.11792408, 3.89746071, 6.32548437]  # float32
            },
            'labels': {
                values: [0.0, 1.0, 0.0]  # float32
            }
        }
    },
    Record = {
        features = {},
        label = {
            'predicted_label': {
                values: [0.0]  # float32
            },
            'distances': {
                values: [1.08470316, 3.04917915, 5.25393973]  # float32
            },
            'labels': {
                values: [2.0, 2.0, 0.0]  # float32
            }
        }
    }
]
```

## k-NN 알고리즘의 샘플 출력
<a name="kNN-sample-output"></a>

regressor 작업의 경우:

```
[06/08/2018 20:15:33 INFO 140026520049408] #test_score (algo-1) : ('mse', 0.013333333333333334)
```

classifier 작업의 경우:

```
[06/08/2018 20:15:46 INFO 140285487171328] #test_score (algo-1) : ('accuracy', 0.98666666666666669)
```