Amazon ML용 데이터 스키마 생성 - Amazon Machine Learning

더 이상 Amazon Machine Learning 서비스를 업데이트하거나 새 사용자를 받지 않습니다. 이 설명서는 기존 사용자에 제공되지만 더 이상 업데이트되지 않습니다. 자세한 내용은 Amazon Machine Learning이란? 단원을 참조하세요.

Amazon ML용 데이터 스키마 생성

스키마는 입력 데이터의 모든 속성과 해당 데이터 유형으로 구성됩니다. Amazon ML은 이를 통해 데이터 소스의 데이터를 이해할 수 있습니다. Amazon ML은 스키마의 정보를 사용하여 입력 데이터를 읽고 해석하고, 통계를 계산하고, 올바른 속성 변환을 적용하고, 학습 알고리즘을 미세 조정합니다. 스키마를 제공하지 않으면 Amazon ML은 데이터에서 스키마를 추론합니다.

스키마 예제

Amazon ML이 입력 데이터를 올바르게 읽고 정확한 예측을 생성하려면 각 속성에 올바른 데이터 유형을 할당해야 합니다. 예제를 통해 데이터 유형이 속성에 할당되는 방식과 속성과 데이터 유형이 스키마에 포함되는 방식을 살펴보겠습니다. 이메일 캠페인에 응답할 고객을 예측하기 위해 이 예제를 "고객 캠페인"이라고 부르겠습니다. 입력 파일은 9개의 열로 구성된 .csv 파일입니다.

1,3,web developer,basic.4y,no,no,1,261,0 2,1,car repair,high.school,no,no,22,149,0 3,1,car mechanic,high.school,yes,no,65,226,1 4,2,software developer,basic.6y,no,no,1,151,0

이 데이터의 스키마는 다음과 같습니다.

{     "version": "1.0",     "rowId": "customerId",     "targetAttributeName": "willRespondToCampaign",     "dataFormat": "CSV",     "dataFileContainsHeader": false,     "attributes": [         {             "attributeName": "customerId",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "jobId",             "attributeType": "CATEGORICAL"         }, { "attributeName": "jobDescription", "attributeType": "TEXT" },         {             "attributeName": "education",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "housing",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "loan",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "campaign",             "attributeType": "NUMERIC"         },         {             "attributeName": "duration",             "attributeType": "NUMERIC"         }, { "attributeName": "willRespondToCampaign", "attributeType": "BINARY" } ] }

이 예제의 스키마 파일에서 rowId의 값은 customerId입니다.

"rowId": "customerId",

속성 willRespondToCampaign은 대상 속성으로 정의됩니다.

"targetAttributeName": "willRespondToCampaign ",

customerId 속성 및 CATEGORICAL 데이터 유형은 첫 번째 열과 연결되고, jobId 속성 및 CATEGORICAL 데이터 유형은 두 번째 열과 연결되고, jobDescription 속성 및 TEXT 데이터 유형은 세 번째 열과 연결되고, education 속성 및 CATEGORICAL 데이터 유형은 네 번째 열과 연결되는 식입니다. 아홉 번째 열은 BINARY 데이터 유형을 가진 willRespondToCampaign 속성과 연결되며 이 속성도 대상 속성으로 정의됩니다.

targetAttributeName 필드 사용

targetAttributeName 값은 예측하려는 속성의 이름입니다. 모델을 생성하거나 평가할 때 targetAttributeName를 할당해야 합니다.

ML 모델을 학습하거나 평가할 때 targetAttributeName는 입력 데이터에서 대상 속성에 대한 "정답"을 포함하고 있는 속성의 이름을 식별합니다. Amazon ML은 정답이 포함된 대상을 이용하여 패턴을 찾아내고 ML 모델을 생성합니다.

모델을 평가할 때 Amazon ML은 대상을 이용하여 예측의 정확성을 확인합니다. ML 모델을 생성하고 평가한 후에는 할당되지 않은 targetAttributeName를 이용하여 ML 모델로 예측을 생성할 수 있습니다.

대상 속성은 데이터 소스를 생성할 때 Amazon ML 콘솔이나 스키마 파일에서 정의합니다. 자체 스키마 파일을 생성하는 경우 다음 구문을 사용하여 대상 속성을 정의합니다.

"targetAttributeName": "exampleAttributeTarget",

이 예제에서 exampleAttributeTarget는 입력 파일에 있는 대상 속성의 이름입니다.

rowID 필드 사용

row ID는 입력 데이터의 속성과 관련된 선택적 플래그입니다. 지정된 경우 row ID로 표시된 속성이 예측 출력에 포함됩니다. 이 속성을 이용하면 어떤 예측이 어떤 관측치에 대응하는지 쉽게 연결할 수 있습니다. 양호한 row ID의 예로는 고객 ID 또는 이와 유사한 고유 속성이 있습니다.

참고

행 ID는 참조용으로만 사용됩니다. Amazon ML은 ML 모델을 학습할 때 이를 사용하지 않습니다. 속성을 행 ID로 선택하면 ML 모델 학습에 사용되지 않습니다.

데이터 소스를 생성할 때 Amazon ML 콘솔이나 스키마 파일에서 row ID을 정의합니다. 자체 스키마 파일을 생성하는 경우 다음 구문을 사용하여 row ID을 정의합니다.

"rowId": "exampleRow",

위 예제에서 exampleRow는 행 ID로 정의된 입력 파일의 속성 이름입니다.

배치 예측을 생성할 때 출력은 다음과 같습니다.

tag,bestAnswer,score 55,0,0.46317 102,1,0.89625

이 예제에서 RowID는 속성 customerId를 나타냅니다. 예를 들어 customerId 55는 이메일 캠페인에 대해 낮은 신뢰도(0.46317)로 응답할 것으로 예측되는 반면, customerId 102은 이메일 캠페인에 대해 높은 신뢰도(0.89625)로 응답할 것으로 예측됩니다.

AttributeType 필드 사용

Amazon ML에는 속성에 대한 다음 4가지 데이터 유형이 있습니다.

이진

가능한 상태가 두 개(예: yes 또는 no)만 있는 속성의 경우 BINARY을 선택합니다.

예를 들어, 속성 isNew는 개인이 신규 고객인지 여부를 추적하기 위한 것으로, 개인이 신규 고객임을 나타내는 true 값과, 신규 고객이 아님을 나타내는 false 값이 있습니다.

유효한 음수 값은 0, n, no, ffalse입니다.

유효한 양수 값은 1, y, yes, ttrue입니다.

Amazon ML은 이진 입력의 대소문자를 무시하고 앞뒤 공백을 제거합니다. 예를 들어 " FaLSe "는 유효한 이진수 값입니다. 같은 데이터 소스에서 사용하는 이진수 값을 혼합하여 사용할 수 있습니다(예: true, no1 사용). Amazon ML은 이진 속성에 대해 01만 출력합니다.

범주형

제한된 수의 고유 문자열 값을 가진 속성의 경우 CATEGORICAL을 선택합니다. 예를 들어 사용자 ID, 월, 우편번호가 범주형 값에 해당합니다. 범주형 속성은 단일 문자열로 처리되며 더 이상 토큰화되지 않습니다.

숫자

수량을 값으로 취하는 속성의 경우 NUMERIC을 선택합니다.

예를 들어 온도, 무게, 클릭률이 숫자 값에 해당합니다.

숫자를 포함하는 모든 속성이 숫자인 것은 아닙니다. 달의 어떤 날짜 및 ID와 같은 범주형 속성도 종종 숫자로 표시됩니다. 숫자로 간주되려면 숫자가 다른 숫자와 비슷해야 합니다. 예를 들어 고객 ID 664727은 고객 ID124552 에 대해 아무 것도 알려주지 않지만 가중치가 10인 경우 해당 속성이 가중치가 5인 속성보다 무겁다는 것을 나타냅니다. 달의 어떤 날짜는 어떤 달의 첫 날이 다른 달의 두 번째 날보다 앞이나 뒤에 올 수 있기 때문에 숫자에 해당되지 않습니다.

참고

Amazon ML을 사용하여 스키마를 생성하면 숫자를 사용하는 모든 속성에 Numeric 데이터 유형이 할당됩니다. Amazon ML에서 스키마를 생성하는 경우 잘못된 할당이 있는지 확인하고 해당 속성을 CATEGORICAL로 설정합니다.

텍스트

단어 문자열에 해당하는 속성의 경우 TEXT을 선택합니다. 텍스트 속성을 읽을 때 Amazon ML은 이들 속성을 공백으로 구분된 토큰으로 변환합니다.

예를 들어, email subjectemailsubject이 되고, email-subject hereemail-subjecthere이 됩니다.

학습 스키마의 변수에 대한 데이터 유형이 평가 스키마의 해당 변수에 대한 데이터 유형과 일치하지 않는 경우 Amazon ML은 교육 데이터 유형과 일치하도록 평가 데이터 유형을 변경합니다. 예를 들어 학습 데이터 스키마는 변수 age에 대해 TEXT의 데이터 유형을 할당하지만 평가 스키마는 age에 대해 NUMERIC의 데이터 유형을 할당하는 경우 Amazon ML은 평가 데이터의 연령을 TEXT 변수 대신 NUMERIC 변수로 취급합니다.

각 데이터 유형과 관련된 통계에 대한 자세한 내용은 설명 통계 단원을 참조하세요.

Amazon ML에 스키마 제공

모든 데이터 소스에는 스키마가 필요합니다. 다음 두 가지 방법 중에서 선택하여 Amazon ML에 스키마를 제공할 수 있습니다.

  • Amazon ML은 입력 데이터 파일에 있는 각 속성의 데이터 유형을 추론하고 자동으로 스키마를 생성하도록 허용합니다.

  • Amazon Simple Storage Service(Amazon S3) 데이터를 업로드할 때 스키마 파일을 제공합니다.

Amazon ML이 스키마를 생성하도록 허용

Amazon ML 콘솔을 사용하여 데이터 소스를 생성할 때 Amazon ML은 변수 값을 기반으로 하는 간단한 규칙을 사용하여 스키마를 생성합니다. Amazon ML에서 생성한 스키마를 검토하고 정확하지 않은 경우 데이터 유형을 수정하는 것이 좋습니다.

스키마 제공

스키마 파일을 생성한 후에는 Amazon ML에서 사용할 수 있도록 설정해야 합니다. 여기에는 두 가지 옵션이 있습니다.

  1. Amazon ML 콘솔을 사용하여 스키마를 제공합니다.

    콘솔을 사용하여 데이터 소스를 생성하고, 입력 데이터 파일의 파일 이름에 .schema 확장자를 추가하여 스키마 파일을 포함시킵니다. 예를 들어 입력 데이터에 대한 Amazon Simple Storage Service(Amazon S3) URI가 s3://my-bucket-name/data/input.csv 인 경우 스키마의 URI는 s3://my-bucket-name/data/input.csv.schema 가 됩니다. Amazon ML은 데이터에서 스키마를 유추하려고 하지 않고 사용자가 제공한 스키마 파일을 자동으로 찾습니다.

    파일 디렉터리를 Amazon ML에 대한 데이터 입력으로 사용하려면 디렉터리 경로에 .schema 확장자를 추가합니다. 예를 들어 데이터 파일이 s3://examplebucket/path/to/data/ 위치에 있는 경우 스키마의 URI는 s3://examplebucket/path/to/data/.schema 가 됩니다.

  2. Amazon ML API를 사용하여 스키마를 제공합니다.

    Amazon ML API를 호출하여 데이터 소스를 생성하려는 경우, Amazon S3에 스키마 파일을 업로드한 다음 CreateDataSourceFromS3 API의 DataSchemaLocationS3 속성에서 해당 파일에 URI를 제공할 수 있습니다. 자세한 내용은 CreateDataSourceFromS3를 참조하세요.

    스키마를 Amazon S3에 먼저 저장하는 대신 CreateDataSource* APIs 페이로드에 직접 제공해도 됩니다. 이렇게 하려면 전체 스키마 문자열을 CreateDataSourceFromS3, CreateDataSourceFromRDS 또는 CreateDataSourceFromRedshift API의 DataSchema 속성에 배치합니다. 자세한 내용은 Amazon Machine Learning API 참조 단원을 참조하세요.