LogCpTransformer#
- class feature_engine.transformation.LogCpTransformer(variables=None, base='e', C='auto')[源代码][源代码]#
LogCpTransformer() 应用变换 log(x + C),其中 x 是要变换的变量,C 是一个正的常数。它可以应用自然对数或以10为底的对数,其中自然对数是以 e 为底的对数。
由于对数只能应用于数值非负值,LogCpTransformer() 通过添加一个常数来扩展 LogTransformer 的功能,以将变量的分布向正值方向移动。
注意,如果在加上常数C后,变量包含零或负值,转换器将返回一个错误。如果测试集中的变量值小于在`fit()`期间看到的值,这种情况可能会发生。
可以传递一个变量列表作为参数。或者,转换器将自动选择并转换所有数值类型的变量。
更多详情请参阅 用户指南。
- 参数
- 变量: 列表, 默认=无
要转换的数值变量的列表。如果为 None,转换器将查找并选择所有数值变量。如果 C 是一个字典,则忽略此参数,并且从字典键中选择要转换的变量。
- base: string, default=’e’
指示是否应应用自然对数或以10为底的对数。可以取值为 ‘e’ 或 ‘10’。
- C: “auto”, int 或 dict, 默认=”auto”
在对数运算前加到变量上的常数 C,即 log(x + C)。
如果是整数,那么 log(x + C)
如果为“auto”,则 C = abs(min(x)) + 1
如果是字典,则映射要应用于每个变量的常数C。
注意,当 C 是一个字典时,参数
variables
将被忽略。
- 属性
- 变量_:
将被转换的变量组。
- C_:
要添加到每个变量的常数 C。如果 C = “auto”,则使用 C = abs(min(variable)) + 1 的字典。对于严格正变量,C = 0。
- feature_names_in_:
列出在
fit
过程中看到的特征名称。- n_features_in_:
在拟合中使用的训练集中的特征数量。
示例
>>> import pandas as pd >>> from feature_engine.transformation import LogCpTransformer >>> X = pd.DataFrame(dict( >>> vara=[0, 1, 2, 3], >>> varb=[5, 5, 6, 7], >>> varc=[-2, -1, 0, 4], >>> vard=[-3, -2, -1, -5], >>> vare=["a", "b", "c", "d"])) >>> lct = LogCpTransformer() >>> lct.fit(X) >>> X = lct.transform(X) >>> X vara varb varc vard vare 0 0.000000 1.609438 0.000000 1.098612 a 1 0.693147 1.609438 0.693147 1.386294 b 2 1.098612 1.791759 1.098612 1.609438 c 3 1.386294 1.945910 1.945910 0.000000 d
方法
拟合:
学习常数 C。
fit_transform:
拟合数据,然后进行转换。
get_feature_names_out:
获取转换后的输出特征名称。
get_params:
获取此估计器的参数。
设置参数:
设置此估计器的参数。
inverse_transform:
将数据转换回原始表示形式。
转换:
将变量转换为 x 的对数加上 C。
- fit(X, y=None)[源代码][源代码]#
学习在对数变换前要加到变量上的常数 C,如果 C=”auto”。
选择数值变量或检查用户输入的变量是否为数值。然后检查在加上C后,所选变量是否为正数。
- 参数
- X: 形状为 [n_samples, n_features] 的 Pandas DataFrame。
训练输入样本。可以是整个数据框,而不仅仅是需要转换的变量。
- y: pandas Series, default=None
在这个转换器中不需要。你可以传递 y 或 None。
- fit_transform(X, y=None, **fit_params)[源代码]#
拟合数据,然后进行转换。
将转换器拟合到
X
和y
,并使用可选参数fit_params
返回X
的转换版本。- 参数
- X类似数组的形状 (n_samples, n_features)
输入样本。
- y类似数组的形状 (n_samples,) 或 (n_samples, n_outputs), 默认=None
目标值(无监督转换为 None)。
- **fit_参数dict
附加的拟合参数。
- 返回
- X_newndarray 数组,形状为 (n_samples, n_features_new)
转换后的数组。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回
- 路由MetadataRequest
一个封装了路由信息的
MetadataRequest
。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数
- 深度bool, 默认=True
如果为真,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回
- 参数dict
参数名称映射到它们的值。
- inverse_transform(X)[源代码][源代码]#
将数据转换回原始表示形式。
- 参数
- X: 形状为 [n_samples, n_features] 的 Pandas DataFrame
要转换的数据。
- 返回
- X_tr: Pandas 数据框
包含转换变量的数据框。
- rtype
DataFrame
..