源码

AutoRandomForest

 AutoRandomForest (config:Optional[Callable[[optuna.trial._trial.Trial],Di
                   ct[str,Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoElasticNet

 AutoElasticNet (config:Optional[Callable[[optuna.trial._trial.Trial],Dict
                 [str,Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoLasso

 AutoLasso (config:Optional[Callable[[optuna.trial._trial.Trial],Dict[str,
            Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoRidge

 AutoRidge (config:Optional[Callable[[optuna.trial._trial.Trial],Dict[str,
            Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoLinearRegression

 AutoLinearRegression (config:Optional[Callable[[optuna.trial._trial.Trial
                       ],Dict[str,Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoCatboost

 AutoCatboost (config:Optional[Callable[[optuna.trial._trial.Trial],Dict[s
               tr,Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoXGBoost

 AutoXGBoost (config:Optional[Callable[[optuna.trial._trial.Trial],Dict[st
              r,Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

AutoLightGBM

 AutoLightGBM (config:Optional[Callable[[optuna.trial._trial.Trial],Dict[s
               tr,Any]]]=None)

用于存储模型及其搜索空间的结构

类型默认值详情
config可选接受 Optuna trial 并生成配置的函数

源码

random_forest_space

 random_forest_space (trial:optuna.trial._trial.Trial)

源码

elastic_net_space

 elastic_net_space (trial:optuna.trial._trial.Trial)

源码

lasso_space

 lasso_space (trial:optuna.trial._trial.Trial)

源码

ridge_space

 ridge_space (trial:optuna.trial._trial.Trial)

源码

linear_regression_space

 linear_regression_space (trial:optuna.trial._trial.Trial)

源码

catboost_space

 catboost_space (trial:optuna.trial._trial.Trial)

源码

xgboost_space

 xgboost_space (trial:optuna.trial._trial.Trial)

源码

lightgbm_space

 lightgbm_space (trial:optuna.trial._trial.Trial)

源码

AutoModel

 AutoModel (model:sklearn.base.BaseEstimator,
            config:Callable[[optuna.trial._trial.Trial],Dict[str,Any]])

用于存储模型及其搜索空间的结构

类型详情
modelBaseEstimator与 scikit-learn 兼容的回归器
config可调用接受 Optuna trial 并生成配置的函数

源码

AutoMLForecast

 AutoMLForecast
                 (models:Union[List[__main__.AutoModel],Dict[str,__main__.
                 AutoModel]], freq:Union[int,str],
                 season_length:Optional[int]=None, init_config:Optional[Ca
                 llable[[optuna.trial._trial.Trial],Dict[str,Any]]]=None, 
                 fit_config:Optional[Callable[[optuna.trial._trial.Trial],
                 Dict[str,Any]]]=None, num_threads:int=1)

超参数优化助手

类型默认值详情
models联合待优化的自动模型。
freq联合pandas 或 polars 的偏移别名,或表示序列频率的整数。
season_length可选季节周期的长度。这用于生成特征空间。
仅当 init_config 为 None 时需要。
init_config可选接受 Optuna trial 并生成传递给 MLForecast 构造函数的配置的函数。
fit_config可选接受 Optuna trial 并生成传递给 MLForecast fit 方法的配置的函数。
num_threadsint1计算特征时使用的线程数。

源码

AutoMLForecast.fit

 AutoMLForecast.fit
                     (df:Union[pandas.core.frame.DataFrame,polars.datafram
                     e.frame.DataFrame], n_windows:int, h:int,
                     num_samples:int, step_size:Optional[int]=None,
                     input_size:Optional[int]=None,
                     refit:Union[bool,int]=False, loss:Optional[Callable[[
                     Union[pandas.core.frame.DataFrame,polars.dataframe.fr
                     ame.DataFrame],Union[pandas.core.frame.DataFrame,pola
                     rs.dataframe.frame.DataFrame]],float]]=None,
                     id_col:str='unique_id', time_col:str='ds',
                     target_col:str='y',
                     study_kwargs:Optional[Dict[str,Any]]=None,
                     optimize_kwargs:Optional[Dict[str,Any]]=None,
                     fitted:bool=False, prediction_intervals:Optional[mlfo
                     recast.utils.PredictionIntervals]=None)

执行优化过程。每个模型独立优化,最优模型在所有数据上训练。

类型默认值详情
df联合长格式的序列数据。
n_windowsint要评估的窗口数。
hint预测范围。
num_samplesint要运行的试验次数
step_size可选每个交叉验证窗口之间的步长。如果为 None,则等于 h
input_size可选每个窗口中每个序列的最大训练样本数。如果为 None,将使用扩展窗口。
refit联合False为每个交叉验证窗口重新训练模型。
如果为 False,模型在开始时训练,然后用于预测每个窗口。
如果为正整数,模型将每隔 refit 个窗口重新训练。
loss可选接受验证和训练数据帧并生成浮点数的函数。
如果为 None,将使用所有序列的平均 SMAPE。
id_colstrunique_id标识每个序列的列。
time_colstrds标识每个时间步的列,其值可以是时间戳或整数。
target_colstry包含目标的列。
study_kwargs可选传递给 optuna.Study 构造函数的关键字参数。
optimize_kwargs可选传递给 optuna.Study.optimize 方法的关键字参数。
fittedboolFalse在重新训练最佳模型时是否计算拟合值。
prediction_intervals可选在重新训练最佳模型时用于校准预测区间的配置。
返回AutoMLForecast包含最佳模型和优化结果的对象

源码

AutoMLForecast.predict

 AutoMLForecast.predict (h:int, X_df:Union[pandas.core.frame.DataFrame,pol
                         ars.dataframe.frame.DataFrame,NoneType]=None,
                         level:Optional[List[Union[int,float]]]=None)

计算预测值

类型默认值详情
hint要预测的期数。
X_df联合包含未来外部特征的数据帧。应包含 id 列和时间列。
level可选预测区间的置信水平,介于 0 到 100 之间。
返回联合每个序列和时间步的预测值,每列对应一个模型。

源码

AutoMLForecast.save

 AutoMLForecast.save (path:Union[str,pathlib.Path])

保存 AutoMLForecast 对象

类型详情
path联合将存储工件的目录。
返回

源码

AutoMLForecast.forecast_fitted_values

 AutoMLForecast.forecast_fitted_values
                                        (level:Optional[List[Union[int,flo
                                        at]]]=None)

访问样本内预测值。

类型默认值详情
level可选预测区间的置信水平,介于 0 到 100 之间。
返回联合包含训练集预测值的数据帧
import time

import pandas as pd
from datasetsforecast.m4 import M4, M4Evaluation, M4Info
from sklearn.linear_model import Ridge
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import OneHotEncoder
def train_valid_split(group):
    df, *_ = M4.load(directory='data', group=group)
    df['ds'] = df['ds'].astype('int')
    horizon = M4Info[group].horizon
    valid = df.groupby('unique_id').tail(horizon).copy()
    train = df.drop(valid.index).reset_index(drop=True)
    return train, valid
ridge_pipeline = make_pipeline(
    ColumnTransformer(
        [('encoder', OneHotEncoder(), ['unique_id'])],
        remainder='passthrough',
    ),
    Ridge()
)
auto_ridge = AutoModel(ridge_pipeline, lambda trial: {f'ridge__{k}': v for k, v in ridge_space(trial).items()})
optuna.logging.set_verbosity(optuna.logging.ERROR)
group = 'Weekly'
train, valid = train_valid_split(group)
train['unique_id'] = train['unique_id'].astype('category')
valid['unique_id'] = valid['unique_id'].astype(train['unique_id'].dtype)
info = M4Info[group]
h = info.horizon
season_length = info.seasonality
auto_mlf = AutoMLForecast(
    freq=1,
    season_length=season_length,
    models={
        'lgb': AutoLightGBM(),
        'ridge': auto_ridge,
    },
    fit_config=lambda trial: {'static_features': ['unique_id']},
    num_threads=2,
)
auto_mlf.fit(
    df=train,
    n_windows=2,
    h=h,
    num_samples=2,
    optimize_kwargs={'timeout': 60},
    fitted=True,
    prediction_intervals=PredictionIntervals(n_windows=2, h=h),
)
auto_mlf.predict(h, level=[80])
unique_iddslgblgb-lo-80lgb-hi-80ridgeridge-lo-80ridge-hi-80
0W1218035529.43522435061.83536235997.03508636110.92120235880.44509736341.397307
1W1218135521.76489434973.03561736070.49417136195.17575736051.01381136339.337702
2W1218235537.41726834960.05093936114.78359636107.52885235784.06216936430.995536
3W1218335538.05820634823.64070636252.47570536027.13924835612.63572536441.642771
4W1218435614.61121134627.02373936602.19868336092.85848935389.69097736796.026000
4662W99229215071.53697814484.61739915658.45655715319.14622114869.41056715768.881875
4663W99229315058.14527814229.68632215886.60423415299.54955514584.26935216014.829758
4664W99229415042.49343414096.38063615988.60623215271.74471214365.34933816178.140086
4665W99229515042.14484614037.05390416047.23578715250.07050414403.42879116096.712216
4666W99229615038.72904413944.82148016132.63660915232.12780014325.05977616139.195824
auto_mlf.forecast_fitted_values(level=[95])
unique_iddsylgblgb-lo-95lgb-hi-95ridgeridge-lo-95ridge-hi-95
0W1151071.061060.584344599.6183551521.5503341076.990151556.5354921597.444810
1W1161073.731072.669242611.7032521533.6352321083.633276563.1786171604.087936
2W1171066.971072.452128611.4861391533.4181181084.724311564.2696521605.178970
3W1181066.171065.837828604.8718381526.8038181080.127197559.6725381600.581856
4W1191064.431065.214681604.2486911526.1806711080.636826560.1821671601.091485
361881W99227915738.5415887.66122815721.23719516054.08526115927.91818115723.22276016132.613603
361882W99228015388.1315755.94378915589.51975615922.36782315841.59906415636.90364216046.294485
361883W99228115187.6215432.22470115265.80066815598.64873515584.46223215379.76681115789.157654
361884W99228215172.2715177.04083115010.61679715343.46486415396.24322315191.54780115600.938644
361885W99228315101.0315162.09080314995.66677015328.51483615335.98246515131.28704415540.677887
import polars as pl
train_pl = pl.from_pandas(train.astype({'unique_id': 'str'}))
auto_mlf = AutoMLForecast(
    freq=1,
    season_length=season_length,
    models={'ridge': AutoRidge()},
    num_threads=2,
)
auto_mlf.fit(
    df=train_pl,
    n_windows=2,
    h=h,
    num_samples=2,
    optimize_kwargs={'timeout': 60},
    fitted=True,
    prediction_intervals=PredictionIntervals(n_windows=2, h=h),
)
auto_mlf.predict(h, level=[80])
unique_iddsridgeridge-lo-80ridge-hi-80
stri64f64f64f64
”W1”218035046.09666334046.6952136045.498116
”W1”218134743.26921633325.84797536160.690457
”W1”218234489.59108632591.25455936387.927614
”W1”218334270.76817932076.50772736465.02863
”W1”218434124.02185731352.45412136895.589593
”W99”229214719.45709613983.30858215455.605609
”W99”229314631.55207713928.87433615334.229818
”W99”229414532.90523913642.84011815422.97036
”W99”229514446.06544313665.08866715227.04222
”W99”229614363.04960413654.22005115071.879157
auto_mlf.forecast_fitted_values(level=[95])
unique_iddsyridgeridge-lo-95ridge-hi-95
stri64f64f64f64f64
”W1”141061.961249.326428488.7652492009.887607
”W1”151071.061246.067836485.5066572006.629015
”W1”161073.731254.027897493.4667182014.589076
”W1”171066.971254.475948493.9147692015.037126
”W1”181066.171248.306754487.7455752008.867933
”W99”227915738.5415754.55881215411.96864516097.148979
”W99”228015388.1315655.78086515313.19069815998.371032
”W99”228115187.6215367.49846815024.90830115710.088635
”W99”228215172.2715172.59142314830.00125615515.18159
”W99”228315101.0315141.03288614798.4427215483.623053