ML: 모델 학습
ML: 모델 학습 단계는 소스 테이블로 scikit-learn 모델을 학습시키고, 그 결과를 모델 테이블로 기록합니다. 모델 테이블은 다른 테이블과 마찬가지로 워크플로를 따라 전달됩니다. ML: 점수 산출 단계에 전달하여 데이터 테이블에 예측값을 추가하거나, 직접 쿼리하여 학습 지표를 확인할 수 있습니다. 이 단계는 LLM 단계와 마찬가지로 관리형 PlaidCloud 작업으로 실행되므로, 학습이 워크플로의 나머지 부분과 리소스를 놓고 경쟁하지 않습니다.
모델 탭
섹션 제목: “모델 탭”소스 및 출력
섹션 제목: “소스 및 출력”- 학습 테이블 — 학습에 사용할 테이블입니다. 대상 값이 비어 있는 행은 학습에서 제외됩니다.
- 모델 테이블 — 모델 레코드를 받는 출력 테이블입니다.
-
알고리즘 — 학습시킬 모델입니다.
알고리즘 값 계열 로지스틱 회귀 logistic_regression분류 의사 결정 트리 분류기 decision_tree분류 랜덤 포레스트 분류기 random_forest분류 그래디언트 부스팅 분류기(XGBoost 방식) xgb_classifier분류 선형 회귀 linear_regression회귀 의사 결정 트리 회귀기 decision_tree_regressor회귀 랜덤 포레스트 회귀기 random_forest_regressor회귀 XGBoost 방식 알고리즘은 scikit-learn의
HistGradientBoostingClassifier로, XGBoost를 감싼 래퍼가 아니라 통계적으로 동등한 대체 구현입니다. 제한 사항 및 주의 사항을 참조하십시오. -
대상 열 — 예측할 열입니다. 비지도 알고리즘과
sota를 제외하고는 필수이며, 이 둘은 클래스 열이 선택 사항입니다. 분류 대상은 텍스트 레이블로 처리되고, 회귀 대상은 숫자로 변환되며, 대상 값을 숫자로 구문 분석할 수 없는 행은 제외됩니다.
추가 알고리즘
섹션 제목: “추가 알고리즘”알고리즘 목록에는 다음 알고리즘도 있습니다. 변환된 KNIME 워크플로도 이 알고리즘을 사용합니다.
| 알고리즘 | 설명 |
|---|---|
xgboost_classifier, xgboost_regressor, xgboost_linear_classifier, xgboost_linear_regressor |
트리 또는 선형 부스터를 사용하는 XGBoost 자체 |
gradient_boosting_classifier, gradient_boosting_regressor |
scikit-learn 그래디언트 부스팅 |
svm, svm_regressor, mlp, mlp_regressor, dummy, dummy_regressor |
scikit-learn 서포트 벡터 머신, 다층 퍼셉트론, 기준선 모델 |
knime_decision_tree, knime_tree_ensemble, naive_bayes, knn, lda, pnn_dda, fuzzy_rules, sota |
KNIME 고유의 학습기로, KNIME과 동일한 결과를 제공합니다. 하이퍼파라미터는 KNIME의 설정입니다 |
kmeans, dbscan, optics, pca, mds, tsne, isolation_forest, apriori, fp_growth |
KNIME의 비지도 알고리즘으로, 대상 열이 없으며 특성 열은 숫자 열입니다(apriori와 fp_growth는 항목 목록이 담긴 하나의 열) |
kmedoids, fuzzy_cmeans, hierarchical, hierarchical_tree, silhouette, h2o_pca, mds_projection, smote, target_shuffling, knn_distance, prediction_fusion, al_uncertainty, al_combiner, al_selector, al_density, al_density_table, distribution_creator, distribution_splitter, weak_label, als, rule_table, optics_table, dose_response |
KNIME의 클러스터링, 샘플링, 능동 학습, 추천(als: 특성 열은 사용자와 제품, 대상은 평점), 연관 규칙, 용량-반응 노드 |
dbscan, mds, tsne처럼 데이터와 별개의 모델이 없는 알고리즘은 설정을 모델 테이블에 보관하며, ML: 점수 산출은 전달받은 테이블을 배치하여 처리합니다.
하이퍼파라미터
섹션 제목: “하이퍼파라미터”선택한 알고리즘에 사용할 scikit-learn 하이퍼파라미터를 담은 선택적 JSON 객체입니다. 예: {"max_depth": 5, "n_estimators": 200}. 알 수 없는 키는 단계를 저장할 때 거부되므로, 잘못 입력한 매개변수는 조용히 무시되지 않고 즉시 실패합니다. Alteryx에서 변환된 워크플로에는 max_depth_none과 같은 Alteryx 방식의 센티널 키가 포함될 수 있으며, 이러한 키는 자동으로 변환됩니다.
scikit-learn에서 제거된 일부 레거시 매개변수(예: presort, 또는 제한 사항 및 주의 사항에 나열된 XGBoost 트리 관련 매개변수)는 허용되지만 적용되지는 않습니다. 이렇게 제외된 항목은 모델 테이블의 params_json에 있는 dropped_params에 기록되므로 아무것도 조용히 사라지지 않습니다.
특성 탭
섹션 제목: “특성 탭”특성 탭에는 소스 테이블의 열마다 한 행이 표시됩니다.
- 특성 — 학습에 사용할 열을 선택합니다. 모든 확인란을 선택하지 않으면 대상을 제외한 모든 열로 학습합니다. 모든 확인란을 선택하지 않은 경우 단계는 실행 시점에 테이블이 가진 열로 학습하며, 일부 열을 제외하려면 열 제외(
exclude_columns)에 해당 열을 나열합니다. - 유형 재정의 — 열을 Numeric 또는 Categorical 처리로 강제하거나, (추론) 으로 두어 테이블 열 유형에서 유형을 도출합니다.
특성 준비 방식은 Alteryx Assisted Modeling과 동일합니다. 숫자 특성은 숫자로 변환되고(구문 분석할 수 없는 값은 결측값이 됨) 결측값은 중앙값으로 대체됩니다. 범주형 특성은 텍스트로 처리되어 최빈값으로 대체된 뒤 원-핫 인코딩됩니다. 범주형 특성이 학습 중에 본 적 없는 값은 점수 산출 시 무시됩니다.
모델 테이블
섹션 제목: “모델 테이블”모델 테이블에는 다음 열이 있습니다.
| 열 | 내용 |
|---|---|
model_pickle_b64 |
학습된 scikit-learn 파이프라인(피클링, 압축, base64 인코딩됨). 큰 모델은 여러 행으로 분할됩니다. 모델 저장 방식을 참조하십시오. |
chunk_index |
이 행이 담고 있는 모델 조각의 위치로, 0부터 셉니다. |
algorithm |
알고리즘 값입니다. 예: logistic_regression. |
params_json |
JSON: 적용된 scikit-learn 매개변수, 사용된 특성 유형, 그리고 dropped_params. |
feature_names_json |
JSON 배열: 점수 산출 시 모델이 기대하는, 순서가 있는 특성 열. |
class_labels_json |
클래스 레이블의 JSON 배열(분류기) 또는 null(회귀기). |
metrics_json |
JSON 학습 지표입니다. 아래를 참조하십시오. |
trained_at |
학습 실행의 UTC 타임스탬프. |
모델 테이블은 일반 테이블이므로 다른 테이블처럼 쿼리할 수 있습니다. 예를 들어 다운스트림 단계에서 metrics_json을 추출하여 모델 품질에 따라 워크플로 진행 여부를 결정할 수 있습니다.
metrics_json에는 kind 키(classification 또는 regression), 분류기의 경우 train_accuracy, 회귀기의 경우 train_r2와 train_rmse, 그리고 n_training_rows가 들어 있습니다.
모델 저장 방식
섹션 제목: “모델 저장 방식”학습된 모델은 클 수 있습니다. 기본값인 트리 100개로 두면 랜덤 포레스트가 수백 메가바이트에 이를 수 있으며, 이는 웨어하우스가 단일 값으로 허용하는 크기를 넘습니다. 따라서 모델은 압축되고, 그래도 한 행에 담기에 너무 크면 필요한 만큼의 행으로 분할됩니다. 모든 행에는 위의 열이 반복되므로 어느 행을 보더라도 알고리즘, 매개변수, 특성, 지표를 알 수 있으며, 행마다 다른 것은 model_pickle_b64와 chunk_index뿐입니다.
이는 두 곳에서 중요합니다.
- 지표 읽기. 모델 테이블에는 행이 둘 이상 있을 수 있으므로 행이 하나뿐이라고 가정하지 말고 단일 행에서 지표를 읽으십시오. 예를 들어
WHERE chunk_index = 0을 사용합니다. - 모델 직접 재조립. PlaidCloud 외부에서
model_pickle_b64를 읽는 경우, 조각을chunk_index순서로 연결하고 base64 디코딩한 다음, 압축을 풀고 나서 언피클링하십시오.
ML: 점수 산출 단계는 이 모든 작업을 자동으로 수행합니다. 또한 모든 조각이 존재하는지 확인하며, 조각이 하나라도 없으면 불완전한 모델로 점수를 산출하지 않고 오류와 함께 중단합니다.
제한 사항 및 주의 사항
섹션 제목: “제한 사항 및 주의 사항”- 학습 지표는 학습 세트에서 계산됩니다 — 이 릴리스에는 홀드아웃 분할이나 교차 검증이 없습니다. 지표는 표본 외 성능의 추정치가 아니라 적합도 검사로 간주하십시오.
- 메모리 내 작업 세트 — 학습 테이블이 메모리로 읽혀 들어가므로, 이 단계는 대략 100만 행을 대상으로 합니다. 더 큰 테이블은 먼저 샘플링하거나 집계하십시오.
- 최대 모델 크기 — 학습된 모델은 압축 후 128MB를 초과하면 거부되며, 학습이 끝나는 즉시 단계가 중단되고 크기와 한도를 알리는 메시지가 표시됩니다. 참고로 17,000개 행과 17개 특성에 대해 트리 100개로 학습한 랜덤 포레스트는 약 56MB이므로, 한도는 그 약 두 배입니다. 한도에 도달하면 트리 수(
n_estimators)를 줄이거나max_depth에 상한을 두십시오. - XGBoost 근사 —
xgb_classifier는 scikit-learnHistGradientBoostingClassifier를 학습시키며,xgboost_*알고리즘은 XGBoost 자체를 실행합니다. XGBoost 고유의 트리 매개변수gamma,min_child_weight,subsample및colsample_*계열은 대응하는 항목이 없어 제외되며(dropped_params에 기록되고, 단계가 Alteryx에서 변환된 경우 단계의 매핑 참고 사항에도 기록됨), 결과 동등성에 의존하기 전에 모델 지표를 기준 실행 결과와 비교하여 검증하십시오. - AutoML 변환은 탐색이 아니라 알고리즘 하나를 선택합니다 — Alteryx AutoML 도구는 분류 및 회귀와 같은 방식으로 이 단계에 통합되지만, AutoML은 Alteryx 실행 시점에 후보 알고리즘 중 실제로 어느 것이 선택되었는지 기록하지 않습니다. 변환은 자동 탐색을 재현하는 대신, 이 단계가 지원하는 알고리즘 중 처음으로 선택된 것을 고르고 그 선택을 기록합니다. 여기서는 모델 선택 루프가 실행되지 않습니다. 변환된 AutoML 단계를 직접 보유한 Alteryx 결과와 비교하십시오.
관련 항목
섹션 제목: “관련 항목”- ML: 점수 산출 — 학습된 모델로 데이터 테이블의 점수를 산출합니다.
- Alteryx 워크플로 마이그레이션 — AutoML을 포함한 Alteryx Assisted Modeling 파이프라인이 이 단계로 변환되는 방식입니다.