autogluon.features

特征生成器

AbstractFeatureGenerator

所有 AutoGluon 特征生成器继承的抽象特征生成器实现。

AutoMLPipelineFeatureGenerator

具有简化参数的管道特征生成器,足以处理大多数表格数据,包括文本和日期。

PipelineFeatureGenerator

PipelineFeatureGenerator 是 BulkFeatureGenerator 的一种实现,具有各种智能默认设置和边缘情况处理功能,可实现稳健的数据处理。建议用户以 PipelineFeatureGenerator 为基础创建用于端到端数据转换的任何自定义特征生成器。参考 AutoMLPipelineFeatureGenerator 了解扩展 PipelineFeatureGenerator 的示例。不建议将 PipelineFeatureGenerator 用作任何其他生成器的前置或后置生成器中的生成器。

BulkFeatureGenerator

BulkFeatureGenerator 用于复杂的特征生成管道,其中需要多个生成器,并且某些生成器需要其他生成器的输出作为输入(多阶段生成)。

AsTypeFeatureGenerator

强制对数据进行类型转换,以匹配拟合期间看到的类型。

BinnedFeatureGenerator

BinnedFeatureGenerator 将输入的整型和浮点型特征分箱到 num_bins 个唯一的整型值,同时保持相对排名顺序。

CategoryFeatureGenerator

CategoryFeatureGenerator 用于将对象类型转换为类别类型,以及删除稀有类别并优化内存使用。

DatetimeFeatureGenerator

将日期时间特征转换为数值特征。

DropDuplicatesFeatureGenerator

删除与其他特征完全重复的特征,只保留数据的一个实例。

DropUniqueFeatureGenerator

删除只有 1 个唯一值或几乎没有重复值(基于 max_unique_ratio)且类型为类别或对象的特征。

DummyFeatureGenerator

忽略所有输入特征并返回一个所有值都为 0 的单个整型特征。

FillNaFeatureGenerator

填充数据中的缺失值。

IdentityFeatureGenerator

IdentityFeatureGenerator 只是将数据原封不动地传递下去。

LabelEncoderFeatureGenerator

通过映射到类别代码将类别特征转换为整型特征。

CategoryMemoryMinimizeFeatureGenerator

通过将类别值转换为单调递增的整型值来最小化类别特征的内存使用。

NumericMemoryMinimizeFeatureGenerator

裁剪并转换整型特征的数据类型以最小化内存使用。

RenameFeatureGenerator

RenameFeatureGenerator 在不改变其值的情况下重命名列。

TextNgramFeatureGenerator

从文本特征生成 ngram 特征。

TextSpecialFeatureGenerator

TextSpecialFeatureGenerator 从输入的原始文本特征生成文本特有的特征。

AbstractFeatureGenerator

class autogluon.features.generators.AbstractFeatureGenerator(features_in: list = None, feature_metadata_in: FeatureMetadata = None, post_generators: list = None, pre_enforce_types=False, pre_drop_useless=False, post_drop_duplicates=False, reset_index=False, column_names_as_str=True, name_prefix: str = None, name_suffix: str = None, infer_features_in_args: dict = None, infer_features_in_args_strategy='overwrite', banned_feature_special_types: List[str] = None, log_prefix='', verbosity=2)[source]

所有 AutoGluon 特征生成器继承的抽象特征生成器实现。特征生成器的目的是以有状态的方式将数据从一种形式转换为另一种形式。首先,使用各种参数初始化生成器,这些参数决定了特征的生成方式。然后,使用通常为 pandas DataFrame 格式的训练数据,通过 .fit().fit_transform() 方法对生成器进行拟合。最后,生成器可以通过 .transform() 方法转换与训练数据初始格式相同的新数据。

参数:
  • features_in (list, 默认为 None) – 生成器在拟合和转换方法中将预期和使用的特征名称列表。输入 DataFrame 中任何不在 features_in 中的特征都将被丢弃,并且不会影响转换逻辑。如果为 None,则在拟合期间从 _infer_features_in 方法推断。拟合后等同于 feature_metadata_in.get_features()。

  • feature_metadata_in (autogluon.common.features.feature_metadata.FeatureMetadata, 默认为 None) – 与训练数据输入特征对应的 FeatureMetadata 对象。如果为 None,则在拟合期间从 _infer_feature_metadata_in 方法推断。features_in 中不存在的任何特征(如果提供)将从 feature_metadata_in 中移除。

  • post_generators (FeatureGenerators 列表, 默认为 None) – 在此对象的转换逻辑之后按顺序进行拟合和转换的特征生成器,将其输出馈送到下一个生成器的输入。最终特征生成器的输出将用作转换后的输出。

  • pre_enforce_types (bool, 默认为 False) – 如果为 True,则训练数据的确切原始类型(int64、float32 等)将强制应用于未来数据,要么将类型转换为训练类型,要么在无法转换时引发异常。在特征生成管道的外部特征生成器上将其设置为 True 非常重要,以确保不会将不正确的 dtype 传递到下游,但在管道内部的内部特征生成器上使用时通常是多余的。

  • pre_drop_useless (bool, 默认为 False) – 如果为 True,features_in 将在拟合时裁剪掉所有行中只包含一个唯一值的特征。

  • post_drop_duplicates (bool, 默认为 False) – 如果为 True,DropDuplicatesFeatureGenerator 将被附加到 post_generators。此特征生成器将丢弃数据中找到的任何重复特征,在任何重复特征集中只保留一个特征。警告:对于具有许多特征的大型数据集,这可能会非常耗费计算资源,甚至计算上不可行。

  • reset_index (bool, 默认为 False) – 如果为 True,则在拟合和转换期间,对于包含 N 行的数据集,输入数据的索引将被重置为从 0 到 N-1 单调递增。在拟合和转换结束时,原始索引将重新应用到输出数据。在特征生成管道的外部特征生成器上将其设置为 True 非常重要,以确保如果任何内部特征生成器未正确处理非默认索引,则非默认索引不会导致内部特征生成损坏。如果在拟合期间提供了 y 标签数据,此索引重置也适用于 y 标签数据。

  • column_names_as_str (bool, 默认为 True) – 如果为 True,输入数据的列名(如果不是字符串)将被转换为字符串。这解决了下游 FeatureGenerators 和模型无法处理整数列名的任何问题,并允许列名前缀和后缀操作以避免错误。请注意,出于性能考虑,列名仅在转换时(如果拟合时不是字符串)才进行转换。确保输入的列名一致以避免错误。

  • name_prefix (str, 默认为 None) – 添加到所有输出特征名称的前缀。

  • name_suffix (str, 默认为 None) – 添加到所有输出特征名称的后缀。

  • infer_features_in_args (dict, 默认为 None) – 在推断 self.features_in 时用作 FeatureMetadata.get_features(**kwargs) 的 kwargs 输入。这与 self.get_default_infer_features_in_args() 的输出字典合并,具体取决于 infer_features_in_args_strategy 的值。仅当 features_in 为 None 时使用。如果为 None,则直接使用 self.get_default_infer_features_in_args()。有关有效键的完整说明,请参阅 FeatureMetadata.get_features 文档。注意:这是大多数情况下不需要的高级功能。

  • infer_features_in_args_strategy (str, 默认为 'overwrite') – 决定如何组合 infer_features_in_args 和 self.get_default_infer_features_in_args() 以产生 self._infer_features_in_args,从而确定 features_in 推断逻辑。如果为 'overwrite':仅使用 infer_features_in_args 并忽略 self.get_default_infer_features_in_args()。如果为 'update':self.get_default_infer_features_in_args() 通过 infer_features_in_args 进行字典更新。如果 infer_features_in_args 为 None,则忽略此参数。

  • banned_feature_special_types (List[str], 默认为 None) – 额外从输入中排除的特征特殊类型列表。将更新 self.get_default_infer_features_in_args()。

  • log_prefix (str, 默认为 '') – 添加到生成器所有日志语句的前缀字符串。

  • verbosity (int, 默认为 2) – 控制日志记录的详细程度。0 将静默日志,1 只记录警告,2 记录信息级别的信息,3 记录信息级别的信息并提供详细的特征类型输入和输出信息。日志记录仍由全局日志记录配置控制,因此详细程度为 3 并不能保证会输出日志。

features_in

生成器在拟合和转换方法中预期和使用的特征名称列表。拟合后等同于 feature_metadata_in.get_features()。

类型:

str 列表

features_out

fit_transform 和 transform 方法输出中存在的特征名称列表。拟合后等同于 feature_metadata.get_features()。

类型:

str 列表

feature_metadata_in

转换前数据(用作 fit 和 transform 方法输入的数据)的 FeatureMetadata。

类型:

FeatureMetadata

feature_metadata

转换后数据(fit_transform 和 transform 方法输出的数据)的 FeatureMetadata。

类型:

FeatureMetadata

feature_metadata_real

转换后数据的 FeatureMetadata,包含确切的 dtype,而不是 feature_metadata_in 中找到的分组原始 dtype,其中分组原始 dtype 替代了特殊 dtype。这仅用于 print_feature_metadata_info 方法,旨在用于自省。拟合后可以安全地设置为 None,以减少内存和磁盘使用。

类型:

FeatureMetadata

方法

fit(X: DataFrame, **kwargs)[source]

使用提供的数据拟合生成器。由于生成器跟踪输出特征和类型的方式,通常需要在拟合期间对数据进行转换,因此拟合函数除了简单调用 fit_transform 之外很少有用。

参数:
  • X (DataFrame) – 用于拟合生成器的输入数据。

  • **kwargs – 特定生成器实现可能使用的任何附加参数。有关常见 kwargs 值,请参见 fit_transform 方法。

fit_transform(X: DataFrame, y: Series = None, feature_metadata_in: FeatureMetadata = None, **kwargs) DataFrame[source]

将生成器拟合到提供的数据,并返回数据的转换版本,就像使用相同数据顺序调用 fit 和 transform 一样。这通常比单独调用 fit 和 transform 更高效,如果拟合过程需要转换数据,速度可提高一倍。生成器拟合后不能调用此方法,否则将导致 AssertionError。

参数:
  • X (DataFrame) – 用于拟合生成器的输入数据。

  • y (Series, 可选) – 用于拟合生成器的输入数据标签。大多数生成器不使用标签。y.index 必须等于 X.index,以避免错位。

  • feature_metadata_in (FeatureMetadata, 可选) – 与生成器初始化期间提供 feature_metadata_in 相同。如果已指定 self.feature_metadata_in,则忽略。如果两者都未设置,则将从 _infer_feature_metadata_in 方法推断 feature_metadata_in。

  • **kwargs – 特定生成器实现可能使用的任何附加参数。传递给 _fit_transform 和 _fit_generators 方法。

返回:

X_out

返回类型:

输入数据 X 的转换版本的 DataFrame 对象。

返回特征链接,包括所有前置和后置生成器。

获取此生成器与其所有后置生成器之间的特征依赖链。

get_tags() dict[source]

获取此生成器的标签。

is_valid_metadata_in(feature_metadata_in: FeatureMetadata)[source]
如果具有 feature_metadata_in 特征元数据的输入数据可能导致非空输出,则为 True。

这取决于 feature_metadata_in.get_features(**self._infer_features_in_args) 是否非空。

如果 feature_metadata_in 中表示的特征不包含生成器的任何可用类型,则为 False。

例如,如果只将数值特征作为输入传递给需要文本输入特征的 TextSpecialFeatureGenerator,则将返回 False。但是,如果传递数值特征和文本特征,则将返回 True,因为文本特征将是有效输入(数值特征将被简单地丢弃)。

print_feature_metadata_info(log_level: int =20)[source]

输出已拟合特征生成器的详细日志,包括输入和输出 FeatureMetadata 对象的特征类型。

参数:

log_level (int, 默认为 20) – 日志语句的日志级别。

print_generator_info(log_level: int =20)[source]

输出生成器的详细日志,例如拟合运行时长。

参数:

log_level (int, 默认为 20) – 日志语句的日志级别。

transform(X: DataFrame) DataFrame[source]

将输入数据转换为输出数据格式。如果在生成器使用 fit 或 fit_transform 方法拟合之前调用,将引发 AssertionError。

参数:

X (DataFrame) – 由生成器转换的输入数据。输入数据必须包含 features_in 中的所有特征,并且应具有与提供给 fit 的数据相同的 dtype。X 中存在但不在 features_in 中的额外列将被忽略,并且不会影响输出。

返回:

X_out

返回类型:

输入数据 X 的转换版本的 DataFrame 对象。

AutoMLPipelineFeatureGenerator

class autogluon.features.generators.AutoMLPipelineFeatureGenerator(enable_numeric_features=True, enable_categorical_features=True, enable_datetime_features=True, enable_text_special_features=True, enable_text_ngram_features=True, enable_raw_text_features=False, enable_vision_features=True, vectorizer=None, text_ngram_params=None, **kwargs)[source]

具有简化参数的管道特征生成器,足以处理大多数表格数据,包括文本和日期。这是 AutoGluon 在未指定时使用的默认特征生成管道。有关更多自定义选项,请参阅 PipelineFeatureGeneratorBulkFeatureGenerator

参数:
  • enable_numeric_features (bool, 默认为 True) – 是否保留 'int' 和 'float' 原始类型的特征。这些特征未经修改地传递给模型。将 IdentityFeatureGenerator(infer_features_in_args=dict(valid_raw_types=['int', 'float']))) 添加到生成器组。

  • enable_categorical_features (bool, 默认为 True) – 是否保留 'object' 和 'category' 原始类型的特征。这些特征被处理成内存优化的 'category' 特征。将 CategoryFeatureGenerator() 添加到生成器组。

  • enable_datetime_features (bool, 默认为 True) – 是否保留 'datetime' 原始类型的特征以及被识别为 'datetime_as_object' 特征的 'object' 特征。这些特征将被转换为表示自纪元以来的毫秒数的 'int' 特征。将 DatetimeFeatureGenerator() 添加到生成器组。

  • enable_text_special_features (bool, 默认为 True) – 是否使用被识别为 'text' 特征的 'object' 特征来生成 'text_special' 特征,例如单词计数、大写字母比例和符号计数。将 TextSpecialFeatureGenerator() 添加到生成器组。

  • enable_text_ngram_features (bool, 默认为 True) – 是否使用被识别为 'text' 特征的 'object' 特征来生成 'text_ngram' 特征。将 TextNgramFeatureGenerator(vectorizer=vectorizer, text_ngram_params) 添加到生成器组。有关有效参数,请参阅 text_ngram.py。

  • enable_raw_text_features (bool, 默认为 False) – 是否使用原始文本特征。生成的原始文本特征将以 '_raw_text' 后缀结尾。例如,'sentence' –> 'sentence_raw_text'

  • enable_vision_features (bool, 默认为 True) – [实验性] 是否保留被识别为 'image_path' 特殊类型的 'object' 特征。这种形式的特征应以图像文件的字符串路径作为其值。只有视觉模型才能利用这些特征,并且这些特征不会被视为类别特征。注意:'image_path' 特征不会自动推断。这些特征必须在自定义 FeatureMetadata 对象中明确指定。注意:建议使用绝对路径而不是相对路径,因为它可能更稳定。

  • vectorizer (sklearn.feature_extraction.text.CountVectorizer, 默认 CountVectorizer(min_df=30, ngram_range=(1, 3), max_features=10000, dtype=np.uint8) # noqa) – 在 TextNgramFeatureGenerator 中使用的 sklearn CountVectorizer 对象。仅在 enable_text_ngram_features=True 时使用。

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

示例

>>> from autogluon.tabular import TabularDataset
>>> from autogluon.features.generators import AutoMLPipelineFeatureGenerator
>>>
>>> feature_generator = AutoMLPipelineFeatureGenerator()
>>>
>>> label = 'class'
>>> train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
>>> X_train = train_data.drop(labels=[label], axis=1)
>>> y_train = train_data[label]
>>>
>>> X_train_transformed = feature_generator.fit_transform(X=X_train, y=y_train)
>>>
>>> test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
>>>
>>> X_test_transformed = feature_generator.transform(test_data)

PipelineFeatureGenerator

class autogluon.features.generators.PipelineFeatureGenerator(pre_generators=None, post_generators=None, pre_drop_useless=True, pre_enforce_types=True, reset_index=True, post_drop_duplicates=True, verbosity=3, **kwargs)[source]

PipelineFeatureGenerator 是 BulkFeatureGenerator 的一种实现,具有各种智能默认设置和边缘情况处理功能,可实现稳健的数据处理。建议用户以 PipelineFeatureGenerator 为基础创建用于端到端数据转换的任何自定义特征生成器。

参考 AutoMLPipelineFeatureGenerator 了解扩展 PipelineFeatureGenerator 的示例。

不建议将 PipelineFeatureGenerator 用作任何其他生成器的前置或后置生成器中的生成器。

BulkFeatureGenerator

class autogluon.features.generators.BulkFeatureGenerator(generators: List[List[AbstractFeatureGenerator]], pre_generators: List[AbstractFeatureGenerator] = None, **kwargs)[source]

BulkFeatureGenerator 用于复杂的特征生成管道,其中需要多个生成器,并且某些生成器需要其他生成器的输出作为输入(多阶段生成)。对于机器学习问题,用户通常期望使用 BulkFeatureGenerator 的实例或继承自 BulkFeatureGenerator 的特征生成器,因为单个特征生成器通常无法满足所有输入数据类型的特征生成需求。除非您是专家用户,否则我们建议您基于 PipelineFeatureGenerator 而不是 BulkFeatureGenerator 创建自定义 FeatureGenerators。

参数:
  • generators (List[List[AbstractFeatureGenerator]]) –

    generators 是生成器组的列表,其中生成器组是生成器的列表。generators[i](生成器组)中的特征生成器都在相同的数据上进行拟合,然后将其输出连接起来形成 generators[i] 的输出。generators[i+1] 接着在 generators[i] 的输出上进行拟合。最后一个生成器组的输出是 _fit_transform 和 _transform 方法的输出。由于生成器的灵活性,在初始化时,如果 pre_generators 和 post_generators 不是 None,它们将被前置和附加到 generators 中。

    如果指定了前置/后置生成器,提供的生成器将按如下方式扩展

    pre_generators = [[pre_generator] for pre_generator in pre_generators] post_generators = [[post_generator] for post_generator in self._post_generators] self.generators: List[List[AbstractFeatureGenerator]] = pre_generators + generators + post_generators self._post_generators = []

    这意味着 self._post_generators 将为空,因为 post_generators 将被合并到 self.generators 中。

    请注意,如果生成器组中的生成器产生同名特征,将引发 AssertionError,因为有效 DataFrame 输出中不能存在同名特征。

    如果需要这两个特征,请在其中一个生成器中指定 name_prefix 参数以防止名称冲突。如果尝试不同的生成器组,建议尝试在不进行任何机器学习模型训练的情况下将实验性特征生成器拟合到数据,以确保有效性并避免名称冲突。

  • pre_generators (List[AbstractFeatureGenerator], 可选) – pre_generators 是在 generators 之前按顺序拟合的生成器。功能与 post_generators 参数相同,但 pre_generators 在 generators 之前调用,而 post_generators 在 generators 之后调用。为继承 BulkFeatureGenerator 的类提供便利。常见的前置生成器包括 AsTypeFeatureGeneratorFillNaFeatureGenerator,它们用于修剪和清理数据,而不是生成全新的特征。

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

示例

>>> from autogluon.tabular import TabularDataset
>>> from autogluon.features.generators import AsTypeFeatureGenerator, BulkFeatureGenerator, CategoryFeatureGenerator, DropDuplicatesFeatureGenerator, FillNaFeatureGenerator, IdentityFeatureGenerator  # noqa
>>> from autogluon.common.features.types import R_INT, R_FLOAT
>>>
>>> generators = [
>>>     [AsTypeFeatureGenerator()],  # Convert all input features to the exact same types as they were during fit.
>>>     [FillNaFeatureGenerator()],  # Fill all NA values in the data
>>>     [
>>>         CategoryFeatureGenerator(),  # Convert object types to category types and minimize their memory usage
>>>         # Carry over all features that are not objects and categories (without this, the int features would be dropped).
>>>         IdentityFeatureGenerator(infer_features_in_args=dict(valid_raw_types=[R_INT, R_FLOAT])),
>>>     ],
>>>     # CategoryFeatureGenerator and IdentityFeatureGenerator will have their outputs concatenated together
>>>     # before being fed into DropDuplicatesFeatureGenerator
>>>     [DropDuplicatesFeatureGenerator()]  # Drops any features which are duplicates of each-other
>>> ]
>>> feature_generator = BulkFeatureGenerator(generators=generators, verbosity=3)
>>>
>>> label = 'class'
>>> train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
>>> X_train = train_data.drop(labels=[label], axis=1)
>>> y_train = train_data[label]
>>>
>>> X_train_transformed = feature_generator.fit_transform(X=X_train, y=y_train)
>>>
>>> test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
>>>
>>> X_test_transformed = feature_generator.transform(test_data)

AsTypeFeatureGenerator

class autogluon.features.generators.AsTypeFeatureGenerator(convert_bool: bool =True, convert_bool_method: str ='auto', convert_bool_method_v2_threshold: int =15, convert_bool_method_v2_row_threshold: int =128, **kwargs)[source]

强制对数据进行类型转换,以匹配拟合期间看到的类型。如果特征无法转换为正确的类型,将引发异常。

参数:
  • convert_bool (bool, 默认为 True) – 是否自动将只有两个唯一值的特征转换为布尔型。

  • convert_bool_method (str, 默认为 "auto") – [高级] 用于转换布尔特征的处理方法。建议保留为“auto”。如果为“auto”:将尝试根据数据自动选择最佳方法。如果为“v1”:将使用 v0.7 之前默认的简单方法(_convert_to_bool_simple)。如果为“v2”:将使用 v0.7 中引入的优化方法(_convert_to_bool_fast)。请注意,“v2”并非总是比“v1”快,当布尔列较少时通常更慢。所有选项产生的结果相同,极端合成边缘情况除外。

  • convert_bool_method_v2_threshold (int, 默认为 15) – [高级] 如果 convert_bool_method=”auto”,此值决定使用哪种方法。如果布尔特征数量 >= 此值,则使用“v2”。否则,使用“v1”。15 大约是平均最佳值。

  • convert_bool_method_v2_row_threshold (int, 默认为 128) – [高级] 如果使用“v2”布尔方法,这是行数阈值,当 >= 此值时,使用批处理方法代替实时方法。128 大约是平均最佳值。

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

BinnedFeatureGenerator

class autogluon.features.generators.BinnedFeatureGenerator(num_bins=10, **kwargs)[source]

BinnedFeatureGenerator 将输入的整型和浮点型特征分箱到 num_bins 个唯一的整型值,同时保持相对排名顺序。

CategoryFeatureGenerator

class autogluon.features.generators.CategoryFeatureGenerator(stateful_categories=True, minimize_memory=True, cat_order='original', minimum_cat_count: int =2, maximum_num_cat: int =None, fillna: str =None, **kwargs)[source]

CategoryFeatureGenerator 用于将对象类型转换为类别类型,以及删除稀有类别并优化内存使用。拟合后,转换期间先前未见的类别将被视为缺失值。

参数:
  • stateful_categories (bool, 默认为 True) – 如果为 True,训练数据中的类别将应用于转换后的数据,输入数据中任何未知类别将被视为缺失值。建议将此值保持为 True,以避免下游出现异常行为。

  • minimize_memory (bool, 默认为 True) – 如果为 True,通过将所有类别值转换为连续整数来最小化类别内存使用。这会替换类别中存在的任何字符串数据,但只要下游不需要原始字符串值,就不会改变模型在使用类别作为特征时的行为。建议将此值保持为 True,以显着降低内存使用且不影响准确性。

  • cat_order (str, 默认为 'original') –

    确定类别存储的顺序。当 minimize_memory 为 True 时,这一点很重要,因为顺序将决定哪些类别转换为哪些整数值。有效值

    'original':保持原始顺序。如果特征最初是对象类型,则等同于 'alphanumeric'。'alphanumeric':按字母数字顺序对类别进行排序。'count':按频率对类别进行排序(最不频繁的类别排在前面,代码为 0)。

  • minimum_cat_count (int, 默认为 None) – 类别在训练数据中必须具有的最小出现次数,以避免被视为稀有类别。稀有类别将被移除并视为缺失值。如果为 None,则不需要最小计数。这包括从未在数据中出现但在类别对象中作为可能类别存在的类别。

  • maximum_num_cat (int, 默认为 None) – 可被视为非稀有类别的最大数量。按出现次数排序,如果 maximum_num_cat=N,则最多保留出现次数最高的 N 个类别。所有其他类别将被视为稀有类别。

  • fillna (str, 默认为 None) –

    用于处理缺失值的方法。仅当 stateful_categories=True 时有效。缺失值包括原始为 NaN 的值以及从 minimum_cat_count 等其他参数转换为 NaN 的值。有效值

    None:保持缺失值不变。它们将显示为 NaN,并且没有为其分配类别。'mode':将缺失值设置为其特征中最频繁的类别。

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

DatetimeFeatureGenerator

class autogluon.features.generators.DatetimeFeatureGenerator(features: list =['year', 'month', 'day', 'dayofweek'], **kwargs)[source]

将日期时间特征转换为数值特征。

参数:

features (list, 可选) – 要从日期中解析出的日期时间特征列表。有关完整选项列表,请参阅 pandas.Series.dt 中的方法,网址为 https://pandas.ac.cn/docs/reference/api/pandas.Series.html

DropDuplicatesFeatureGenerator

class autogluon.features.generators.DropDuplicatesFeatureGenerator(sample_size_init=500, sample_size_final=3000, **kwargs)[source]

删除与其他特征完全重复的特征,只保留数据的一个实例。

参数:
  • sample_size_init (int, 默认为 500) – 对重复特征候选项进行初步筛选时采样的行数。通常,可以使用此较少行数过滤掉大部分特征,这极大地加快了最终检查的计算速度。如果为 None 或大于行数,将不会进行初步筛选。对于大型数据集,这可能会显着增加拟合时间。

  • sample_size_final (int, 默认为 3000) – 在进行最终筛选以确定重复特征时采样的行数。理论上这可能导致移除非常接近重复但并非完全重复的特征,但在实践中几乎不可能发生。如果为 None 或大于行数,将执行精确重复检测(成本最高)。建议将此值保持在 100000 以下,以保持合理的拟合时间。

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

DropUniqueFeatureGenerator

class autogluon.features.generators.DropUniqueFeatureGenerator(max_unique_ratio=0.99, **kwargs)[source]

删除只有 1 个唯一值或几乎没有重复值(基于 max_unique_ratio)且类型为类别或对象的特征。

DummyFeatureGenerator

class autogluon.features.generators.DummyFeatureGenerator(features_in='empty', feature_metadata_in='empty', **kwargs)[source]

忽略所有输入特征并返回一个所有值都为 0 的单个整型特征。适用于测试目的,或者在未给定任何特征时避免崩溃。

FillNaFeatureGenerator

class autogluon.features.generators.FillNaFeatureGenerator(fillna_map=None, fillna_default=nan, inplace=False, **kwargs)[source]

填充数据中的缺失值。

参数:
  • fillna_map (dict, 默认为 {'object': ''}) – 决定 NaN 填充值的映射。键是特征的原始类型,如 self.feature_metadata_in.type_map_raw 所示。如果特征的原始类型不在 fillna_map 中,其 NaN 值将被填充为 fillna_default。

  • fillna_default – 如果特征的原始类型不在 fillna_map 中,则使用的默认 fillna 值。请注意不要将其设置为 np.nan 以外的任何值,因为并非所有原始类型都能处理整型、浮点型或字符串值。

  • np.nan (default) – 如果特征的原始类型不在 fillna_map 中,则使用的默认 fillna 值。请注意不要将其设置为 np.nan 以外的任何值,因为并非所有原始类型都能处理整型、浮点型或字符串值。

  • inplace (bool, 默认为 False) – 如果为 True,则 NaN 值将被原地填充,而无需复制输入数据。这会改变此函数作用域之外的输入数据。

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

IdentityFeatureGenerator

class autogluon.features.generators.IdentityFeatureGenerator(features_in: list = None, feature_metadata_in: FeatureMetadata = None, post_generators: list = None, pre_enforce_types=False, pre_drop_useless=False, post_drop_duplicates=False, reset_index=False, column_names_as_str=True, name_prefix: str = None, name_suffix: str = None, infer_features_in_args: dict = None, infer_features_in_args_strategy='overwrite', banned_feature_special_types: List[str] = None, log_prefix='', verbosity=2)[source]

IdentityFeatureGenerator 只是将数据原封不动地传递下去。

LabelEncoderFeatureGenerator

class autogluon.features.generators.LabelEncoderFeatureGenerator(features_in: list = None, feature_metadata_in: FeatureMetadata = None, post_generators: list = None, pre_enforce_types=False, pre_drop_useless=False, post_drop_duplicates=False, reset_index=False, column_names_as_str=True, name_prefix: str = None, name_suffix: str = None, infer_features_in_args: dict = None, infer_features_in_args_strategy='overwrite', banned_feature_special_types: List[str] = None, log_prefix='', verbosity=2)[source]

通过映射到类别代码将类别特征转换为整型特征。

CategoryMemoryMinimizeFeatureGenerator

class autogluon.features.generators.CategoryMemoryMinimizeFeatureGenerator(features_in: list = None, feature_metadata_in: FeatureMetadata = None, post_generators: list = None, pre_enforce_types=False, pre_drop_useless=False, post_drop_duplicates=False, reset_index=False, column_names_as_str=True, name_prefix: str = None, name_suffix: str = None, infer_features_in_args: dict = None, infer_features_in_args_strategy='overwrite', banned_feature_special_types: List[str] = None, log_prefix='', verbosity=2)[source]

Minimizes memory usage of category features by converting the category values to monotonically increasing int values. This is important for category features with string values which can take up significant memory despite the string information not being used downstream.

NumericMemoryMinimizeFeatureGenerator

class autogluon.features.generators.NumericMemoryMinimizeFeatureGenerator(dtype_out=<class 'numpy.uint8'>, **kwargs)[source]

裁剪并转换整型特征的数据类型以最小化内存使用。

dtype_outnp.dtype, default np.uint8

dtype to clip and convert features to. Clipping will automatically use the correct min and max values for the dtype provided.

**kwargs

Refer to AbstractFeatureGenerator documentation for details on valid key word arguments.

RenameFeatureGenerator

class autogluon.features.generators.RenameFeatureGenerator(name_prefix=None, name_suffix=None, inplace=False, **kwargs)[source]

RenameFeatureGenerator renames the columns without altering their values. This can be used to avoid column name collisions when transforming the same feature in multiple ways, or to highlight that a feature was derived from a particular pipeline.

参数:
  • name_prefix (str, 默认为 None) – 添加到所有输出特征名称的前缀。

  • name_suffix (str, 默认为 None) – 添加到所有输出特征名称的后缀。

  • inplace (bool, default False) – If True, then the column names are renamed inplace without copying the input data. This will alter the input data outside of the scope of this function.

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

TextNgramFeatureGenerator

class autogluon.features.generators.TextNgramFeatureGenerator(vectorizer=None, vectorizer_strategy='combined', max_memory_ratio=0.15, prefilter_tokens=False, prefilter_token_count=100, **kwargs)[source]

从文本特征生成 ngram 特征。

参数:
  • vectorizer (sklearn.feature_extraction.text.CountVectorizer or sklearn.feature_extraction.text.TfidfVectorizer, default CountVectorizer(min_df=30, ngram_range=(1, 3), max_features=10000, dtype=np.uint8) # noqa) – sklearn CountVectorizer which is used to generate the ngrams given the text data. Can also specify a TfidfVectorizer, but note that memory usage will increase by 4-8x relative to CountVectorizer.

  • vectorizer_strategy (str, default 'combined') – If ‘combined’, all text features are concatenated together to fit the vectorizer. Features generated in this way have their names prepended with ‘__nlp__.’. If ‘separate’, all text features are fit separately with their own copy of the vectorizer. Their ngram features are then concatenated together to form the output. If ‘both’, the outputs of ‘combined’ and ‘separate’ are concatenated together to form the output. It is generally recommended to keep vectorizer_strategy as ‘combined’ unless the text features are not associated with each-other, as fitting separate vectorizers could increase memory usage and model training time. Valid values: [‘combined’, ‘separate’, ‘both’]

  • max_memory_ratio (float, default 0.15) – Safety measure to avoid out-of-memory errors downstream in model training. The number of ngrams generated will be capped to take at most max_memory_ratio proportion of total available memory, treating the ngrams as float32 values. ngram features will be removed in least frequent to most frequent order. Note: For vectorizer_strategy values other than ‘combined’, the resulting ngrams may use more than this value. It is recommended to only increase this value above 0.15 if confident that higher values will not result in out-of-memory errors.

  • **kwargs – 有关有效关键字参数的详细信息,请参阅 AbstractFeatureGenerator 文档。

TextSpecialFeatureGenerator

class autogluon.features.generators.TextSpecialFeatureGenerator(symbols: List[str] = None, min_occur_ratio=0.01, min_occur_offset=10, bin_features: bool =True, post_drop_duplicates: bool =True, **kwargs)[source]

TextSpecialFeatureGenerator generates text specific features from incoming raw text features. These include word counts, character counts, symbol counts, capital letter ratios, and much more. Features generated by this generator will have ‘text_special’ as a special type.

参数:
  • symbols (List[str], optional) – List of string symbols to compute counts and ratios for as features. If not specified, defaults to [‘!’, ‘?’, ‘@’, ‘%’, ‘$’, ‘*’, ‘&’, ‘#’, ‘^’, ‘.’, ‘:’, ‘ ‘, ‘/’, ‘;’, ‘-’, ‘=’]

  • min_occur_ratio (float, default 0.01) – Minimum ratio of symbol occurrence to consider as a feature. If a symbol appears in fewer than 1 in 1/min_occur_ratio samples, it will not be used as a feature.

  • min_occur_offset (int, default 10) – Minimum symbol occurrences to consider as a feature. This is added to the threshold calculated from min_occur_ratio.

  • bin_features (bool, default True) – If True, adds a BinnedFeatureGenerator to the front of post_generators such that all features generated from this generator are then binned. This is useful for ‘text_special’ features because it lowers the chance models will overfit on the features and reduces their memory usage.

  • post_drop_duplicates (bool, default True) – Identical to AbstractFeatureGenerator’s post_drop_duplicates, except it is defaulted to True instead of False. This helps to clean the output of this generator when symbols aren’t present in the data.

  • **kwargs – Refer to AbstractFeatureGenerator documentation for details on valid keyword arguments.