회귀를 위한 데이터 준비
이 문서에서는 AutoML이 회귀 학습을 위해 데이터를 준비하는 방법과 구성 가능한 데이터 설정을 설명합니다. AutoML UI에서 실험 설정 중에 이러한 옵션을 조정할 수 있습니다.
AutoML API를 사용하여 이러한 설정을 구성하려면 AutoML Python API 참조를 참조하세요.
지원되는 데이터 기능 유형
아래에 나열된 기능 유형만 지원됩니다. 예를 들어 이미지는 지원되지 않습니다 .
다음 기능 유형이 지원됩니다.
- 숫자(
ByteType
,ShortType
,IntegerType
,LongType
,FloatType
및DoubleType
) - Boolean
- 문자열(범주 또는 영어 텍스트)
- 타임스탬프(
TimestampType
,DateType
) - ArrayType[숫자](Databricks Runtime 10.4 LTS ML 이상)
- DecimalType(Databricks Runtime 11.3 LTS ML 이상)
누락 값 입력
Databricks Runtime 10.4 LTS ML 이상에서는 null 값을 대치하는 방법을 지정할 수 있습니다. UI에서 테이블 스키마의 다음으로 대체 열에 있는 드롭다운에서 메서드를 선택합니다. API에서 imputers
매개 변수를 사용합니다. 자세한 내용은 AutoML Python API 참조를 참조하세요.
기본적으로 AutoML은 열 유형 및 콘텐츠를 기반으로 대치 메서드를 선택합니다.
참고 항목
기본값이 아닌 대치 메서드를 지정하면 AutoML이 의미 체계 유형 검색을 수행하지 않습니다.
열 선택
Databricks Runtime 10.3 ML 이상에서는 AutoML이 학습에 사용해야 하는 열을 지정할 수 있습니다. UI의 열을 제외하려면 포함 열에서 선택을 취소합니다. API에서 exclude_cols
매개 변수를 사용합니다. 자세한 내용은 AutoML Python API 참조를 참조하세요.
데이터를 분할하기 위해 예측 대상 또는 시간 열로 선택한 열을 삭제할 수 없습니다.
기본적으로 모든 열이 포함됩니다.
학습, 유효성, 테스트 세트로 데이터 분할
AutoML은 학습, 유효성 검사 및 테스트를 위해 데이터를 세 개의 분할로 분할합니다. ML 문제의 유형에 따라 데이터를 분할하기 위한 다양한 옵션이 있습니다.
다음 메서드를 사용하여 데이터를 학습, 유효성 검사 및 테스트 집합으로 나눕니다.
(기본값) 임의 분할: 데이터 분할 전략을 지정하지 않으면 데이터 세트가 임의로 60% 학습 분할, 20% 분할 유효성 검사 및 20% 테스트 분할로 분할됩니다. 분류의 경우 계층화된 임의 분할은 각 클래스가 학습, 유효성 검사 및 테스트 집합에 적절하게 표현되도록 합니다.
시간순 분할: Databricks Runtime 10.4 LTS ML 이상에서 시간 열을 선택하여 시간 열을 선택하여 시간 학습을 만들고, 유효성을 검사하고, 분할을 테스트할 수 있습니다. 시간순 분할은 가장 빠른 데이터 포인트를 학습에 사용하고, 그 다음으로 빠른 데이터 포인트를 검증에 사용하고, 가장 늦은 데이터 포인트를 테스트에 사용합니다. 시간 열은 타임스탬프, 정수 또는 문자열 열일 수 있습니다.
수동 분할: Databricks Runtime 15.3 ML 이상에서 API를 사용하여 수동 분할을 설정할 수 있습니다. 분할 열을 지정하고 값 train
, validate
, test
을 사용하거나 데이터 세트 학습, 유효성 검사 및 테스트에 사용할 행을 식별합니다. 분할 열 값이 train
, test
, validate
이외인 행은 무시되고 해당 경고가 발생합니다.
대규모 데이터 세트 샘플링
AutoML이 클러스터의 작업자 노드 전체에 하이퍼 매개 변수 튜닝 평가판을 배포하는 동안 각 모델은 단일 작업자 노드에서 학습됩니다.
AutoML은 데이터 세트를 로드 및 학습하는 데 필요한 메모리를 자동으로 예상하고 필요한 경우 데이터 세트를 샘플링합니다.
Databricks 런타임 버전 | 샘플링 동작 |
---|---|
9.1 LTS ML - 10.4 LTS ML | 샘플링 비율은 일정하며 클러스터의 노드 유형 또는 노드당 메모리에 종속되지 않습니다. |
11.x ML | 샘플링 비율 은 코어당 메모리가 더 많은 작업자 노드에 대해 증가합니다. 샘플 크기를 늘리려면 다음을 수행합니다. - 메모리 최적화 인스턴스 유형을 사용합니다. - Spark 구성에서 조정 spark.task.cpus 합니다. 기본값은 1이고 최대값은 작업자 노드의 CPU 수입니다. 최대값은 작업자 노드의 CPU 수입니다. 이 값을 늘리면 샘플 크기는 더 커지지만 병렬로 실행되는 평가판은 더 적어집니다.예: 코어가 4개이고 RAM이 64GB인 컴퓨터: spark.task.cpus=1 - 작업자당 4개의 평가판이 실행되며 각각 16GB RAM을 사용합니다.- 모든 spark.task.cpus=4 64GB RAM을 사용하여 작업자당 하나의 평가판을 실행합니다. |
11.3 LTS ML 이상 | AutoML이 데이터 세트를 샘플링하는 경우 샘플링 분수는 UI의 개요 탭에 표시됩니다. |
12.2 LTS ML 이상 | AutoML은 학습 작업당 더 많은 CPU 코어를 할당하여 더 큰 데이터 세트를 처리할 수 있습니다. 총 메모리가 더 많은 인스턴스를 선택하여 샘플 크기를 늘입니다. |
분류 문제의 경우 AutoML은 계층화된 샘플링에 PySpark sampleBy
메서드를 사용하여 대상 레이블 분포를 보존합니다.
회귀 문제의 경우 AutoML은 PySpark sample
메서드를 사용합니다.
의미 체계 유형 검색
참고 항목
- AutoML은 사용자 지정 대치 메서드가 지정된 열에 대해 의미 체계 유형 검색을 수행하지 않습니다.
Databricks Runtime 9.1 LTS ML 이상에서 AutoML은 열에 테이블 스키마의 Spark 또는 pandas 데이터 형식과 다른 의미 체계 유형이 있는지 여부를 검색하려고 시도합니다. AutoML은 이러한 열을 검색된 의미 체계 유형으로 처리합니다. 이러한 검색은 최선의 활동이며 때때로 의미 체계 유형의 존재를 놓칠 수 있습니다. 열의 의미 체계 유형을 수동으로 설정하거나 주석을 사용하여 열에 의미 체계 유형 검색을 적용하지 않도록 AutoML에 지시할 수도 있습니다.
특히 AutoML은 다음과 같이 조정합니다.
- 날짜 또는 타임스탬프 데이터를 나타내는 문자열 및 정수 열은 타임스탬프 유형으로 처리됩니다.
- 숫자 데이터를 나타내는 문자열 열은 숫자 유형으로 처리됩니다.
Databricks Runtime 10.1 ML 이상에서는 AutoML도 다음과 같이 조정합니다.
- 범주형 ID가 포함된 숫자 열은 범주형 기능으로 처리됩니다.
- 영어 텍스트를 포함하는 문자열 열은 텍스트 기능으로 처리됩니다.
의미 체계 유형 주석
Databricks Runtime 10.1 ML 이상을 사용하면 열에 의미 체계 유형 주석을 배치하여 할당된 의미 체계 유형을 수동으로 제어할 수 있습니다. 열 <column-name>
의 의미 체계 유형에 수동으로 <semantic-type>
주석을 추가하려면 다음 구문을 사용합니다.
metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)
<semantic-type>
은 다음 중 하나일 수 있습니다.:
categorical
: 열에 범주형 값(예: ID로 처리되어야 하는 숫자 값)이 포함됩니다.numeric
: 열에 숫자 값(예: 숫자로 구문 분석할 수 있는 문자열 값)이 포함됩니다.datetime
: 열에 타임스탬프 값(타임스탬프로 변환할 수 있는 문자열, 숫자 또는 날짜 값)이 포함됩니다.text
: 문자열 열에 영어 텍스트가 포함됩니다.
열에서 의미 체계 유형 검색을 사용하지 않도록 설정하려면 특수 키워드 주석 native
을 사용합니다.