AutoML: 공변을 사용하여 예측 개선(외부 회귀자)
이 문서에서는 Covariate(외부 회귀라고도 함)를 사용하여 AutoML 예측 모델을 개선하는 방법을 보여 줍니다.
공변량은 예측 모델을 개선할 수 있는 대상 시계열 외부의 추가 변수입니다. 예를 들어 호텔 점유율이 예측되면 주말인지 알면 고객 행동을 예측하는 데 도움이 될 수 있습니다.
이 예에서는 다음을 수행합니다.
- 임의 시계열 데이터 세트를 만듭니다.
- 기본 기능 엔지니어링 작업을 수행합니다.
- 데이터 세트를 테이블로
FeatureStore
저장합니다. -
FeatureStore
AutoML 예측 실험에서 공변성으로 사용합니다.
데이터 만들기
이 예제에서는 2024년 1월 호텔 점유율에 대해 임의로 생성된 시계열 데이터를 사용합니다. 그런 다음 AutoML을 사용하여 2024년 2월 첫째 날을 예측 occupancy_rate
합니다.
다음 코드를 실행하여 샘플 데이터를 생성합니다.
df = spark.sql("""SELECT explode(sequence(to_date('2024-01-01'), to_date('2024-01-31'), interval 1 day)) as date, rand() as occupancy_rate FROM (SELECT 1 as id) tmp ORDER BY date""")
display(df)
기능 엔지니어링
샘플 데이터 세트를 사용하여 주말인지 여부를 is_weekend
이진 분류자라고 하는 date
기능을 설계합니다.
from pyspark.sql.functions import dayofweek, when
def compute_hotel_weekend_features(df):
''' is_weekend feature computation code returns a DataFrame with 'date' as primary key'''
return df.select("date").withColumn(
"is_weekend",
when(dayofweek("date").isin( 1, 2, 3, 4, 5), 0) # Weekday
.when(dayofweek("date").isin(6, 7), 1) # Weekend
)
hotel_weekend_feature_df = compute_hotel_weekend_features(df)
기능 저장소 만들기
AutoML에서 공변을 사용하려면 기능 저장소를 사용하여 하나 이상의 공변 기능 테이블을 AutoML의 기본 학습 데이터와 조인해야 합니다.
데이터 프레임 hotel_weather_feature_df
을 기능 저장소로 저장합니다.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
hotel_weekend_feature_table = fe.create_table(
name='ml.default.hotel_weekend_features', # change to desired location
primary_keys=['date'],
df=hotel_weekend_feature_df,
description='Hotel is_weekend features table'
)
참고 항목
이 예제에서는 Python FeatureEngineeringClient
을 사용하여 테이블을 만들고 작성합니다. 그러나 SQL 또는 DeltaLiveTables를 사용하여 테이블을 작성하고 만들 수도 있습니다. 더 많은 옵션을 보려면 Unity 카탈로그의 기능 테이블 작업을 참조하세요.
AutoML 실험 구성
이 매개 변수를 feature_store_lookups
사용하여 기능 저장소를 AutoML에 전달합니다.
feature_store_lookups
에는 두 개의 필드 table_name
가 있는 사전이 포함됩니다 lookup_key
.
hotel_weekend_feature_lookup = {
"table_name": "ml.default.hotel_weekend_features", # change to location set above
"lookup_key": ["date"]
}
feature_lookups = [hotel_weekend_feature_lookup]
참고 항목
feature_store_lookups
는 여러 기능 테이블 조회를 포함할 수 있습니다.
AutoML 실험 실행
다음 코드를 사용하여 AutoML 실험 API 호출에 전달 features_lookups
합니다.
from databricks import automl
summary = automl.forecast(dataset=df, target_col="occupancy_rate", time_col="date", frequency="d", horizon=1, timeout_minutes=30, identity_col=None, feature_store_lookups=feature_lookups)