데이터 변환 참조 - Amazon Machine Learning

Amazon Machine Learning 서비스를 더 이상 업데이트하거나 새 사용자를 수락하지 않습니다. 이 설명서는 기존 사용자가 사용할 수 있지만 더 이상 업데이트하지 않습니다. 자세한 내용은 단원을 참조하십시오.Amazon Machine Learning.

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

데이터 변환 참조

N-gram 변환

n-gram 변환은 텍스트 변수를 입력으로 받아 (사용자 구성 가능) n 단어의 창을 슬라이딩하는 것에 해당하는 문자열을 생성하여 프로세스에서 출력을 생성합니다. 예를 들어, “이 책을 읽는 것을 정말 즐겼다”라는 텍스트 문자열을 생각해보십시오.

window size=1인 n-gram 변환을 지정하면 해당 문자열의 모든 개별 단어가 제공됩니다.

{"I", "really", "enjoyed", "reading", "this", "book"}

창 크기 = 2인 n-gram 변환을 지정하면 모든 2단어 조합과 1단어 조합이 제공됩니다.

{"I really", "really enjoyed", "enjoyed reading", "reading this", "this book", "I", "really", "enjoyed", "reading", "this", "book"}

창 크기 = 3인 n-gram 변환을 지정하면 이 목록에 3단어 조합이 추가되어 다음과 같은 결과를 얻을 수 있습니다.

{"I really enjoyed", "really enjoyed reading", "enjoyed reading this", "reading this book", "I really", "really enjoyed", "enjoyed reading", "reading this", "this book", "I", "really", "enjoyed", "reading", "this", "book"}

크기가 2-10단어인 n그램을 요청할 수 있습니다. 크기가 1인 N-그램은 데이터 스키마의 유형이 텍스트로 표시된 모든 입력에 대해 암시적으로 생성되므로 이를 요청할 필요가 없습니다. 마지막으로 공백 문자의 입력 데이터를 분리하여 n-gram이 생성된다는 점에 유의하십시오. 즉, 구두점 문자는 토큰이라는 단어의 일부로 간주됩니다. 문자열 “빨강, 녹색, 파랑”에 대해 2 개의 윈도우로 n 그램을 생성하면 {"빨강,”, “녹색,”, “파랑”, “빨강, 녹색”, “녹색, 파란색”} 이 생성됩니다. 구두점 제거 프로세서 (이 문서의 뒷부분에 설명되어 있음) 를 사용하여 구두점 기호를 제거할 수 있습니다.

변수 var1에 대해 윈도우 크기 3의 n그램을 계산하려면 다음을 수행하십시오.

"ngram(var1, 3)"

직교 스파스 비그람 (OSB) 변환

OSB 변환은 텍스트 문자열 분석을 돕기 위한 것이며, 이중 그램 변환 (창 크기가 2인 n 그램) 의 대안입니다. OSB는 n 크기의 창을 텍스트 위로 슬라이딩하고 창의 첫 번째 단어가 포함된 모든 단어 페어를 출력하여 생성됩니다.

각 OSB를 빌드하기 위해 구성 단어는 “_" (밑줄) 문자로 결합되며 건너뛴 모든 토큰은 OSB에 다른 밑줄을 추가하여 표시됩니다. 따라서 OSB는 창 내에 표시된 토큰뿐만 아니라 동일한 창 내에서 건너뛴 토큰 수를 표시하도록 인코딩합니다.

설명하기 위해 문자열 “Squick brown fox jumps over the dog”이 되고 크기 4인 OSB를 고려하십시오. 다음 예에서는 네 단어 창과 문자열 끝의 마지막 두 개의 짧은 창과 각 창에서 생성된 OSB를 보여 줍니다.

창, {OSB가 생성됨}

"The quick brown fox", {The_quick, The__brown, The___fox} "quick brown fox jumps", {quick_brown, quick__fox, quick___jumps} "brown fox jumps over", {brown_fox, brown__jumps, brown___over} "fox jumps over the", {fox_jumps, fox__over, fox___the} "jumps over the lazy", {jumps_over, jumps__the, jumps___lazy} "over the lazy dog", {over_the, over__lazy, over___dog} "the lazy dog", {the_lazy, the__dog} "lazy dog", {lazy_dog}

직교 희소 비그람은 어떤 상황에서는 더 잘 작동할 수 있는 n-grams의 대안입니다. 데이터에 큰 텍스트 필드 (10개 이상의 단어) 가 있는 경우 어떤 것이 더 잘 작동하는지 실험해 보십시오. 큰 텍스트 필드를 구성하는 항목은 상황에 따라 다를 수 있습니다. 그러나 텍스트 필드가 클수록 OSB는 특수 텍스트로 인해 텍스트를 고유하게 표현하도록 경험적으로 표시되었습니다.스킵기호 (밑줄).

입력 텍스트 변수에 대한 OSB 변환에 대해 창 크기를 2-10으로 요청할 수 있습니다.

변수 var1에 대해 창 크기가 5인 OSB를 계산하려면

“osb (바르1, 5)”

소문자 변환

소문자 변환 프로세서는 텍스트 입력을 소문자로 변환합니다. 예를 들어, “빠른 갈색 여우가 게으른 개를 뛰어 넘다”라는 입력이 주어지면 프로세서는 “빠른 갈색 여우가 게으른 개 위로 점프”를 출력합니다.

변수 var1에 소문자 변환을 적용하려면

“소문자 (var1)”

문장 변환 제거

Amazon ML은 데이터 스키마에 텍스트로 표시된 입력을 공백으로 암시적으로 분할합니다. 문자열의 구두점은 주변의 공백에 따라 인접한 단어 토큰 또는 완전히 별도의 토큰으로 끝납니다. 바람직하지 않은 경우 구두점 제거 변환을 사용하여 생성된 피쳐에서 구두점 기호를 제거할 수 있습니다. 예를 들어, “AML에 오신 것을 환영합니다 - 안전 벨트를 고정하십시오!” 라는 문자열이 주어집니다. 다음 토큰 집합이 암시적으로 생성됩니다.

{"Welcome", "to", "Amazon", "ML", "-", "please", "fasten", "your", "seat-belts!"}

구두점 제거 프로세서를 이 문자열에 적용하면 다음과 같은 집합이 생성됩니다.

{"Welcome", "to", "Amazon", "ML", "please", "fasten", "your", "seat-belts"}

접두사와 접미사 구두점만 제거됩니다. 토큰 중간에 나타나는 구두점 (예: “안전 벨트”의 하이픈) 은 제거되지 않습니다.

변수 var1에 구두점 제거를 적용하려면

“NO_펑크 (var1)”

분위수 비닝 변환

분위수 비닝 프로세서는 숫자 변수 및 이라는 파라미터의 두 가지 입력을 받습니다.빈 번호을 (를) 범주형 변수를 출력합니다. 목적은 관측값을 함께 그룹화하여 변수 분포에서 비선형성을 발견하는 것입니다.

많은 경우에 숫자 변수와 대상 간의 관계는 선형적이지 않습니다 (숫자 변수 값은 대상에 따라 단조롭게 증가하거나 감소하지 않음). 이러한 경우 다양한 범위의 숫자 특성을 나타내는 범주형 특성에 숫자 특성을 빈 (bin) 하는 것이 유용할 수 있습니다. 각 범주 특성 값 (bin) 은 대상과의 선형 관계를 갖도록 모델링될 수 있습니다. 예를 들어 연속형 숫자 특성이 다음과 같다고 가정해 보겠습니다.계정_연령은 도서를 구입할 가능성과 선형적으로 상관되지 않습니다. 사용자는 대상과의 관계를 더욱 정확하게 캡처할 수 있는 카테고리 특성으로 age를 비닝할 수 있습니다.

분위수 비닝 프로세서는 Amazon ML에 age 변수의 모든 입력 값의 분포를 기반으로 동일한 크기의 n개의 Bin을 설정한 다음 각 숫자를 Bin이 포함된 텍스트 토큰으로 대체하도록 지시하는 데 사용할 수 있습니다. 숫자 변수에 대한 최적의 빈 수는 변수의 특징과 대상과의 관계에 따라 달라지며, 이는 실험을 통해 가장 잘 결정됩니다. Amazon ML은 데이터 통계를 기반으로 숫자 기능에 대한 최적의 Bin 번호를 제안합니다.제안된 레시피.

숫자 입력 변수에 대해 5~1000개의 분위수 Bin을 계산하도록 요청할 수 있습니다.

다음 예제는 숫자 변수 var1 대신 50개의 Bin을 계산하고 사용하는 방법을 보여줍니다.

“콴틸_빈 (바1, 50)”

정규화 변환

정규화 변환기는 평균 0 및 1인 분산을 갖도록 숫자 변수를 정규화합니다. 숫자형 변수의 정규화는 크기가 가장 큰 변수가 ML 모델을 지배할 수 있기 때문에 숫자 변수 사이에 매우 큰 범위 차이가 있는 경우 학습 과정에 도움이 될 수 있습니다. 왜냐하면 피처가 목표와 관련하여 유익한지 여부와 상관없이 ML 모델을 지배할 수 있기 때문입니다.

이 변환을 숫자 변수 var1에 적용하려면 다음을 레시피에 추가하십시오.

정규화 (var1)

이 변환기는 사용자 정의 숫자 변수 그룹 또는 모든 숫자 변수 (ALL_NUMERIC) 에 대해 미리 정의된 그룹을 입력으로 사용할 수도 있습니다.

정규화 (ALL_숫자)

참고

이것아니숫자 변수에 정규화 프로세서를 사용하려면 필수입니다.

데카르트 곱

데카르트 변환은 둘 이상의 텍스트 또는 범주형 입력 변수의 순열을 생성합니다. 이 변환은 변수 간의 상호 작용이 의심되는 경우에 사용됩니다. 예를 들어, 튜토리얼에서 사용되는 은행 마케팅 데이터셋을 가정해 보겠습니다. Amazon ML을 사용하여 마케팅 오퍼에 대한 응답을 예측합니다. 이 데이터세트를 사용하여 경제 및 인구 통계 정보를 기반으로 한 사람이 은행 프로모션에 긍정적으로 대응할 것인지 예측하고 싶습니다. 우리는 그 사람의 직업 유형이 다소 중요하다고 의심 할 수도 있습니다 (아마도 특정 분야에서 고용되고 돈을 사용할 수 있음), 달성 된 최고 수준의 교육도 중요합니다. 또한 이러한 두 변수의 상호 작용에 강한 신호가 있다는 더 깊은 직감을 가질 수 있습니다. 예를 들어, 이 프로모션은 대학 학위를 취득한 기업가인 고객에게 특히 적합하다는 것입니다.

데카르트 곱하기 변환은 범주형 변수 또는 텍스트를 입력으로 받아 이러한 입력 변수 간의 상호 작용을 캡처하는 새로운 피쳐를 생성합니다. 특히, 각 훈련 예제에 대해 피처의 조합을 만들어 독립 실행형 피쳐로 추가합니다. 예를 들어 단순화된 입력 행은 다음과 같다고 가정해 보겠습니다.

목표, 교육, 직업

0, 대학 학위, 기술자

0, 고등학교, 서비스

1, 대학. 학위, 관리자

데카르트 변환이 범주형 변수 교육 및 직무 필드에 적용되도록 지정하면 결과 기능 education_job_상호 작용은 다음과 같습니다.

대상, 교육_작업_상호 작용

0, 대학교 학위_기술자

0, 고등학교_서비스

1, 대학 학위_관리자

데카르트 변환은 토큰 시퀀스를 작업 할 때 훨씬 더 강력합니다. 인수 중 하나가 암시 적으로 또는 명시 적으로 토큰으로 분할되는 텍스트 변수 인 경우처럼. 예를 들어, 책을 교과서로 분류하는 작업을 가정해 보십시오. 직관적으로, 우리는 책의 제목에 대해 교과서 (특정 단어가 교과서의 제목에서 더 자주 발생할 수 있음) 라고 말할 수있는 무언가가 있다고 생각할 수 있습니다. 우리는 또한 책의 구속력에 대해 무언가가 있다고 생각할 수도 있습니다 예측 (교과서는 하드 커버 될 가능성이 더 큽니다).하지만 실제로 제목과 바인딩의 일부 단어가 가장 예측 가능한 조합입니다. 실제 예제의 경우 다음 표에서는 직교 프로세서를 입력 변수 바인딩 및 제목에 적용한 결과를 보여 줍니다.

교과서 제목 바인딩 no_punct (제목) 및 바인딩의 데카르트 곱하기
1 경제학: 원칙, 문제, 정책 양장본 {"경제성_하드커버”, “원리_하드커버”, “문제_하드커버”, “정책_하드커버”}
0 인비저블 하트: 경제학 로망스어 소프트커버 {"소프트커버”, “보이지 않는 소프트 커버”, “하트_소프트커버”, “An_소프트 커버”, “경제성_소프트커버”, “로맨스_소프트커버”}
0 문제에 대한 즐거움 소프트커버 {"Fun_소프트커버”, “With_소프트커버”, “문제_소프트커버"}

다음 예제에서는 var1 및 var2에 데카르트 변압기를 적용하는 방법을 보여줍니다.

데카르트 (var1, var2)