RareLabelEncoder#
- class feature_engine.encoding.RareLabelEncoder(tol=0.05, n_categories=10, max_n_categories=None, replace_with='Rare', variables=None, missing_values='raise', ignore_format=False)[源代码][源代码]#
RareLabelEncoder() 将稀有或不常见的类别分组到一个名为“Rare”的新类别中,或者用户输入的任何其他名称中。
例如在变量颜色中,如果类别洋红、青色和勃艮第的观测百分比小于5%,所有这些类别将被替换为新标签“稀有”。
注意
不常见的标签也可以被归类在一个用户定义的名称下,例如’其他’。用于替换不常见类别的名称是通过参数
replace_with
定义的。默认情况下,编码器只会对分类变量(类型为’object’或’categorical’)进行编码。你可以传递一个变量列表进行编码。或者,编码器会找到并编码所有分类变量(类型为’object’或’categorical’)。
使用
ignore_format=True
,您可以选择将数值变量也进行编码。该过程是相同的,您可以输入要编码的变量列表,或者转换器将自动选择所有变量。编码器首先为每个变量找到频繁的标签(拟合)。然后,编码器将不频繁的标签归类到新的标签 ‘Rare’ 下,或者根据用户定义的字符串进行归类(转换)。
更多详情请参阅 用户指南。
- 参数
- tol: float, 默认值=0.05
标签被认为是频繁的最小频率。频率低于 tol 的类别将被分组。
- n_categories: int, default=10
编码器应找到频繁标签的变量应具有的最小类别数。如果变量包含的类别数较少,则所有类别都将被视为频繁。
- max_n_categories: int, default=None
应考虑的频繁类别的最大数量。如果为 None,所有频率高于容差(tol)的类别都将被视为频繁。如果输入 5,则仅保留最频繁的 5 个类别,其余类别将被分组。
- replace_with: 字符串, 整数或浮点数, 默认=’Rare’
将用于替换不频繁类别的值。
- 变量: 列表, 默认=无
将被编码的分类变量的列表。如果为 None,编码器将默认查找并转换所有类型为对象或分类的变量。您也可以使转换器接受数值变量,参见参数
ignore_format
。- missing_values: string, default=’raise’
指示是否应忽略缺失值或引发异常。如果为
'raise'
,当要fit
或transform
的数据集包含缺失值时,转换器将返回错误。如果为'ignore'
,在学习参数或执行转换时将忽略缺失数据。- ignore_format: bool, default=False
此转换器仅对对象类型或分类类型的变量进行操作。要覆盖此行为并允许转换器也转换数值变量,请设置为
True
。如果
ignore_format
为False
,编码器将自动选择类型为对象或分类的变量,或者检查用户输入的变量是否为对象或分类类型。如果为True
,编码器将选择所有变量或接受用户输入的所有变量,包括那些被转换为数值类型的变量。简而言之,当你想要编码数值变量时,设置为
True
。
- 属性
- encoder_dict_:
包含每个变量的常见类别,即那些将被保留的类别。
- 变量_:
将要被转换的变量组。
- feature_names_in_:
列出在
fit
过程中看到的特征名称。- n_features_in_:
在拟合过程中使用的训练集中的特征数量。
示例
>>> import pandas as pd >>> from feature_engine.encoding import RareLabelEncoder >>> X = pd.DataFrame(dict(x1 = [1,2,3,4,5,6], x2 = ["b", "b", "b", "b", "b", "a"])) >>> rle = RareLabelEncoder(n_categories = 1, tol=0.2) >>> rle.fit(X) >>> rle.transform(X) x1 x2 0 1 b 1 2 b 2 3 b 3 4 b 4 5 b 5 6 Rare
方法
拟合:
查找频繁类别。
fit_transform:
拟合数据,然后进行转换。
get_feature_names_out:
获取转换的输出特征名称。
get_params:
获取此估计器的参数。
设置参数:
设置此估计器的参数。
转换:
分组稀有类别
- fit(X, y=None)[源代码][源代码]#
学习每个变量的常见类别。
- 参数
- X: pandas 数据框,形状 = [样本数, 特征数]
训练输入样本。可以是整个数据框,而不仅仅是选定的变量。
- y: None
y 不是必需的。你可以传递 y 或 None。
- fit_transform(X, y=None, **fit_params)[源代码]#
拟合数据,然后进行转换。
使用可选参数
fit_params
将转换器拟合到X
和y
,并返回X
的转换版本。- 参数
- X类似数组的形状 (n_samples, n_features)
输入样本。
- y类似数组的形状 (n_samples,) 或 (n_samples, n_outputs),默认=None
目标值(无监督变换为None)。
- **fit_paramsdict
额外的拟合参数。
- 返回
- X_newndarray 数组,形状为 (n_samples, n_features_new)
变换后的数组。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回
- 路由MetadataRequest
一个封装了路由信息的
MetadataRequest
。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数
- 深度bool, 默认=True
如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回
- 参数dict
参数名称映射到它们的值。