더 이상 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
,f
및false
입니다.유효한 양수 값은
1
,y
,yes
,t
및true
입니다.Amazon ML은 이진 입력의 대소문자를 무시하고 앞뒤 공백을 제거합니다. 예를 들어
" FaLSe "
는 유효한 이진수 값입니다. 같은 데이터 소스에서 사용하는 이진수 값을 혼합하여 사용할 수 있습니다(예:true
,no
및1
사용). Amazon ML은 이진 속성에 대해0
및1
만 출력합니다. - 범주형
-
제한된 수의 고유 문자열 값을 가진 속성의 경우
CATEGORICAL
을 선택합니다. 예를 들어 사용자 ID, 월, 우편번호가 범주형 값에 해당합니다. 범주형 속성은 단일 문자열로 처리되며 더 이상 토큰화되지 않습니다. - 숫자
-
수량을 값으로 취하는 속성의 경우
NUMERIC
을 선택합니다.예를 들어 온도, 무게, 클릭률이 숫자 값에 해당합니다.
숫자를 포함하는 모든 속성이 숫자인 것은 아닙니다. 달의 어떤 날짜 및 ID와 같은 범주형 속성도 종종 숫자로 표시됩니다. 숫자로 간주되려면 숫자가 다른 숫자와 비슷해야 합니다. 예를 들어 고객 ID
664727
은 고객 ID124552
에 대해 아무 것도 알려주지 않지만 가중치가10
인 경우 해당 속성이 가중치가5
인 속성보다 무겁다는 것을 나타냅니다. 달의 어떤 날짜는 어떤 달의 첫 날이 다른 달의 두 번째 날보다 앞이나 뒤에 올 수 있기 때문에 숫자에 해당되지 않습니다.참고
Amazon ML을 사용하여 스키마를 생성하면 숫자를 사용하는 모든 속성에
Numeric
데이터 유형이 할당됩니다. Amazon ML에서 스키마를 생성하는 경우 잘못된 할당이 있는지 확인하고 해당 속성을CATEGORICAL
로 설정합니다. - 텍스트
-
단어 문자열에 해당하는 속성의 경우
TEXT
을 선택합니다. 텍스트 속성을 읽을 때 Amazon ML은 이들 속성을 공백으로 구분된 토큰으로 변환합니다.예를 들어,
email subject
은email
및subject
이 되고,email-subject here
는email-subject
및here
이 됩니다.
학습 스키마의 변수에 대한 데이터 유형이 평가 스키마의 해당 변수에 대한 데이터 유형과 일치하지 않는 경우 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에서 사용할 수 있도록 설정해야 합니다. 여기에는 두 가지 옵션이 있습니다.
-
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 가 됩니다.
-
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 참조 단원을 참조하세요.