Driverless AI 변환¶
Driverless AI는 데이터의 열에 변환을 적용합니다. 트랜스포머(transformer, 변환기)는 실험에서 engineered features 를 생성합니다.
Driverless AI는 다양한 트랜스포머를 제공합니다. 다운로드한 실험 로그에 실험에 적용된 변환이 포함되어 있습니다.
Notes:
included_transformers
또는excluded_transformers
config 옵션을 사용하여 Driverless AI 환경에 특정한 트랜스포머를 포함시키거나 제외시킬 수 있습니다.레시피 패널의 included_transformers 상세 설정을 사용하여 개별 실험에 사용할 트랜스포머를 제어할 수 있습니다.
레시피 패널의 included_pretransformers 상세 설정을 사용하여 전처리 트랜스포머로 사용할 트랜스포머를 설정할 수 있습니다. 레시피 패널의 num_pipeline_layers 상세 설정을 사용하여 계층을 더 추가할 수 있습니다.
유연성이 더 높은(단, 적합 상태는 없음) 트랜스포머의 대안으로 레시피 데이터 레시피가 있으며, 이는 레시피 패널의 included_datas 상세 설정으로 제어합니다.
사용 가능한 트랜스포머¶
다음 트랜스포머를 회귀 분석 및 분류(다중 클래스 및 바이너리) 실험에 사용할 수 있습니다.
변환된 특성 명명 규칙¶
변환된 특성 이름은 다음과 같이 인코딩됩니다.
<Transformation_indexORgene_details_id>_<Transformation_name>:<original_feature_name>:<…>:<original_feature_name>.<extra>
예시 32_NumToCatTE:BILL_AMT1:EDUCATION:MARRIAGE:SEX.0
의 경우:
32_
는 특정 변환 매개변수에 대한 변환 지수입니다.
NumToCatTE
는 트랜스포머 이름입니다.
BILL_AMT1:EDUCATION:MARRIAGE:SEX
는 사용된 원래 특성을 나타냅니다.
0
은 추가 항목이며 특성별로 그룹화(여기에BILL_AMT1
,EDUCATION
,MARRIAGE
,SEX
로 표시됨)하고 out-of-fold를 추정한 후 목표값[0]에 대한 가능도 인코딩을 나타냅니다. 다중 클래스 실험의 경우 이 값은 >0입니다. 바이너리 실험의 경우 이 값은 항상 0입니다.
Numeric Transformers (Integer, Real, Binary)¶
ClusterDist Transformer
Cluster Distance Transformer는 선택한 숫자 열을 클러스터링하고 특정 클러스터까지의 거리를 새로운 특성으로 사용합니다.
ClusterDist cuML Transformer
Cluster Distance cuML 트랜스포머는 GPU에서 실행되면서 cuML 가속 k-평균 클러스터링을 학습하여 선택한 숫자 열에 클러스터를 생성하고, 특정 클러스터까지의 거리를 새로운 특성으로 사용합니다.
ClusterTE Transformer
Cluster Target Encoding Transformer는 선택한 숫자 열을 클러스터링하고 각 클러스터에 대한 응답 열의 평균을 계산합니다. 응답의 평균은 새로운 특성으로 사용됩니다. 교차 검증을 사용해 과적합을 방지하기 위한 평균 응답을 계산합니다.
DBSCAN cuML Transformer
DBSCAN cuML Transformer는 GPU에서 실행되어 선택한 숫자 열로 cuML 가속 DBSCAN 모델을 학습하고 출력 클러스터 레이블을 새로운 특성으로 사용합니다.
Interactions Transformer
Interactions Transformer는 데이터에서 두 개의 숫자 열의 덧셈, 나눗셈, 곱셈, 뺄셈을 통해 새로운 특성을 생성합니다. 이 변환은 스마트 검색을 사용하여 변환할 특성 쌍을 식별합니다. 기준 모델 점수를 개선하는 상호 작용만 유지됩니다.
InteractionsSimple Transformer
InteractionsSimple Transformer는 데이터에서 두 개의 숫자 열의 덧셈, 나눗셈, 곱셈, 뺄셈을 통해 새로운 특성을 생성합니다. 이 변환은 변환할 특성 쌍을 무작위로 선택합니다.
NumCatTE Transformer
Numeric Categorical Target Encoding Transformer는 선택한 여러 열에 대한 응답 열의 평균을 계산합니다. 선택한 열 중 하나가 숫자인 경우, 먼저 비닝(binning)을 통해 범주형으로 변환합니다. 응답 열의 평균은 새로운 특성으로 사용됩니다. 교차 검증을 사용해 과적합을 방지하기 위한 평균 응답을 계산합니다.
NumToCatTE Transformer
Numeric to Categorical Target Encoding Transformer는 비닝을 통해 숫자 열을 범주형으로 변환한 다음 각 그룹에 대한 응답 열의 평균을 계산합니다. 빈(bin)에 대한 응답의 평균은 새 특성으로 사용됩니다. 교차 검증을 사용하여 과적합을 방지하기 위한 평균 응답을 계산합니다.
NumToCatWoEMonotonic Transformer
Numeric to Categorical Weight of Evidence Monotonic Transformer는 비닝을 통해 숫자 열을 범주형으로 변환한 다음 각 bin에 대한 증거 가중치(Weight of Evidence)를 계산합니다. 단조 제약 조건에 따라 값의 빈(bin)은 증거 가중치 값과 단조롭게 관련이 되어야 합니다. 증거 가중치는 새로운 특성으로 사용됩니다. 증거 가중치는 안전한 위험과 나쁜 위험을 구분하는 그룹화의 ‘강도’를 측정하며, 바이너리 응답 열에 대한 분포율 로그를 사용하여 계산됩니다.
NumToCatWoE Transformer
Numeric to Categorical Weight of Evidence Monotonic Transformer는 비닝을 통해 숫자 열을 범주형으로 변환한 다음 각 bin에 대한 증거 가중치를 계산합니다. 증거 가중치는 새로운 특성으로 사용됩니다. 증거 가중치는 안전한 위험과 나쁜 위험을 구분하기 위한 그룹화의 ‘강도’를 측정하며, 바이너리 응답 열에 대한 분포율 로그를 사용하여 계산됩니다.
Original Transformer
Original Transformer는 항등 변환(identity transformation)을 숫자 열에 적용합니다.
TruncSVDNum Transformer
Truncated SVD Transformer는 선택한 숫자 열로 Truncated SVD 모델을 훈련하고 truncated SVD 행렬의 구성 요소를 새로운 특성으로 사용합니다.
TruncSVDNum cuML Transformer
Truncated SVD cuML Transformer는 GPU에서 실행되어 선택한 숫자 열로 cuML 가속 Truncated SVD 모델을 학습하고 truncated SVD 행렬의 구성 요소를 새 특성으로 사용합니다.
Time Series Experiment Transformer¶
DateOriginal Transformer
Date Original Transformer는 연도, 분기, 월, 일, 연중일, 주, 요일 값 등의 날짜 값을 검색합니다.
DateTimeOriginal Transformer
Date Time Original Transformer는 연도, 분기, 월, 일, 연중일, 주, 요일, 시, 분, 초 값 등의 날짜 및 시간 값을 검색합니다.
EwmaLags Transformer
EWMA(Exponentially Weighted Moving Average) Transformer는 대상 또는 특성 지연의 지수 가중치 이동 평균을 계산합니다.
LagsAggregates Transformer
Lags Aggregates Transformer는 mean, min, max, median, sum, skew, kurtosis, std를 지원하여 mean(lag7, lag14, lag21)과 같은 대상/특성 지연의 집계를 계산합니다. 집계는 새로운 특성으로 사용됩니다.
LagsInteraction Transformer
Lags Interaction Transformer는 대상/특성 지연을 생성하고 지연(예: lag2 - lag1) 간의 상호 작용을 계산합니다. 상호 작용은 새로운 특성으로 사용됩니다.
Lags Transformer
Lags Transformer는 그룹에 대한 대상/특성 지연을 생성합니다. 각 지연은 새로운 특성으로 사용됩니다. 범주형(문자열) 특성 또는 바이너리/다중 클래스 문자열 값 대상이 내부적으로 인코딩된 후 여기에 지연 트랜스포머를 적용할 수 있습니다.
LinearLagsRegression Transformer
Linear Lags Regression transformer는 대상 또는 특성 지연에 대해 선형 모델을 학습하여 현재 대상 또는 특성 값을 예측합니다. 선형 모델 예측은 새로운 특성으로 사용됩니다.
Categorical Transformers(문자열)¶
Cat Transformer
Cat Transformer는 사전식 순서로 범주형 열을 정렬하고 해당 순서를 새로운 특성으로 사용합니다. 이 트랜스포머는 범주형 특성을 처리할 수 있는 모델에서 작동합니다.
CatOriginal Transformer
Categorical Original Transformer는 범주형 특성을 그대로 유지하는 항등 변환을 적용합니다. 이 트랜스포머는 비숫자(non-numeric) 특성 값을 처리할 수 있는 모델에서 작동합니다.
CVCatNumEncode Transformer
Cross Validation Categorical to Numeric Encoding Transformer는 범주형 열의 각 값에 대한 숫자 열의 집계를 계산하고(예: 각 도시의 평균 온도 계산) 이 집계를 새로운 특성으로 사용합니다.
CVTargetEncode Transformer
Cross Validation Target Encoding Transformer는 범주형 열의 각 값에 대한 응답 열의 평균을 계산하고 이를 새로운 특성으로 사용합니다. 교차 검증을 사용하여 과적합을 방지하기 위한 평균 응답을 계산합니다.
Frequent Transformer
Frequent Transformer는 범주형 열의 각 값에 대한 빈도수를 계산하고 이를 새로운 특성으로 사용합니다. 이 개수(count)는 원시 개수 또는 정규화된 개수가 될 수 있습니다.
LexiLabelEncoder Transformer
Lexi Label Encoder는 사전식 순서로 범주형 열을 정렬하고 생성된 순서를 새로운 특성으로 사용합니다.
NumCatTE Transformer
Numeric Categorical Target Encoding Transformer는 선택한 여러 열에 대한 응답 열의 평균을 계산합니다. 선택한 열 중 하나가 숫자인 경우, 먼저 비닝(binning)을 통해 범주형으로 변환합니다. 응답 열의 평균은 새로운 특성으로 사용됩니다. 교차 검증을 사용해 과적합을 방지하기 위한 평균 응답을 계산합니다.
OneHotEncoding Transformer
One-hot Encoding 트랜스포머는 원핫(one-hot) 인코딩을 수행하여 범주형 열을 부울(Boolean) 특성의 시리즈로 변환합니다. 부울 특성은 새로운 특성으로 사용됩니다. 열에 일정한 수 이상의 고유 값이 있는 경우, 사전적 순서로 max 수(기본값 10)로 비닝됩니다. 이 값은
ohe_bin_list
config.toml 구성 옵션으로 변경할 수 있습니다.SortedLE Transformer
The Sorted Label Encoding Transformer는 응답 열을 기준으로 범주형 열을 정렬하고 생성된 순서를 새로운 특성으로 사용합니다.
WeightOfEvidence Transformer
Weight of Evidence Transformer는 범주형 열의 각 값에 대한 증거 가중치를 계산합니다. 증거 가중치는 새로운 특성으로 사용됩니다. 증거 가중치는 안전한 위험과 나쁜 위험을 분리하는 그룹화의 ‘강도’를 측정하며, 바이너리 응답 열에 대한 분포율 로그를 사용하여 계산됩니다.
이는 바이너리 대상 변수에서만 작용합니다. fit_transform 메서드를 사용하는 경우 계층화된 k- 폴드 내에서 가능도가 생성되어야 합니다. 자세한 내용은 http://ucanalytics.com/blogs/information-value-and-weight-of-evidencebanking-case/ 에서 확인할 수 있습니다.
Text Transformers(문자열)¶
BERT Transformer
Bidirectional Encoder Representations from Transformers(BERT) Transformer는 사전 학습된 모델 임베딩을 기반으로 각 텍스트 열에 대한 새로운 특성을 생성하며, 추가적인 중요 비텍스트(non-text) 특성이 포함된 데이터 세트에 이상적입니다.
Note: 데이터 세트가 크거나 텍스트 열이 많이 포함된 경우, BERT 트랜스포머를 사용하면 실험 완료까지 소요되는 시간이 크게 늘어날 수 있습니다.
TextBiGRU Transformer
Text Bidirectional GRU Transformer는 응답 열을 예측하기 위해 텍스트 특성에서 생성된 Word embeddings에 대해 양방향 GRU TensorFlow 모델을 학습합니다. GRU 예측은 새로운 특성으로 사용됩니다. 과적합을 방지하기 위해 GRU 모델을 학습할 때 교차 검증을 사용합니다.
TextCharCNN Transformer
Text Character CNN Transformer는 응답 열을 예측하기 위해 텍스트 특성에서 생성된 Character embeddings에 대해 CNN TensorFlow 모델을 학습합니다. CNN 예측은 새로운 특성으로 사용됩니다. 과적합을 방지하기 위해 CNN model을 학습할 때 교차 검증을 사용합니다.
TextCNN Transformer
Text CNN Transformer는 응답 열을 예측하기 위해 텍스트 특성에서 생성된 Word embeddings에 대해 CNN TensorFlow 모델을 학습합니다. CNN 예측은 새로운 특성으로 사용됩니다. 과적합을 방지하기 위해 CNN model을 학습할 때 교차 검증을 사용합니다.
TextLinModel Transformer
Text Linear Model Transformer는 응답 열을 예측하기 위해 텍스트 특성에서 생성된 TF-IDF 행렬에 대해 선형 모델을 학습합니다. 선형 모델 예측은 새로운 특성으로 사용됩니다. 과적합을 방지하기 위해 선형 모델을 학습할 때 교차 검증을 사용합니다.
Text Transformer
Text Transformer는 텍스트 열을 토큰화하고 TFIDF 행렬(용어 빈도수-역 문서 빈도수) 또는 개수(단어 개수) 행렬을 만듭니다. 그 뒤에 truncated SVD를 사용한 차원 감소가 이어질 수 있습니다. TF-IDF/Count 행렬의 선택된 구성 요소를 새로운 특성으로 사용합니다.
Time Transformers(날짜, 시간)¶
Dates Transformer
Dates Transformer는 다음 항목을 포함한 날짜 값을 검색합니다.
연도
분기
월
일자
연중일
주
요일
시
분
초
IsHoliday Transformer
Is Holiday Transformer는 날짜 열이 공휴일인지 확인합니다. 날짜가 공휴일인지 여부를 나타내는 부울 열이 새 특성으로 추가됩니다. 미국, 영국, 독일, 멕시코 및 유럽 중앙 은행의 공휴일에 대해 별도의 특성을 생성합니다. Python Holiday 패키지에 있는 기타 국가는 구성 파일을 통해 추가할 수 있습니다.
Image Transformers¶
ImageOriginal Transformer
Image Original Transformer는 변수 가공을 수행하지 않고 이미지 경로를 모델에 전달합니다.
ImageVectorizer Transformer
Image Vectorizer Transformer는 사전 학습된 ImageNet 모델을 사용하여 이미지 경로나 URI가 있는 열을 모델의 마지막 전역 평균 풀링 계층에서 파생된 임베딩(벡터) 표현으로 변환합니다.
Note: 사전 학습된 이미지 모델의 미세 조정(Fine-tuning)은 tensorflow_image_fine_tune 상세 설정으로 활성화할 수 있습니다.
Autoviz 권장 사항 트랜스포머¶
Autoviz 권장 사항 트랜스포머는 Driverless AI에서 데이터 세트 시각화 로 얻은 권장 변형을 적용합니다. 이 트랜스포머는 현재 square_root, 로그 및 역연산 (및 음수 값에 대한 yeo-johnson 거듭제곱 변환을 사용한 근사)을 지원합니다.
전문가 실험 설정의 autoviz_recommended_transformation 는 적용된 변환을 나열/제어합니다. 구문은 {《DIS》:》log》,》INDUS》:》log》,》RAD》:》inverse》,》ZN》:》square_root》}. 와 같은 Autoviz {column_name: transformation}의 변환 사전입니다. Autoviz 권장 트랜스포머 자체는 전문가 패널에서 included_transformers 구성 설정으로 활성화 또는 비활성화할 수 있습니다.
이 트랜스포머는 Python Scoring Pipeline 및 JAVA 런타임이 있는 MOJO Scoring Pipeline 에서 지원됩니다(현재 C++ 지원 없음).
변환 예시¶
이 섹션에서는 예시 데이터 세트에서 주택 가격을 예측하는 예를 사용하여 사용 가능한 변환 중 일부를 설명합니다.
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
$700K |
Frequent Transformer¶
데이터 세트의 각 범주형 값의 개수
개수(count)는 원시 개수 또는 정규화된 개수가 될 수 있습니다.
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
Freq_State |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
4,500 |
이 데이터 세트에는 State = NY인 부동산이 4,500개 있습니다.
Bulk Interactions Transformer¶
데이터에서 두 개의 열의 덧셈, 나눗셈, 곱셈, 뺄셈을 수행함
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
Interaction_NumBeds#subtract#NumBaths |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
1 |
이 부동산에는 욕실 수보다 침실이 하나 더 많습니다.
Truncated SVD Numeric Transformer¶
데이터의 선택된 숫자 열에 학습된 truncated SVD
truncated SVD의 구성 요소는 새로운 특성이 됩니다.
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
TruncSVD_Price_NumBeds_NumBaths_1 |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
0.632 |
Price, Number of Beds, Number of Baths 열의 truncated SVD의 첫 번째 구성 요소
Dates Transformer¶
연도, 분기, 월, 일자, 연중일, 주, 요일, 시, 분, 초 가져오기
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
DateBuilt_Month |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
1 |
주택은 1월에 건축되었습니다.
Text Transformer¶
메서드를 사용하여 텍스트 열을 변환합니다: TFIDF 또는 개수(단어 개수).
그 뒤에 truncated SVD를 사용한 차원 감소가 이어질 수 있습니다.
Categorical Target Encoding Transformer¶
범주형 열에서 교차 검증 대상 인코딩 완료됨
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
CV_TE_State |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
550,000 |
NY 주 부동산의 평균 가격은 $550,000*입니다.
*과적합(overfitting)을 방지하기 위해, Driverless AI는 교차 검증을 사용하여 out-of-fold 데이터에서 이 평균을 계산합니다.
Numeric to Categorical Target Encoding Transformer¶
비닝을 통해 범주형으로 변환된 숫자 열
비닝된 숫자 열에서 교차 검증 대상 인코딩 완료됨
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
CV_TE_SquareFootage |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
345,000 |
Square Footage
열이 동일하게 채워진 10개의 빈(bin)으로 버킷화되었습니다. 이 부동산은 Square Bucket
버킷 1,572~1,749에 속합니다. 면적이 이 범위에 속하는 부동산의 평균 가격은 $345,000*입니다.
*과적합(overfitting)을 방지하기 위해, Driverless AI는 교차 검증을 사용하여 out-of-fold 데이터에서 이 평균을 계산합니다.
Cluster Target Encoding Transformer¶
데이터에서 선택한 열이 클러스터링됨
클러스터 ID에서 대상 인코딩이 완료됨
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
ClusterTE_4_NumBeds_NumBaths_SquareFootage |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
450,000 |
열: Num Beds
, Num Baths
, Square Footage
는 4개의 클러스터로 분할되었습니다. 선택한 부동산과 동일한 클러스터에 있는 부동산의 평균 가격은 $450,000* 입니다.
*과적합(overfitting)을 방지하기 위해, Driverless AI는 교차 검증을 사용하여 out-of-fold 데이터에서 이 평균을 계산합니다.
Cluster Distance Transformer¶
데이터에서 선택한 열이 클러스터링됨
선택한 클러스터 센터까지의 거리를 계산합니다.
Date Built(건축일자) |
Square Footage(면적) |
Num Beds(침실 수) |
Num Baths(욕실 수) |
State(주) |
Price(가격) |
ClusterDist_4_NumBeds_NumBaths_SquareFootage_1 |
---|---|---|---|---|---|---|
1920-01-01 |
1700 |
3 |
2 |
NY |
700,000 |
0.83 |
열: Num Beds
, Num Baths
, Square Footage
는 4개의 클러스터로 분할되었습니다. 이 레코드와 클러스터 1의 차이는 0.83입니다.