autogluon.tabular 1.2.1b20250116__py3-none-any.whl → 1.2.1b20250131__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- autogluon/tabular/experimental/_tabular_classifier.py +1 -3
- autogluon/tabular/experimental/_tabular_regressor.py +1 -3
- autogluon/tabular/models/_utils/rapids_utils.py +1 -1
- autogluon/tabular/models/catboost/callbacks.py +41 -13
- autogluon/tabular/models/fastainn/tabular_nn_fastai.py +2 -2
- autogluon/tabular/models/lgb/lgb_utils.py +2 -2
- autogluon/tabular/models/tab_transformer/modified_transformer.py +3 -3
- autogluon/tabular/models/tab_transformer/pretexts.py +4 -4
- autogluon/tabular/models/tab_transformer/tab_transformer_encoder.py +4 -4
- autogluon/tabular/models/tabular_nn/torch/tabular_torch_dataset.py +2 -2
- autogluon/tabular/predictor/_deprecated_methods.py +5 -7
- autogluon/tabular/predictor/predictor.py +43 -43
- autogluon/tabular/trainer/auto_trainer.py +5 -6
- autogluon/tabular/version.py +1 -1
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/METADATA +11 -9
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/RECORD +23 -23
- /autogluon.tabular-1.2.1b20250116-py3.8-nspkg.pth → /autogluon.tabular-1.2.1b20250131-py3.9-nspkg.pth +0 -0
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/LICENSE +0 -0
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/NOTICE +0 -0
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/WHEEL +0 -0
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/namespace_packages.txt +0 -0
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/top_level.txt +0 -0
- {autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/zip-safe +0 -0
@@ -1,7 +1,5 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import List
|
4
|
-
|
5
3
|
import pandas as pd
|
6
4
|
from sklearn.base import BaseEstimator, ClassifierMixin
|
7
5
|
from sklearn.utils.multiclass import unique_labels
|
@@ -18,7 +16,7 @@ class TabularClassifier(BaseEstimator, ClassifierMixin, ScikitMixin):
|
|
18
16
|
self,
|
19
17
|
eval_metric: str | Scorer = None,
|
20
18
|
time_limit: float = None,
|
21
|
-
presets:
|
19
|
+
presets: list[str] | str = None,
|
22
20
|
hyperparameters: dict | str = None,
|
23
21
|
path: str = None,
|
24
22
|
verbosity: int = 2,
|
@@ -1,7 +1,5 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import List
|
4
|
-
|
5
3
|
import pandas as pd
|
6
4
|
from sklearn.base import BaseEstimator, RegressorMixin
|
7
5
|
from sklearn.utils.validation import check_array, check_is_fitted, check_X_y
|
@@ -17,7 +15,7 @@ class TabularRegressor(BaseEstimator, RegressorMixin, ScikitMixin):
|
|
17
15
|
self,
|
18
16
|
eval_metric: str | Scorer = None,
|
19
17
|
time_limit: float = None,
|
20
|
-
presets:
|
18
|
+
presets: list[str] | str = None,
|
21
19
|
hyperparameters: dict | str = None,
|
22
20
|
path: str = None,
|
23
21
|
verbosity: int = 2,
|
@@ -4,7 +4,7 @@ from autogluon.common.utils.resource_utils import ResourceManager
|
|
4
4
|
|
5
5
|
|
6
6
|
class RapidsModelMixin:
|
7
|
-
"""Mixin class for methods
|
7
|
+
"""Mixin class for methods reused across RAPIDS models"""
|
8
8
|
|
9
9
|
# FIXME: Efficient OOF doesn't work in RAPIDS
|
10
10
|
@classmethod
|
@@ -39,37 +39,65 @@ class MemoryCheckCallback:
|
|
39
39
|
return False
|
40
40
|
return True
|
41
41
|
|
42
|
-
def memory_check(self, iter) -> bool:
|
43
|
-
"""
|
42
|
+
def memory_check(self, iter: int) -> bool:
|
43
|
+
"""
|
44
|
+
Checks if memory usage is unsafe. If so, signals the model to stop training early.
|
45
|
+
|
46
|
+
Parameters
|
47
|
+
----------
|
48
|
+
iter: int
|
49
|
+
The current training iteration.
|
50
|
+
|
51
|
+
Returns
|
52
|
+
-------
|
53
|
+
bool: True if training should stop due to memory constraints, False otherwise.
|
54
|
+
"""
|
44
55
|
available_bytes = ResourceManager.get_available_virtual_mem()
|
45
56
|
cur_rss = ResourceManager.get_memory_rss()
|
46
57
|
|
58
|
+
# Update initial memory usage if current usage is lower
|
47
59
|
if cur_rss < self.init_mem_rss:
|
48
60
|
self.init_mem_rss = cur_rss
|
49
|
-
estimated_model_size_mb = (cur_rss - self.init_mem_rss) >> 20
|
50
|
-
available_mb = available_bytes >> 20
|
51
|
-
model_size_memory_ratio = estimated_model_size_mb / available_mb
|
52
61
|
|
62
|
+
# Convert memory values to MB
|
63
|
+
estimated_model_size_mb = (cur_rss - self.init_mem_rss) / (1024 ** 2)
|
64
|
+
available_mb = available_bytes / (1024 ** 2)
|
65
|
+
|
66
|
+
model_size_memory_ratio = estimated_model_size_mb / available_mb
|
53
67
|
early_stop = False
|
68
|
+
|
54
69
|
if model_size_memory_ratio > 1.0:
|
55
|
-
logger.warning(
|
70
|
+
logger.warning(
|
71
|
+
f"Iteration {iter}: Model size exceeds available memory. "
|
72
|
+
f"Available memory: {available_mb:.2f} MB, "
|
73
|
+
f"Estimated model size: {estimated_model_size_mb:.2f} MB."
|
74
|
+
)
|
56
75
|
early_stop = True
|
57
76
|
|
58
|
-
if available_mb < 512: # Less than
|
59
|
-
logger.warning(
|
77
|
+
if available_mb < 512: # Less than 512 MB
|
78
|
+
logger.warning(
|
79
|
+
f"Iteration {iter}: Low available memory (<512 MB). "
|
80
|
+
f"Available memory: {available_mb:.2f} MB, "
|
81
|
+
f"Estimated model size: {estimated_model_size_mb:.2f} MB."
|
82
|
+
)
|
60
83
|
early_stop = True
|
61
84
|
|
62
85
|
if early_stop:
|
63
86
|
logger.warning(
|
64
|
-
"
|
87
|
+
"Early stopping model prior to optimal result to avoid OOM error. "
|
88
|
+
"Please increase available memory to avoid subpar model quality."
|
65
89
|
)
|
66
|
-
logger.warning(f"Available Memory: {available_mb} MB, Estimated Model size: {estimated_model_size_mb} MB")
|
67
90
|
return True
|
68
|
-
elif self.verbose or
|
69
|
-
|
91
|
+
elif self.verbose or model_size_memory_ratio > 0.25:
|
92
|
+
logger.debug(
|
93
|
+
f"Iteration {iter}: "
|
94
|
+
f"Available memory: {available_mb:.2f} MB, "
|
95
|
+
f"Estimated model size: {estimated_model_size_mb:.2f} MB."
|
96
|
+
)
|
70
97
|
|
98
|
+
# Adjust memory check frequency based on model size
|
71
99
|
if model_size_memory_ratio > 0.5:
|
72
|
-
self._cur_period = 1 # Increase
|
100
|
+
self._cur_period = 1 # Increase frequency of memory checks
|
73
101
|
elif iter > self.period:
|
74
102
|
self._cur_period = self.period
|
75
103
|
|
@@ -8,7 +8,7 @@ import warnings
|
|
8
8
|
from builtins import classmethod
|
9
9
|
from functools import partial
|
10
10
|
from pathlib import Path
|
11
|
-
from typing import
|
11
|
+
from typing import Union
|
12
12
|
|
13
13
|
import numpy as np
|
14
14
|
import pandas as pd
|
@@ -628,7 +628,7 @@ class NNFastAiTabularModel(AbstractModel):
|
|
628
628
|
"""Choose which backend(Ray or Custom) to use for hpo"""
|
629
629
|
return RAY_BACKEND
|
630
630
|
|
631
|
-
def _get_maximum_resources(self) ->
|
631
|
+
def _get_maximum_resources(self) -> dict[str, Union[int, float]]:
|
632
632
|
# fastai model trains slower when utilizing virtual cores and this issue scale up when the number of cpu cores increases
|
633
633
|
return {"num_cpus": ResourceManager.get_cpu_count_psutil(logical=False)}
|
634
634
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import copy
|
2
2
|
import os
|
3
3
|
import time
|
4
|
-
from typing import
|
4
|
+
from typing import Optional
|
5
5
|
|
6
6
|
import numpy as np
|
7
7
|
from pandas import DataFrame, Series
|
@@ -137,7 +137,7 @@ def train_lgb_model(early_stopping_callback_kwargs=None, **train_params):
|
|
137
137
|
class QuantileBooster:
|
138
138
|
"""Wrapper that trains a separate LGBM Booster for each quantile level."""
|
139
139
|
|
140
|
-
def __init__(self, quantile_levels:
|
140
|
+
def __init__(self, quantile_levels: list[float], early_stopping_callback_kwargs: Optional[dict] = None):
|
141
141
|
if quantile_levels is None:
|
142
142
|
raise AssertionError
|
143
143
|
if not all(0 < q < 1 for q in quantile_levels):
|
@@ -6,7 +6,7 @@ The modification allows the option of fixing the attention map
|
|
6
6
|
"""
|
7
7
|
|
8
8
|
import math
|
9
|
-
from typing import Optional
|
9
|
+
from typing import Optional
|
10
10
|
|
11
11
|
import torch
|
12
12
|
import torch.nn.functional as F
|
@@ -54,7 +54,7 @@ def multi_head_attention_forward(
|
|
54
54
|
static_k=None, # type: Optional[Tensor]
|
55
55
|
static_v=None, # type: Optional[Tensor]
|
56
56
|
):
|
57
|
-
# type: (...) ->
|
57
|
+
# type: (...) -> tuple[Tensor, Optional[Tensor]]
|
58
58
|
"""
|
59
59
|
Args:
|
60
60
|
query, key, value: map a query and a set of key-value pairs to an output.
|
@@ -288,7 +288,7 @@ class MultiheadAttention(Module):
|
|
288
288
|
super().__setstate__(state)
|
289
289
|
|
290
290
|
def forward(self, query, key, value, key_padding_mask=None, need_weights=True, attn_mask=None):
|
291
|
-
# type: (Tensor, Tensor, Tensor, Optional[Tensor], bool, Optional[Tensor]) ->
|
291
|
+
# type: (Tensor, Tensor, Tensor, Optional[Tensor], bool, Optional[Tensor]) -> tuple[Tensor, Optional[Tensor]]
|
292
292
|
"""
|
293
293
|
Args:
|
294
294
|
query, key, value: map a query and a set of key-value pairs to an output.
|
@@ -111,8 +111,8 @@ class BERTPretext(nn.Module):
|
|
111
111
|
assert torch.all(cat_feats[extra_replace] == orig_cat_feats[extra_replace]).item() is True
|
112
112
|
extra_plus1 = cat_feats[extra_replace] + 1
|
113
113
|
extra_minus1 = cat_feats[extra_replace] - 1
|
114
|
-
|
115
|
-
extra_minus1[
|
114
|
+
extra_zero_pad_idx = extra_minus1 == 0
|
115
|
+
extra_minus1[extra_zero_pad_idx] = extra_plus1[extra_zero_pad_idx]
|
116
116
|
|
117
117
|
cat_feats[extra_replace] = extra_minus1
|
118
118
|
assert torch.all(~(cat_feats[extra_replace] == orig_cat_feats[extra_replace])).item() is True
|
@@ -135,8 +135,8 @@ class BERTPretext(nn.Module):
|
|
135
135
|
assert torch.all(cat_feats[extra_replace] == orig_cat_feats[extra_replace]).item() is True
|
136
136
|
extra_plus1 = cat_feats[extra_replace] + 1
|
137
137
|
extra_minus1 = cat_feats[extra_replace] - 1
|
138
|
-
|
139
|
-
extra_minus1[
|
138
|
+
extra_zero_pad_idx = extra_minus1 == 0
|
139
|
+
extra_minus1[extra_zero_pad_idx] = extra_plus1[extra_zero_pad_idx]
|
140
140
|
|
141
141
|
cat_feats[extra_replace] = extra_minus1
|
142
142
|
assert torch.all(~(cat_feats[extra_replace] == orig_cat_feats[extra_replace])).item() is True
|
@@ -7,7 +7,7 @@ import re
|
|
7
7
|
from collections import Counter
|
8
8
|
from datetime import date, datetime
|
9
9
|
from functools import partial
|
10
|
-
from typing import Iterable,
|
10
|
+
from typing import Iterable, Union
|
11
11
|
|
12
12
|
import numpy as np
|
13
13
|
import pandas as pd
|
@@ -514,7 +514,7 @@ class EmbeddingInitializer(nn.Module):
|
|
514
514
|
:param drop_whole_embeddings:
|
515
515
|
If True, dropout pretends the embedding was a missing value. If false, dropout sets embed features to 0
|
516
516
|
:param one_hot:
|
517
|
-
If True, one-hot encode variables whose cardinality is < max_emb_dim. Also, set
|
517
|
+
If True, one-hot encode variables whose cardinality is < max_emb_dim. Also, set requires_grad = False
|
518
518
|
:param out_dim:
|
519
519
|
If None, return the embedding straight from self.embed. If another dimension, put the embedding through a
|
520
520
|
Linear layer to make it size (batch x out_dim).
|
@@ -624,7 +624,7 @@ def add_datepart(df: DataFrame, field_name: str, prefix: str = None, drop: bool
|
|
624
624
|
return df
|
625
625
|
|
626
626
|
|
627
|
-
def cyclic_dt_feat_names(time: bool = True, add_linear: bool = False) ->
|
627
|
+
def cyclic_dt_feat_names(time: bool = True, add_linear: bool = False) -> list[str]:
|
628
628
|
"Return feature names of date/time cycles as produced by `cyclic_dt_features`."
|
629
629
|
fs = ["cos", "sin"]
|
630
630
|
attr = [f"{r}_{f}" for r in "weekday day_month month_year day_year".split() for f in fs]
|
@@ -635,7 +635,7 @@ def cyclic_dt_feat_names(time: bool = True, add_linear: bool = False) -> List[st
|
|
635
635
|
return attr
|
636
636
|
|
637
637
|
|
638
|
-
def cyclic_dt_features(d: Union[date, datetime], time: bool = True, add_linear: bool = False) ->
|
638
|
+
def cyclic_dt_features(d: Union[date, datetime], time: bool = True, add_linear: bool = False) -> list[float]:
|
639
639
|
"Calculate the cos and sin of date/time cycles."
|
640
640
|
tt, fs = d.timetuple(), [np.cos, np.sin]
|
641
641
|
day_year, days_month = tt.tm_yday, calendar.monthrange(d.year, d.month)[1]
|
@@ -136,7 +136,7 @@ class TabularTorchDataset(torch.utils.data.IterableDataset):
|
|
136
136
|
load the dataset.
|
137
137
|
|
138
138
|
Returns a tuple containing (vector_features, embed_features, label).
|
139
|
-
The length of the tuple depends on `has_vector_features` and `
|
139
|
+
The length of the tuple depends on `has_vector_features` and `has_embed_features` attribute.
|
140
140
|
"""
|
141
141
|
idxarray = np.arange(self.num_examples)
|
142
142
|
if self.shuffle:
|
@@ -154,7 +154,7 @@ class TabularTorchDataset(torch.utils.data.IterableDataset):
|
|
154
154
|
idx = idxarray[idx]
|
155
155
|
|
156
156
|
# Generate a tuple that contains (vector_features, embed_features, label).
|
157
|
-
# The length of the tuple depends on `has_vector_features`, `
|
157
|
+
# The length of the tuple depends on `has_vector_features`, `has_embed_features`, and
|
158
158
|
# whether the label has been provided.
|
159
159
|
output_list = []
|
160
160
|
if self.has_vector_features:
|
@@ -1,7 +1,5 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import Dict, List
|
4
|
-
|
5
3
|
import numpy as np
|
6
4
|
import pandas as pd
|
7
5
|
|
@@ -12,17 +10,17 @@ class TabularPredictorDeprecatedMixin:
|
|
12
10
|
"""Contains deprecated methods from TabularPredictor that shouldn't show up in API documentation."""
|
13
11
|
|
14
12
|
@Deprecated(min_version_to_warn="0.8.3", min_version_to_error="1.2", version_to_remove="1.2", new="persist")
|
15
|
-
def persist_models(self, *args, **kwargs) ->
|
13
|
+
def persist_models(self, *args, **kwargs) -> list[str]:
|
16
14
|
"""Deprecated method. Use `persist` instead."""
|
17
15
|
return self.persist(*args, **kwargs)
|
18
16
|
|
19
17
|
@Deprecated(min_version_to_warn="0.8.3", min_version_to_error="1.2", version_to_remove="1.2", new="unpersist")
|
20
|
-
def unpersist_models(self, *args, **kwargs) ->
|
18
|
+
def unpersist_models(self, *args, **kwargs) -> list[str]:
|
21
19
|
"""Deprecated method. Use `unpersist` instead."""
|
22
20
|
return self.unpersist(*args, **kwargs)
|
23
21
|
|
24
22
|
@Deprecated(min_version_to_warn="0.8.3", min_version_to_error="1.2", version_to_remove="1.2", new="model_names")
|
25
|
-
def get_model_names(self, *args, **kwargs) ->
|
23
|
+
def get_model_names(self, *args, **kwargs) -> list[str]:
|
26
24
|
"""Deprecated method. Use `model_names` instead."""
|
27
25
|
return self.model_names(*args, **kwargs)
|
28
26
|
|
@@ -37,7 +35,7 @@ class TabularPredictorDeprecatedMixin:
|
|
37
35
|
return self.predict_from_proba(*args, **kwargs)
|
38
36
|
|
39
37
|
@Deprecated(min_version_to_warn="0.8.3", min_version_to_error="1.2", version_to_remove="1.2", new="model_refit_map")
|
40
|
-
def get_model_full_dict(self, *args, **kwargs) ->
|
38
|
+
def get_model_full_dict(self, *args, **kwargs) -> dict[str, str]:
|
41
39
|
"""Deprecated method. Use `model_refit_map` instead."""
|
42
40
|
return self.model_refit_map(*args, **kwargs)
|
43
41
|
|
@@ -62,6 +60,6 @@ class TabularPredictorDeprecatedMixin:
|
|
62
60
|
return self.disk_usage()
|
63
61
|
|
64
62
|
@Deprecated(min_version_to_warn="0.8.3", min_version_to_error="1.2", version_to_remove="1.2", new="model_names(persisted=True)")
|
65
|
-
def get_model_names_persisted(self) ->
|
63
|
+
def get_model_names_persisted(self) -> list[str]:
|
66
64
|
"""Deprecated method. Use `model_names(persisted=True)` instead."""
|
67
65
|
return self.model_names(persisted=True)
|
@@ -9,7 +9,7 @@ import pprint
|
|
9
9
|
import shutil
|
10
10
|
import time
|
11
11
|
import warnings
|
12
|
-
from typing import overload, Any,
|
12
|
+
from typing import overload, Any, Literal, Optional, Union
|
13
13
|
|
14
14
|
import networkx as nx
|
15
15
|
import numpy as np
|
@@ -224,7 +224,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
224
224
|
)
|
225
225
|
self._learner_type = type(self._learner)
|
226
226
|
self._trainer: AbstractTrainer = None
|
227
|
-
self._sub_fits:
|
227
|
+
self._sub_fits: list[str] = []
|
228
228
|
self._stacked_overfitting_occurred: bool | None = None
|
229
229
|
self._fit_strategy = None
|
230
230
|
|
@@ -271,7 +271,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
271
271
|
return self._learner.label_cleaner.inv_map
|
272
272
|
|
273
273
|
@property
|
274
|
-
def quantile_levels(self) ->
|
274
|
+
def quantile_levels(self) -> list[float]:
|
275
275
|
return self._learner.quantile_levels
|
276
276
|
|
277
277
|
@property
|
@@ -280,7 +280,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
280
280
|
return self._learner.eval_metric
|
281
281
|
|
282
282
|
@property
|
283
|
-
def original_features(self) ->
|
283
|
+
def original_features(self) -> list[str]:
|
284
284
|
"""Original features user passed in to fit before processing"""
|
285
285
|
self._assert_is_fit()
|
286
286
|
return self._learner.original_features
|
@@ -400,7 +400,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
400
400
|
train_data: pd.DataFrame | str,
|
401
401
|
tuning_data: pd.DataFrame | str = None,
|
402
402
|
time_limit: float = None,
|
403
|
-
presets:
|
403
|
+
presets: list[str] | str = None,
|
404
404
|
hyperparameters: dict | str = None,
|
405
405
|
feature_metadata="infer",
|
406
406
|
infer_limit: float = None,
|
@@ -414,7 +414,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
414
414
|
num_gpus: int | str = "auto",
|
415
415
|
fit_strategy: Literal["sequential", "parallel"] = "sequential",
|
416
416
|
memory_limit: float | str = "auto",
|
417
|
-
callbacks:
|
417
|
+
callbacks: list[AbstractCallback] = None,
|
418
418
|
**kwargs,
|
419
419
|
) -> "TabularPredictor":
|
420
420
|
"""
|
@@ -531,7 +531,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
531
531
|
Advanced functionality: Bring your own model / Custom model support
|
532
532
|
AutoGluon fully supports custom models. For a detailed tutorial on creating and using custom models with AutoGluon, refer to https://auto.gluon.ai/stable/tutorials/tabular/advanced/tabular-custom-model.html
|
533
533
|
Advanced functionality: Custom stack levels
|
534
|
-
By default, AutoGluon
|
534
|
+
By default, AutoGluon reuses the same models and model hyperparameters at each level during stack ensembling.
|
535
535
|
To customize this behaviour, create a hyperparameters dictionary separately for each stack level, and then add them as values to a new dictionary, with keys equal to the stack level.
|
536
536
|
Example: `hyperparameters = {1: {'RF': rf_params1}, 2: {'CAT': [cat_params1, cat_params2], 'NN_TORCH': {}}}`
|
537
537
|
This will result in a stack ensemble that has one custom random forest in level 1 followed by two CatBoost models with custom hyperparameters and a default neural network in level 2, for a total of 4 models.
|
@@ -737,7 +737,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
737
737
|
setting the memory limit (and any other resources) on systems with shared resources that are controlled by the operating system (e.g., SLURM and
|
738
738
|
cgroups). Otherwise, AutoGluon might wrongly assume more resources are available for fitting a model than the operating system allows,
|
739
739
|
which can result in model training failing or being very inefficient.
|
740
|
-
callbacks :
|
740
|
+
callbacks : list[AbstractCallback], default = None
|
741
741
|
:::{warning}
|
742
742
|
Callbacks are an experimental feature and may change in future releases without warning.
|
743
743
|
Callback support is preliminary and targeted towards developers.
|
@@ -750,7 +750,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
750
750
|
If None, no callback objects will be used.
|
751
751
|
|
752
752
|
[Note] Callback objects can be mutated in-place by the fit call if they are stateful.
|
753
|
-
Ensure that you avoid
|
753
|
+
Ensure that you avoid reusing a mutated callback object between multiple fit calls.
|
754
754
|
|
755
755
|
[Note] Callback objects are deleted from trainer at the end of the fit call. They will not impact operations such as `refit_full` or `fit_extra`.
|
756
756
|
**kwargs :
|
@@ -1779,9 +1779,9 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
1779
1779
|
# TODO: Consider adding infer_limit to fit_extra
|
1780
1780
|
def fit_extra(
|
1781
1781
|
self,
|
1782
|
-
hyperparameters: str |
|
1782
|
+
hyperparameters: str | dict[str, Any],
|
1783
1783
|
time_limit: float = None,
|
1784
|
-
base_model_names:
|
1784
|
+
base_model_names: list[str] = None,
|
1785
1785
|
fit_weighted_ensemble: bool = True,
|
1786
1786
|
fit_full_last_level_weighted_ensemble: bool = True,
|
1787
1787
|
full_weighted_ensemble_additionally: bool = False,
|
@@ -1804,7 +1804,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
1804
1804
|
dictionary is relative, not absolute.
|
1805
1805
|
time_limit : int, default = None
|
1806
1806
|
Refer to argument documentation in :meth:`TabularPredictor.fit`.
|
1807
|
-
base_model_names :
|
1807
|
+
base_model_names : list[str], default = None
|
1808
1808
|
The names of the models to use as base models for this fit call.
|
1809
1809
|
Base models will provide their out-of-fold predictions as additional features to the models in `hyperparameters`.
|
1810
1810
|
If specified, all models trained will be stack ensembles.
|
@@ -2294,7 +2294,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2294
2294
|
# TODO: Consider making calculating this information easier, such as keeping track of meta-info from the latest/original fit call.
|
2295
2295
|
# Currently we use `stack_name == core` to figure out the number of stack levels, but this is somewhat brittle.
|
2296
2296
|
if "num_stack_levels" not in fit_extra_kwargs and not was_fit:
|
2297
|
-
models_core:
|
2297
|
+
models_core: list[str] = [m for m, stack_name in self._trainer.get_models_attribute_dict(attribute="stack_name").items() if stack_name == "core"]
|
2298
2298
|
num_stack_levels = max(self._trainer.get_models_attribute_dict(attribute="level", models=models_core).values()) - 1
|
2299
2299
|
fit_extra_kwargs["num_stack_levels"] = num_stack_levels
|
2300
2300
|
if is_labeled:
|
@@ -2785,7 +2785,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2785
2785
|
display=display,
|
2786
2786
|
)
|
2787
2787
|
|
2788
|
-
def learning_curves(self) ->
|
2788
|
+
def learning_curves(self) -> tuple[dict, dict]:
|
2789
2789
|
"""
|
2790
2790
|
Retrieves learning curves generated during predictor.fit().
|
2791
2791
|
Will not work if the learning_curves flag was not set during training.
|
@@ -2892,7 +2892,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2892
2892
|
def predict_proba_multi(
|
2893
2893
|
self,
|
2894
2894
|
data: pd.DataFrame = None,
|
2895
|
-
models:
|
2895
|
+
models: list[str] = None,
|
2896
2896
|
as_pandas: bool = True,
|
2897
2897
|
as_multiclass: bool = True,
|
2898
2898
|
transform_features: bool = True,
|
@@ -2924,7 +2924,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2924
2924
|
for m in models:
|
2925
2925
|
predict_proba_dict[m] = predictor.predict_proba_oof(model=m)
|
2926
2926
|
```
|
2927
|
-
models :
|
2927
|
+
models : list[str], default = None
|
2928
2928
|
The list of models to get predictions for.
|
2929
2929
|
If None, all models that can infer are used.
|
2930
2930
|
as_pandas : bool, default = True
|
@@ -2972,7 +2972,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2972
2972
|
def predict_multi(
|
2973
2973
|
self,
|
2974
2974
|
data: pd.DataFrame = None,
|
2975
|
-
models:
|
2975
|
+
models: list[str] = None,
|
2976
2976
|
as_pandas: Literal[True] = True,
|
2977
2977
|
transform_features: bool = True,
|
2978
2978
|
inverse_transform: bool = True,
|
@@ -2983,7 +2983,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2983
2983
|
def predict_multi(
|
2984
2984
|
self,
|
2985
2985
|
data: pd.DataFrame = None,
|
2986
|
-
models:
|
2986
|
+
models: list[str] = None,
|
2987
2987
|
*,
|
2988
2988
|
as_pandas: Literal[False],
|
2989
2989
|
transform_features: bool = True,
|
@@ -2994,7 +2994,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
2994
2994
|
def predict_multi(
|
2995
2995
|
self,
|
2996
2996
|
data: pd.DataFrame = None,
|
2997
|
-
models:
|
2997
|
+
models: list[str] = None,
|
2998
2998
|
as_pandas: bool = True,
|
2999
2999
|
transform_features: bool = True,
|
3000
3000
|
inverse_transform: bool = True,
|
@@ -3027,7 +3027,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3027
3027
|
for m in models:
|
3028
3028
|
predict_dict[m] = predictor.predict_oof(model=m)
|
3029
3029
|
```
|
3030
|
-
models :
|
3030
|
+
models : list[str], default = None
|
3031
3031
|
The list of models to get predictions for.
|
3032
3032
|
If None, all models that can infer are used.
|
3033
3033
|
as_pandas : bool, default = True
|
@@ -3246,7 +3246,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3246
3246
|
Valid models are listed in this `predictor` by calling `predictor.model_names()`.
|
3247
3247
|
Specifying a `refit_full` model will cause an exception if `data=None`.
|
3248
3248
|
`base_models=None` is a requirement when specifying `model`.
|
3249
|
-
base_models:
|
3249
|
+
base_models: list[str], default = None
|
3250
3250
|
List of model names to use as base_models for a hypothetical stacker model when generating input features.
|
3251
3251
|
If `None`, then only return generically preprocessed features prior to any model fitting.
|
3252
3252
|
Valid models are listed in this `predictor` by calling `predictor.model_names()`.
|
@@ -3516,7 +3516,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3516
3516
|
raise ValueError(f'Unknown compiler_configs preset: "{compiler_configs}"')
|
3517
3517
|
self._trainer.compile(model_names=models, with_ancestors=with_ancestors, compiler_configs=compiler_configs)
|
3518
3518
|
|
3519
|
-
def persist(self, models="best", with_ancestors=True, max_memory=0.4) ->
|
3519
|
+
def persist(self, models="best", with_ancestors=True, max_memory=0.4) -> list[str]:
|
3520
3520
|
"""
|
3521
3521
|
Persist models in memory for reduced inference latency. This is particularly important if the models are being used for online-inference where low latency is critical.
|
3522
3522
|
If models are not persisted in memory, they are loaded from disk every time they are asked to make predictions.
|
@@ -3552,7 +3552,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3552
3552
|
raise ValueError(f"Invalid models specified. The following models do not exist:\n\t{invalid_models}\nValid models:\n\t{valid_models}")
|
3553
3553
|
raise e
|
3554
3554
|
|
3555
|
-
def unpersist(self, models="all") ->
|
3555
|
+
def unpersist(self, models="all") -> list[str]:
|
3556
3556
|
"""
|
3557
3557
|
Unpersist models in memory for reduced memory usage.
|
3558
3558
|
If models are not persisted in memory, they are loaded from disk every time they are asked to make predictions.
|
@@ -3576,14 +3576,14 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3576
3576
|
# refit_full doesn't account for user-specified resources at fit time, nor does it allow them to specify for refit.
|
3577
3577
|
def refit_full(
|
3578
3578
|
self,
|
3579
|
-
model: str |
|
3579
|
+
model: str | list[str] = "all",
|
3580
3580
|
set_best_to_refit_full: bool = True,
|
3581
3581
|
train_data_extra: pd.DataFrame = None,
|
3582
3582
|
num_cpus: int | str = "auto",
|
3583
3583
|
num_gpus: int | str = "auto",
|
3584
3584
|
fit_strategy: Literal["auto", "sequential", "parallel"] = "auto",
|
3585
3585
|
**kwargs,
|
3586
|
-
) ->
|
3586
|
+
) -> dict[str, str]:
|
3587
3587
|
"""
|
3588
3588
|
Retrain model on all of the data (training + validation).
|
3589
3589
|
For bagged models:
|
@@ -3607,7 +3607,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3607
3607
|
|
3608
3608
|
Parameters
|
3609
3609
|
----------
|
3610
|
-
model : str |
|
3610
|
+
model : str | list[str], default = 'all'
|
3611
3611
|
Model name of model(s) to refit.
|
3612
3612
|
If 'all' then all models are refitted.
|
3613
3613
|
If 'best' then the model with the highest validation score is refit.
|
@@ -3759,7 +3759,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3759
3759
|
if save_trainer:
|
3760
3760
|
self._trainer.save()
|
3761
3761
|
|
3762
|
-
def model_refit_map(self, inverse=False) ->
|
3762
|
+
def model_refit_map(self, inverse=False) -> dict[str, str]:
|
3763
3763
|
"""
|
3764
3764
|
Returns a dictionary of original model name -> refit full model name.
|
3765
3765
|
Empty unless `refit_full=True` was set during fit or `predictor.refit_full()` was called.
|
@@ -3915,7 +3915,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3915
3915
|
data: pd.DataFrame | str | None = None,
|
3916
3916
|
metric: str | Scorer | None = None,
|
3917
3917
|
model: str = "best",
|
3918
|
-
decision_thresholds: int |
|
3918
|
+
decision_thresholds: int | list[float] = 25,
|
3919
3919
|
secondary_decision_thresholds: int | None = 19,
|
3920
3920
|
subsample_size: int | None = 1000000,
|
3921
3921
|
verbose: bool = True,
|
@@ -3942,7 +3942,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
3942
3942
|
model : str, default = 'best'
|
3943
3943
|
The model to use prediction probabilities of when calibrating the threshold.
|
3944
3944
|
If 'best', will use `predictor.model_best`.
|
3945
|
-
decision_thresholds : int |
|
3945
|
+
decision_thresholds : int | list[float], default = 25
|
3946
3946
|
The number of decision thresholds on either side of `0.5` to search.
|
3947
3947
|
The default of 25 will result in 51 searched thresholds: [0.00, 0.02, 0.04, ..., 0.48, 0.50, 0.52, ..., 0.96, 0.98, 1.00]
|
3948
3948
|
Alternatively, a list of decision thresholds can be passed and only the thresholds in the list will be searched.
|
@@ -4338,9 +4338,9 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
4338
4338
|
stack_name: str = None,
|
4339
4339
|
level: int = None,
|
4340
4340
|
can_infer: bool = None,
|
4341
|
-
models:
|
4341
|
+
models: list[str] = None,
|
4342
4342
|
persisted: bool = None,
|
4343
|
-
) ->
|
4343
|
+
) -> list[str]:
|
4344
4344
|
"""
|
4345
4345
|
Returns the list of model names trained in this `predictor` object.
|
4346
4346
|
|
@@ -4352,7 +4352,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
4352
4352
|
If specified, returns only models at the given stack level.
|
4353
4353
|
can_infer: bool, default = None
|
4354
4354
|
If specified, returns only models that can/cannot infer on new data.
|
4355
|
-
models:
|
4355
|
+
models: list[str], default = None
|
4356
4356
|
The list of model names to consider.
|
4357
4357
|
If None, considers all models.
|
4358
4358
|
persisted: bool, default = None
|
@@ -4874,7 +4874,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
4874
4874
|
return predictor
|
4875
4875
|
|
4876
4876
|
@classmethod
|
4877
|
-
def load_log(cls, predictor_path: str = None, log_file_path: Optional[str] = None) ->
|
4877
|
+
def load_log(cls, predictor_path: str = None, log_file_path: Optional[str] = None) -> list[str]:
|
4878
4878
|
"""
|
4879
4879
|
Load log files of a predictor
|
4880
4880
|
|
@@ -4890,7 +4890,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
4890
4890
|
|
4891
4891
|
Returns
|
4892
4892
|
-------
|
4893
|
-
|
4893
|
+
list[str]
|
4894
4894
|
A list containing lines of the log file
|
4895
4895
|
"""
|
4896
4896
|
file_path = log_file_path
|
@@ -5049,7 +5049,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5049
5049
|
)
|
5050
5050
|
|
5051
5051
|
@staticmethod
|
5052
|
-
def _sanitize_dynamic_stacking_kwargs(kwargs: dict) ->
|
5052
|
+
def _sanitize_dynamic_stacking_kwargs(kwargs: dict) -> tuple[dict, list[str]]:
|
5053
5053
|
ds_kwargs_key = "ds_args"
|
5054
5054
|
ds_args = dict(
|
5055
5055
|
validation_procedure="holdout",
|
@@ -5069,9 +5069,9 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5069
5069
|
kwargs[ds_kwargs_key] = copy.deepcopy(kwargs[ds_kwargs_key])
|
5070
5070
|
ds_args.update(kwargs[ds_kwargs_key])
|
5071
5071
|
|
5072
|
-
|
5073
|
-
if
|
5074
|
-
raise ValueError(f"Got invalid keys for `ds_args`. Allowed: {allowed_kes}. Got: {
|
5072
|
+
key_mismatch = set(ds_args.keys()) - allowed_kes
|
5073
|
+
if key_mismatch:
|
5074
|
+
raise ValueError(f"Got invalid keys for `ds_args`. Allowed: {allowed_kes}. Got: {key_mismatch}")
|
5075
5075
|
if ("validation_procedure" in ds_args) and (
|
5076
5076
|
(not isinstance(ds_args["validation_procedure"], str)) or (ds_args["validation_procedure"] not in ["holdout", "cv"])
|
5077
5077
|
):
|
@@ -5096,7 +5096,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5096
5096
|
kwargs[ds_kwargs_key] = ds_args
|
5097
5097
|
return kwargs, [ds_kwargs_key]
|
5098
5098
|
|
5099
|
-
def _validate_fit_extra_kwargs(self, kwargs: dict, extra_valid_keys:
|
5099
|
+
def _validate_fit_extra_kwargs(self, kwargs: dict, extra_valid_keys: list[str] | None = None):
|
5100
5100
|
fit_extra_kwargs_default = self._fit_extra_kwargs_dict()
|
5101
5101
|
|
5102
5102
|
allowed_kwarg_names = list(fit_extra_kwargs_default.keys())
|
@@ -5131,7 +5131,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5131
5131
|
|
5132
5132
|
return kwargs_sanitized
|
5133
5133
|
|
5134
|
-
def _prune_data_features(self, train_features: list, other_features: list, is_labeled: bool) ->
|
5134
|
+
def _prune_data_features(self, train_features: list, other_features: list, is_labeled: bool) -> tuple[list, list]:
|
5135
5135
|
"""
|
5136
5136
|
Removes certain columns from the provided datasets that do not contain predictive features.
|
5137
5137
|
|
@@ -5161,7 +5161,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5161
5161
|
tuning_data: str | pd.DataFrame | None = None,
|
5162
5162
|
test_data: str | pd.DataFrame | None = None,
|
5163
5163
|
unlabeled_data: str | pd.DataFrame | None = None,
|
5164
|
-
) ->
|
5164
|
+
) -> tuple[pd.DataFrame, pd.DataFrame | None, pd.DataFrame | None]:
|
5165
5165
|
if isinstance(train_data, str):
|
5166
5166
|
train_data = TabularDataset(train_data)
|
5167
5167
|
if tuning_data is not None and isinstance(tuning_data, str):
|
@@ -5305,7 +5305,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5305
5305
|
)
|
5306
5306
|
|
5307
5307
|
@staticmethod
|
5308
|
-
def _validate_infer_limit(infer_limit: float, infer_limit_batch_size: int) ->
|
5308
|
+
def _validate_infer_limit(infer_limit: float, infer_limit_batch_size: int) -> tuple[float, int]:
|
5309
5309
|
if infer_limit_batch_size is not None:
|
5310
5310
|
if not isinstance(infer_limit_batch_size, int):
|
5311
5311
|
raise ValueError(f"infer_limit_batch_size must be type int, but was instead type {type(infer_limit_batch_size)}")
|
@@ -5629,7 +5629,7 @@ class TabularPredictor(TabularPredictorDeprecatedMixin):
|
|
5629
5629
|
else:
|
5630
5630
|
_validate_hyperparameters_util(params=hyperparameters)
|
5631
5631
|
|
5632
|
-
def _sanitize_pseudo_data(self, pseudo_data: pd.DataFrame, name="pseudo_data") ->
|
5632
|
+
def _sanitize_pseudo_data(self, pseudo_data: pd.DataFrame, name="pseudo_data") -> tuple[pd.DataFrame, pd.Series, pd.Series]:
|
5633
5633
|
assert isinstance(pseudo_data, pd.DataFrame)
|
5634
5634
|
if self.label not in pseudo_data.columns:
|
5635
5635
|
raise ValueError(f"'{name}' does not contain the labeled column.")
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import logging
|
2
|
-
from typing import Dict, List
|
3
2
|
|
4
3
|
from autogluon.core.models import AbstractModel
|
5
|
-
from autogluon.core.trainer.abstract_trainer import AbstractTrainer
|
6
4
|
from autogluon.core.utils import generate_train_test_split
|
5
|
+
from autogluon.core.trainer.abstract_trainer import AbstractTabularTrainer
|
7
6
|
|
8
7
|
from ..models.lgb.lgb_model import LGBModel
|
9
8
|
from .model_presets.presets import MODEL_TYPES, get_preset_models
|
@@ -13,7 +12,7 @@ logger = logging.getLogger(__name__)
|
|
13
12
|
|
14
13
|
|
15
14
|
# This Trainer handles model training details
|
16
|
-
class AutoTrainer(
|
15
|
+
class AutoTrainer(AbstractTabularTrainer):
|
17
16
|
def construct_model_templates(self, hyperparameters, **kwargs):
|
18
17
|
path = kwargs.pop("path", self.path)
|
19
18
|
problem_type = kwargs.pop("problem_type", self.problem_type)
|
@@ -58,7 +57,7 @@ class AutoTrainer(AbstractTrainer):
|
|
58
57
|
infer_limit_batch_size=None,
|
59
58
|
use_bag_holdout=False,
|
60
59
|
groups=None,
|
61
|
-
callbacks:
|
60
|
+
callbacks: list[callable] = None,
|
62
61
|
**kwargs,
|
63
62
|
):
|
64
63
|
for key in kwargs:
|
@@ -173,7 +172,7 @@ class AutoTrainer(AbstractTrainer):
|
|
173
172
|
def _get_default_proxy_model_class(self):
|
174
173
|
return LGBModel
|
175
174
|
|
176
|
-
def compile(self, model_names="all", with_ancestors=False, compiler_configs: dict = None) ->
|
175
|
+
def compile(self, model_names="all", with_ancestors=False, compiler_configs: dict = None) -> list[str]:
|
177
176
|
"""Ensures that compiler_configs maps to the correct models if the user specified the same keys as in hyperparameters such as RT, XT, etc."""
|
178
177
|
if compiler_configs is not None:
|
179
178
|
model_types_map = self._get_model_types_map()
|
@@ -186,5 +185,5 @@ class AutoTrainer(AbstractTrainer):
|
|
186
185
|
compiler_configs = compiler_configs_new
|
187
186
|
return super().compile(model_names=model_names, with_ancestors=with_ancestors, compiler_configs=compiler_configs)
|
188
187
|
|
189
|
-
def _get_model_types_map(self) ->
|
188
|
+
def _get_model_types_map(self) -> dict[str, AbstractModel]:
|
190
189
|
return MODEL_TYPES
|
autogluon/tabular/version.py
CHANGED
{autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: autogluon.tabular
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.1b20250131
|
4
4
|
Summary: Fast and Accurate ML in 3 Lines of Code
|
5
5
|
Home-page: https://github.com/autogluon/autogluon
|
6
6
|
Author: AutoGluon Community
|
@@ -34,23 +34,25 @@ Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
34
34
|
Classifier: Topic :: Scientific/Engineering :: Image Recognition
|
35
35
|
Requires-Python: >=3.9, <3.13
|
36
36
|
Description-Content-Type: text/markdown
|
37
|
+
License-File: ../LICENSE
|
38
|
+
License-File: ../NOTICE
|
37
39
|
Requires-Dist: numpy<2.1.4,>=1.25.0
|
38
40
|
Requires-Dist: scipy<1.16,>=1.5.4
|
39
41
|
Requires-Dist: pandas<2.3.0,>=2.0.0
|
40
42
|
Requires-Dist: scikit-learn<1.5.3,>=1.4.0
|
41
43
|
Requires-Dist: networkx<4,>=3.0
|
42
|
-
Requires-Dist: autogluon.core==1.2.
|
43
|
-
Requires-Dist: autogluon.features==1.2.
|
44
|
+
Requires-Dist: autogluon.core==1.2.1b20250131
|
45
|
+
Requires-Dist: autogluon.features==1.2.1b20250131
|
44
46
|
Provides-Extra: all
|
45
|
-
Requires-Dist:
|
47
|
+
Requires-Dist: fastai<2.8,>=2.3.1; extra == "all"
|
48
|
+
Requires-Dist: autogluon.core[all]==1.2.1b20250131; extra == "all"
|
46
49
|
Requires-Dist: xgboost<2.2,>=1.6; extra == "all"
|
50
|
+
Requires-Dist: huggingface-hub[torch]; extra == "all"
|
47
51
|
Requires-Dist: einops<0.9,>=0.7; extra == "all"
|
48
|
-
Requires-Dist: autogluon.core[all]==1.2.1b20250116; extra == "all"
|
49
52
|
Requires-Dist: catboost<1.3,>=1.2; extra == "all"
|
50
|
-
Requires-Dist: torch<2.6,>=2.2; extra == "all"
|
51
53
|
Requires-Dist: spacy<3.8; extra == "all"
|
52
|
-
Requires-Dist:
|
53
|
-
Requires-Dist:
|
54
|
+
Requires-Dist: torch<2.6,>=2.2; extra == "all"
|
55
|
+
Requires-Dist: numpy<2.0.0,>=1.25; extra == "all"
|
54
56
|
Requires-Dist: lightgbm<4.6,>=4.0; extra == "all"
|
55
57
|
Provides-Extra: catboost
|
56
58
|
Requires-Dist: numpy<2.0.0,>=1.25; extra == "catboost"
|
@@ -64,7 +66,7 @@ Requires-Dist: imodels<1.4.0,>=1.3.10; extra == "imodels"
|
|
64
66
|
Provides-Extra: lightgbm
|
65
67
|
Requires-Dist: lightgbm<4.6,>=4.0; extra == "lightgbm"
|
66
68
|
Provides-Extra: ray
|
67
|
-
Requires-Dist: autogluon.core[all]==1.2.
|
69
|
+
Requires-Dist: autogluon.core[all]==1.2.1b20250131; extra == "ray"
|
68
70
|
Provides-Extra: skex
|
69
71
|
Requires-Dist: scikit-learn-intelex<2025.1,>=2024.0; extra == "skex"
|
70
72
|
Provides-Extra: skl2onnx
|
{autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/RECORD
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
autogluon.tabular-1.2.
|
1
|
+
autogluon.tabular-1.2.1b20250131-py3.9-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
|
2
2
|
autogluon/tabular/__init__.py,sha256=2OXpJCvENRHubBTYNIPpHX93WWuFZzsJBtTZbNVHVas,400
|
3
|
-
autogluon/tabular/version.py,sha256=
|
3
|
+
autogluon/tabular/version.py,sha256=wqx0i_RehLn7nxNWa2-z7x_xpGLXS-exGFPa9ZlglO0,91
|
4
4
|
autogluon/tabular/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
autogluon/tabular/configs/config_helper.py,sha256=Pb2aW9Z9w77pYKPRVZ3nBzHY3KJaiEJSJ747zZcJIVk,21132
|
6
6
|
autogluon/tabular/configs/feature_generator_presets.py,sha256=EV5Ym8VW15q92MwOUpTi7wZFS2QooM51fLg3RdUsn-M,1223
|
@@ -10,20 +10,20 @@ autogluon/tabular/configs/zeroshot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
10
10
|
autogluon/tabular/configs/zeroshot/zeroshot_portfolio_2023.py,sha256=oKO_2nEpI_EiLaUGmNN-3kPBIp5ATndbCOaVZ1m0048,29911
|
11
11
|
autogluon/tabular/experimental/__init__.py,sha256=PpkdMSv_pPZted1XRIuzcFWKjM-66VMUukTnCcoiW0s,100
|
12
12
|
autogluon/tabular/experimental/_scikit_mixin.py,sha256=cKeCmtURAXZnhQGrkCBw5rmACCQF7biAWTT3qX8bM2Q,2281
|
13
|
-
autogluon/tabular/experimental/_tabular_classifier.py,sha256=
|
14
|
-
autogluon/tabular/experimental/_tabular_regressor.py,sha256=
|
13
|
+
autogluon/tabular/experimental/_tabular_classifier.py,sha256=7lGoFdvkHiZS3VpcXo97q4ENV9qyIVDExlWkm0wzL3s,2527
|
14
|
+
autogluon/tabular/experimental/_tabular_regressor.py,sha256=EzEDL-19T5QUVNmLkSHNzzGwYrUxyqlNpIDPMgtV6Gg,1932
|
15
15
|
autogluon/tabular/learner/__init__.py,sha256=Hhmk5WpKQHohVmI-veOaKMelKJpIdzeXrmw_DPn3DTU,63
|
16
16
|
autogluon/tabular/learner/abstract_learner.py,sha256=3myDh867x-EWTPR-O-iw82WGgd5n1NKWf3kaTcYQeh0,54955
|
17
17
|
autogluon/tabular/learner/default_learner.py,sha256=cg3K0oA-4ccXWtmGgy6qUJaLldieFwDvnMP_PyE9gdk,24579
|
18
18
|
autogluon/tabular/models/__init__.py,sha256=tDVqwVG9q2ctLWRouyXeYs5NiSBnOnwh3anAfZyM3jg,1099
|
19
19
|
autogluon/tabular/models/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
autogluon/tabular/models/_utils/rapids_utils.py,sha256=
|
20
|
+
autogluon/tabular/models/_utils/rapids_utils.py,sha256=gbej9Hjn4alCWZuGN9sOLXMMAyWbgHPThTsp2feS39o,1038
|
21
21
|
autogluon/tabular/models/_utils/torch_utils.py,sha256=dxs_KMMAOmNkRNjYf_hrzqaHIfkqn1xoKRKqCFbQ1Rk,537
|
22
22
|
autogluon/tabular/models/automm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
autogluon/tabular/models/automm/automm_model.py,sha256=z16uBs9SAGxuCDbROhTNOTzc4KhCd-ejX31Mt_FHNHY,11159
|
24
24
|
autogluon/tabular/models/automm/ft_transformer.py,sha256=OxD5K8xZFxt8PutcGmjaZsAO2QoPpdDG0YoaxnTqrV0,3840
|
25
25
|
autogluon/tabular/models/catboost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
autogluon/tabular/models/catboost/callbacks.py,sha256=
|
26
|
+
autogluon/tabular/models/catboost/callbacks.py,sha256=l8x17n_w7oEFs-iDECSdBKZ89yW5g1z-zvj4XLgQPkw,7098
|
27
27
|
autogluon/tabular/models/catboost/catboost_model.py,sha256=mURn4GGGXgKovsctXLw3ZPva9xVS_grIm2Lcrj0CdSk,17043
|
28
28
|
autogluon/tabular/models/catboost/catboost_softclass_utils.py,sha256=UiW0SUb3hFueW5qYtQn6Sbk7Wg7BWN4jqKWeFtbMvgU,3919
|
29
29
|
autogluon/tabular/models/catboost/catboost_utils.py,sha256=YSc94V4DjrwbmkeUM8306zV7z21oq-K-qGCOj0UE_wg,3167
|
@@ -35,7 +35,7 @@ autogluon/tabular/models/fastainn/callbacks.py,sha256=3WvOEwqd1YAVInooKsFOTzAkCL
|
|
35
35
|
autogluon/tabular/models/fastainn/fastai_helpers.py,sha256=gGYzyrAFl8hi8GnsemZNLGZn5xr7cyJXdFl08PIlza4,1393
|
36
36
|
autogluon/tabular/models/fastainn/imports_helper.py,sha256=ICxA8ty47-oZu0Q9AjKCQe8uVi340Iu0NFruxvJPrbA,330
|
37
37
|
autogluon/tabular/models/fastainn/quantile_helpers.py,sha256=d89GKvSRBgOy9EqcDI83MK5sqPRxP6JJ3BmPLmKnB0o,1808
|
38
|
-
autogluon/tabular/models/fastainn/tabular_nn_fastai.py,sha256=
|
38
|
+
autogluon/tabular/models/fastainn/tabular_nn_fastai.py,sha256=ZGHpa6FY-3NxDUVQk5fTBeiIt735xEGUbuPgELxij_8,28957
|
39
39
|
autogluon/tabular/models/fastainn/hyperparameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
40
|
autogluon/tabular/models/fastainn/hyperparameters/parameters.py,sha256=DkQwAZZ7CuODKoljr-yrkx-uFxBSPRxkKuvPdwO-UhQ,2069
|
41
41
|
autogluon/tabular/models/fastainn/hyperparameters/searchspaces.py,sha256=5qdknZDrHtdPdrhSqjamYQrCxvupXvlN3bVGEPgs48E,1660
|
@@ -55,7 +55,7 @@ autogluon/tabular/models/knn/knn_utils.py,sha256=XU1cxVXp1BAoQnja2_KmSIn9_q9gZkj
|
|
55
55
|
autogluon/tabular/models/lgb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
56
|
autogluon/tabular/models/lgb/callbacks.py,sha256=0X42-nAbftKnu_zmFPDf8S3RrUJJjsJ1Qs_TPAJxzjU,11367
|
57
57
|
autogluon/tabular/models/lgb/lgb_model.py,sha256=udmA6A-2RhVLRcaJXbjZCWrOhansButwRPRO7u0-BnM,24715
|
58
|
-
autogluon/tabular/models/lgb/lgb_utils.py,sha256=
|
58
|
+
autogluon/tabular/models/lgb/lgb_utils.py,sha256=jzTDTzP-z7gcBGZyy1_0YkyTOLbU5DLeRqtil4FCZPI,7382
|
59
59
|
autogluon/tabular/models/lgb/hyperparameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
60
|
autogluon/tabular/models/lgb/hyperparameters/parameters.py,sha256=LLEQ-Ns3HElWBsFJx3ogRV7L6qw_nXlcl7EyO0C0fVQ,1336
|
61
61
|
autogluon/tabular/models/lgb/hyperparameters/searchspaces.py,sha256=tvNNR7niWz_B-PndYQXb6vVNABxSfBYRHj6ZVQJ1x2E,1930
|
@@ -74,11 +74,11 @@ autogluon/tabular/models/rf/compilers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
74
74
|
autogluon/tabular/models/rf/compilers/native.py,sha256=HhaqQRkVuf9UEEJPsHcdYCmuWBMYtyqRwwB_N2qxG2M,1313
|
75
75
|
autogluon/tabular/models/rf/compilers/onnx.py,sha256=pvaZWdl2JJaE2pFU0mFugzhnybePqe0x1-5oLOvogA0,4318
|
76
76
|
autogluon/tabular/models/tab_transformer/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
77
|
-
autogluon/tabular/models/tab_transformer/modified_transformer.py,sha256=
|
78
|
-
autogluon/tabular/models/tab_transformer/pretexts.py,sha256=
|
77
|
+
autogluon/tabular/models/tab_transformer/modified_transformer.py,sha256=3UNhZqKChkWCPtSP4YP23JhtggLqa4mLlP__jvxfBko,22894
|
78
|
+
autogluon/tabular/models/tab_transformer/pretexts.py,sha256=UEoDq_8hLKbY7EbE5IyL_gUXpuQ607XTtS-jKqf8j8U,6564
|
79
79
|
autogluon/tabular/models/tab_transformer/tab_model_base.py,sha256=4rmY1IrwoFuJejy-9gOoYSz-ar3DvZY8uXyDUBKk7Iw,3615
|
80
80
|
autogluon/tabular/models/tab_transformer/tab_transformer.py,sha256=1c1oTJfSsGxQjzZJVN8doqFmYV-Wwwbqcu7RcW77kJk,6991
|
81
|
-
autogluon/tabular/models/tab_transformer/tab_transformer_encoder.py,sha256=
|
81
|
+
autogluon/tabular/models/tab_transformer/tab_transformer_encoder.py,sha256=v2G1S_MSESzKqtvSfxS5uEse2CWtOn_K2E-uIwuE6zI,24701
|
82
82
|
autogluon/tabular/models/tab_transformer/tab_transformer_model.py,sha256=pwqoig6SL3PutYhsB1o3mFyvBubXm91ynPGujp3Ab3g,22702
|
83
83
|
autogluon/tabular/models/tab_transformer/utils.py,sha256=rrNk0X6Y0vzt7ivylRmTf0zjDx1DIF-5_ibf6B9Taz8,4554
|
84
84
|
autogluon/tabular/models/tab_transformer/hyperparameters/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
@@ -121,7 +121,7 @@ autogluon/tabular/models/tabular_nn/hyperparameters/parameters.py,sha256=Z3t_U1f
|
|
121
121
|
autogluon/tabular/models/tabular_nn/hyperparameters/searchspaces.py,sha256=pT9cJ3MaWPnaQwAf47Yz6f0-L9qDBknahERbggAp52U,2810
|
122
122
|
autogluon/tabular/models/tabular_nn/torch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
123
123
|
autogluon/tabular/models/tabular_nn/torch/tabular_nn_torch.py,sha256=1ZJHM52wMZHSbXty19ykKA5tNql6ISO7nuFmAAuR-uU,42324
|
124
|
-
autogluon/tabular/models/tabular_nn/torch/tabular_torch_dataset.py,sha256=
|
124
|
+
autogluon/tabular/models/tabular_nn/torch/tabular_torch_dataset.py,sha256=RdnQGZSrvY1iuJB4JTANniH3Dorw-DP0Em_JK3_h7RM,13497
|
125
125
|
autogluon/tabular/models/tabular_nn/torch/torch_network_modules.py,sha256=Qc3PwXTD8A7PgXi6EGuaBCrN3jsFAXDLCW7i6tE5wYI,11338
|
126
126
|
autogluon/tabular/models/tabular_nn/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
127
127
|
autogluon/tabular/models/tabular_nn/utils/categorical_encoders.py,sha256=uLQaHkudg8AS2jFwNv4FyQ9KzO_F-dj6hIJe8R2t4aw,34213
|
@@ -142,21 +142,21 @@ autogluon/tabular/models/xgboost/hyperparameters/searchspaces.py,sha256=lFwI34pc
|
|
142
142
|
autogluon/tabular/models/xt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
143
143
|
autogluon/tabular/models/xt/xt_model.py,sha256=gimCfMeTmhAJTy4ekCI_dbK1FluJ7EQMoHt0pGMvVgs,759
|
144
144
|
autogluon/tabular/predictor/__init__.py,sha256=zCMgjxQlWpDWnr1l1xjBCiK3rWC3N3RoD8UXBnazT74,107
|
145
|
-
autogluon/tabular/predictor/_deprecated_methods.py,sha256=
|
145
|
+
autogluon/tabular/predictor/_deprecated_methods.py,sha256=cBZjVYxY7blOj2eH1y9JsdW0n-AZtnsK4B6dzUqrTAw,3476
|
146
146
|
autogluon/tabular/predictor/interpretable_predictor.py,sha256=5UeKgnMFsfY65tiO3kxfHBPr03lyswLrgdtjPhI0Y7Q,6934
|
147
|
-
autogluon/tabular/predictor/predictor.py,sha256
|
147
|
+
autogluon/tabular/predictor/predictor.py,sha256=uFyhlsJ2T8kzeVUOVAfRsR_DoyumEVgBYNp44hGHuPI,352421
|
148
148
|
autogluon/tabular/trainer/__init__.py,sha256=PW_PGL-tWoQzx3ES2S53bQEZOtsRWTYiM9QdOqsk0dI,38
|
149
|
-
autogluon/tabular/trainer/auto_trainer.py,sha256=
|
149
|
+
autogluon/tabular/trainer/auto_trainer.py,sha256=3cRi079OoFbXYJfnU2evE2502E-Zz-jXuAKwwOHo3w4,8702
|
150
150
|
autogluon/tabular/trainer/model_presets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
151
|
autogluon/tabular/trainer/model_presets/presets.py,sha256=1E-Z1FxUpyydaoEdxcTCg7bvSwVEuwImhH2-VlcRdaQ,19217
|
152
152
|
autogluon/tabular/trainer/model_presets/presets_distill.py,sha256=MnFC2GJc6RmDBNAGbsO2XMfo3PjR8cUrZoilWW8gTYQ,3295
|
153
153
|
autogluon/tabular/tuning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
154
154
|
autogluon/tabular/tuning/feature_pruner.py,sha256=9iNku8gVbYEkjuKlyITPJDicsNkoraaQOlINQq9iZlQ,6877
|
155
|
-
autogluon.tabular-1.2.
|
156
|
-
autogluon.tabular-1.2.
|
157
|
-
autogluon.tabular-1.2.
|
158
|
-
autogluon.tabular-1.2.
|
159
|
-
autogluon.tabular-1.2.
|
160
|
-
autogluon.tabular-1.2.
|
161
|
-
autogluon.tabular-1.2.
|
162
|
-
autogluon.tabular-1.2.
|
155
|
+
autogluon.tabular-1.2.1b20250131.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
|
156
|
+
autogluon.tabular-1.2.1b20250131.dist-info/METADATA,sha256=2xxFkbQ5jF2Z0xdKjCCfeD2NgnowVdHR0hr275esZY8,14364
|
157
|
+
autogluon.tabular-1.2.1b20250131.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
|
158
|
+
autogluon.tabular-1.2.1b20250131.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
159
|
+
autogluon.tabular-1.2.1b20250131.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
|
160
|
+
autogluon.tabular-1.2.1b20250131.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
|
161
|
+
autogluon.tabular-1.2.1b20250131.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
162
|
+
autogluon.tabular-1.2.1b20250131.dist-info/RECORD,,
|
File without changes
|
{autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/LICENSE
RENAMED
File without changes
|
{autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/NOTICE
RENAMED
File without changes
|
{autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
{autogluon.tabular-1.2.1b20250116.dist-info → autogluon.tabular-1.2.1b20250131.dist-info}/zip-safe
RENAMED
File without changes
|