다음을 통해 공유


AutoML: 공변을 사용하여 예측 개선(외부 회귀자)

이 문서에서는 Covariate(외부 회귀라고도 함)를 사용하여 AutoML 예측 모델을 개선하는 방법을 보여 줍니다.

공변량은 예측 모델을 개선할 수 있는 대상 시계열 외부의 추가 변수입니다. 예를 들어 호텔 점유율이 예측되면 주말인지 알면 고객 행동을 예측하는 데 도움이 될 수 있습니다.

이 예에서는 다음을 수행합니다.

  1. 임의 시계열 데이터 세트를 만듭니다.
  2. 기본 기능 엔지니어링 작업을 수행합니다.
  3. 데이터 세트를 테이블로 FeatureStore 저장합니다.
  4. 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)

다음 단계