[Bug] FutureWarnig with a dependency when prediction
lisphilar opened this issue · comments
Hirokazu Takaya commented
Checkbox
- I agree to follow code of conduct and to engage in discussion actively.
- I agree to create a new issue with the other templates if this is not a bug.
- I used the latest version of covsirphy.
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