lisphilar / covid19-sir

CovsirPhy: Python library for COVID-19 analysis with phase-dependent SIR-derived ODE models.

Home Page:https://lisphilar.github.io/covid19-sir/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug] FutureWarnig with a dependency when prediction

lisphilar opened this issue · comments

Checkbox

Summary

FutureWarnig is raised when prediction and this can be supressed because this is for a dependency.

Reproducible example script

import pytest
from covsirphy import MLEngineer, DataEngineer, Term


@pytest.fixture(scope="module")
def subset_df():
    data_eng = DataEngineer()
    data_eng.download(databases=["japan", "covid19dh", "owid"])
    data_eng.clean()
    data_eng.transform()
    return data_eng.subset(geo="Japan")[0]

def test_forecast(subset_df):
    Y = subset_df.loc[:, [Term.C, Term.F, Term.R]]
    subset_df = subset_df.drop([Term.N, Term.S, Term.C, Term.CI, Term.F, Term.R], axis=1)
    # PCA
    eng = MLEngineer()
    pca_dict = eng.pca(X=subset_df, n_components=0.95)
    X = pca_dict["PC"].copy()
    # Forecasting without other information
    X_pred = eng.forecast(Y=X, days=30, X=None)
    # Forecasting with other information
    Y_pred = eng.forecast(Y=Y, days=30, X=X_pred)
    assert X_pred.index[-1] == Y_pred.index[-1]

The current outputs

tests/test_science/test_ml.py:31: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
covsirphy/science/ml.py:97: in forecast
    return model.fit(X=X).predict()
covsirphy/science/_autots.py:68: in fit
    self._autots.fit(self._Y, future_regressor=None if X is None else regressor_train)
.venv/lib/python3.10/site-packages/autots/evaluator/auto_ts.py:906: in fit
    self.initial_template = unpack_ensemble_models(
.venv/lib/python3.10/site-packages/autots/evaluator/auto_model.py:884: in unpack_ensemble_models
    for index, value in models_to_iterate.iteritems():
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Series([], Name: ModelParameters, dtype: object)

    def iteritems(self) -> Iterable[tuple[Hashable, Any]]:
        """
        Lazily iterate over (index, value) tuples.
    
        .. deprecated:: 1.5.0
            iteritems is deprecated and will be removed in a future version.
            Use .items instead.
    
        This method returns an iterable tuple (index, value). This is
        convenient if you want to create a lazy iterator.
    
        Returns
        -------
        iterable
            Iterable of tuples containing the (index, value) pairs from a
            Series.
    
        See Also
        --------
        Series.items : Recommended alternative.
        DataFrame.items : Iterate over (column name, Series) pairs.
        DataFrame.iterrows : Iterate over DataFrame rows as (index, Series) pairs.
        """
>       warnings.warn(
            "iteritems is deprecated and will be removed in a future version. "
            "Use .items instead.",
            FutureWarning,
            stacklevel=find_stack_level(inspect.currentframe()),
        )
E       FutureWarning: iteritems is deprecated and will be removed in a future version. Use .items instead.

.venv/lib/python3.10/site-packages/pandas/core/series.py:1845: FutureWarning

Expected outputs

No warnings.

Environment

- CovsirPhy version: 3.0.0-dev0
- Python version: 3.10.7

Package manager (required if installation issue)

No response

Platform (required if installation issue)

No response

Additional Context

No response