데이터 변환 - Amazon Machine Learning

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

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

데이터 변환

n-gram 변환

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

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

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

n-gram 변환을 창 크기 = 2인 경우 모든 2단어 조합과 한 단어 조합이 제공됩니다.

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

n-gram 변환을 창 크기 = 3인 경우 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 그램은 공백 문자의 입력 데이터를 분리하여 생성된다는 것을 명심하십시오. 즉, 예를 들어 구두점 문자는 단어 토큰의 일부로 간주됩니다. 문자열 “빨강, 녹색, 파랑”에 대해 2 개의 창으로 n 그램을 생성하면 {"빨간색,”, “녹색,”, “파란색,”, “빨간색, 녹색”, “녹색, 파란색”}. 문장 부호 제거 프로세서 (이 문서의 뒷부분에 설명) 를 사용하여 원하는 것이 아닌 경우 구두점 기호를 제거할 수 있습니다.

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

"ngram(var1, 3)"

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

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

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

설명하기 위해 문자열 “The quick brown fox jumps over dog”이 되고 OSB가 4인 것을 고려하십시오. 여섯 개의 네 단어 창과 문자열 끝의 마지막 두 개의 짧은 창이 다음 예제와 각각에서 생성 된 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 그램의 대안입니다. 데이터에 큰 텍스트 필드 (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에 문장 부호 제거를 적용하려면 다음을 수행합니다.

“펀트 (var1)”

분위 비닝 변환

프로세서는 숫자 변수라는 파라미터의 두 가지 입력을 받고, 숫자 변수를 사용합니다.bin 번호을 선택하고 범주형 변수를 출력합니다. 목적은 함께 관찰 된 값을 그룹화하여 변수의 분포에서 비선형성을 발견하는 것이다.

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

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

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

예를 따르는 것은 계산하고 숫자 변수 var1 대신 50 빈을 사용하는 방법을 보여줍니다

“쿼터_빈 (변수 1, 50)”

변환 정규화

정규화 변압기는 숫자 변수를 정규화하여 평균 값 및 분산을 갖도록 합니다. 숫자 변수의 정규화는 숫자 변수 사이에 매우 큰 범위 차이가있는 경우 학습 프로세스에 도움이 될 수 있습니다. 크기가 가장 높은 변수가 목표와 관련하여 유익한지 여부에 관계없이 ML 모델을 지배할 수 있기 때문입니다.

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

정규화 (var1)

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

정규화 (ALL_숫자)

참고

그것은이다하지숫자 변수에 정규화 프로세서를 사용하는 데 필수적입니다.

데카르트 곱

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

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

대상, 교육, 작업

0, 대학. 학위, 기술자

0, 고등학교, 서비스

1, 대학. 학위, 관리자

우리는 데카르트 변환이 범주 변수 교육 및 작업 필드에 적용되도록 지정하는 경우, 결과 기능 edution_job_상호 작용은 다음과 같습니다:

대상, 교육_직무_상호 작용

0, 대학.학위 기술자

0, 고등 학교 서비스

1, 대학.학위 관리자

데카르트 변환은 토큰 시퀀스에서 작업 할 때 훨씬 강력합니다. 인수 중 하나가 암시 적으로 또는 명시 적으로 토큰으로 분할 된 텍스트 변수 인 경우와 마찬가지로 토큰 시퀀스에서 작업 할 때 더욱 강력합니다. 예를 들어 책을 교과서인지 아닌지 분류하는 작업을 고려하십시오. 직관적으로, 우리는 책의 제목에 대해 교과서라고 말할 수있는 무언가가 있다고 생각할 수도 있습니다 (교과서의 제목에서 특정 단어가 더 자주 발생할 수 있음). 책의 바인딩에 대해 무언가가 있다고 생각할 수도 있습니다.그러나 그것은 실제로 가장 예측적 인 제목과 바인딩의 일부 단어의 조합입니다. 실제 예를 들어, 다음 표는 입력 변수 바인딩 및 제목에 데카르트 프로세서를 적용한 결과를 나타낸다:

교과서 제목 바인딩 no_punct (제목) 및 바인딩 데카르트 제품
1 경제학: 원칙, 문제, 정책 양장본 {"경제성_하드커버”, “원칙_하드커버”, “문제_하드커버”, “정책_하드커버”}
0 보이지 않는 심장: 로맨스 경제학 소프트커버 {"더 소프트 커버”, “보이지 않는 소프트 커버”, “하트 소프트 커버”, “안_소프트 커버”, “이코노믹 소프트 커버”, “로맨스 소프트 커버”}
0 문제 해결 소프트커버 {"펑_소프트 커버”, “소프트 커버 포함”, “문제_소프트 커버”}

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

데카르트 (var1, var2)