target_distribution_data_check#
数据检查,用于检查目标数据是否包含在训练前可能需要进行转换以提高模型性能的特定分布。
模块内容#
类摘要#
检查目标数据是否包含在训练前可能需要进行转换以提高模型性能的特定分布。当数据集样本数 <= 5000 时使用 Shapiro-Wilks 检验,否则使用 Jarque-Bera 检验。 |
目录#
- class evalml.data_checks.target_distribution_data_check.TargetDistributionDataCheck[源代码]#
检查目标数据是否包含在训练前可能需要进行转换以提高模型性能的特定分布。当数据集样本数 <= 5000 时使用 Shapiro-Wilks 检验,否则使用 Jarque-Bera 检验。
方法
- name(cls)#
返回描述数据检查的名称。
- validate(self, X, y)[源代码]#
检查目标数据是否具有特定分布。
- 参数
X (pd.DataFrame, np.ndarray) – 特征。被忽略。
y (pd.Series, np.ndarray) – 用于检查潜在分布的目标数据。
- 返回
如果目标数据中发现特定分布,则返回包含 DataCheckErrors 的列表。
- 返回类型
dict (DataCheckError)
示例
>>> import pandas as pd
呈现对数正态分布的目标将向用户发出警告,建议对目标进行转换。
>>> y = [0.946, 0.972, 1.154, 0.954, 0.969, 1.222, 1.038, 0.999, 0.973, 0.897] >>> target_check = TargetDistributionDataCheck() >>> assert target_check.validate(None, y) == [ ... { ... "message": "Target may have a lognormal distribution.", ... "data_check_name": "TargetDistributionDataCheck", ... "level": "warning", ... "code": "TARGET_LOGNORMAL_DISTRIBUTION", ... "details": {"normalization_method": "shapiro", "statistic": 0.8, "p-value": 0.045, "columns": None, "rows": None}, ... "action_options": [ ... { ... "code": "TRANSFORM_TARGET", ... "data_check_name": "TargetDistributionDataCheck", ... "parameters": {}, ... "metadata": { ... "transformation_strategy": "lognormal", ... "is_target": True, ... "columns": None, ... "rows": None ... } ... } ... ] ... } ... ] ... >>> y = pd.Series([1, 1, 1, 2, 2, 3, 4, 4, 5, 5, 5]) >>> assert target_check.validate(None, y) == [] ... ... >>> y = pd.Series(pd.date_range("1/1/21", periods=10)) >>> assert target_check.validate(None, y) == [ ... { ... "message": "Target is unsupported datetime type. Valid Woodwork logical types include: integer, double, age, age_fractional", ... "data_check_name": "TargetDistributionDataCheck", ... "level": "error", ... "details": {"columns": None, "rows": None, "unsupported_type": "datetime"}, ... "code": "TARGET_UNSUPPORTED_TYPE", ... "action_options": [] ... } ... ]