在机器学习中,输入数据的验证是一个重要的步骤,以确保数据的质量和一致性。这个助手函数专门为此目的设计,可以在需要输入验证的估计器中使用。它能够检查输入样本和目标数据,确保它们符合预期的形状和类型。此外,该函数还可以重置或设置估计器的内部属性,如特征数量和特征名称。
该函数接受多个参数,以提供灵活的数据验证方式。以下是一些关键参数的详细说明:
_estimator:这是要验证输入数据的估计器实例。通过这个参数,函数能够访问估计器的内部属性和方法,以便进行正确的数据验证。
X:这是输入样本,可以是数组、稀疏矩阵或数据框,形状为(n_samples, n_features)。如果设置为'no_validation',则不对X进行验证。这在元估计器中非常有用,因为它们可以将输入验证委托给底层的估计器。
y:这是目标数据,可以是数组,形状为(n_samples,)。如果为None,则仅对X调用check_array。如果估计器的requires_y标签为True,则会引发错误。如果设置为'no_validation',则对X调用check_array并忽略估计器的requires_y标签。
reset:这是一个布尔值,默认为True。如果为True,则重置n_features_in_属性。如果为False,则检查输入数据是否与上次reset为True时提供的数据一致。建议在fit方法和第一次调用partial_fit时将reset设置为True。
validate_separately:这是一个布尔值或字典元组,默认为False。如果为False,则调用check_X_y。否则,它必须是用于调用X和y的check_array的kwargs字典元组。在这些字典中自动添加了estimator=self,以便在输入数据无效时生成更详细的错误消息。
skip_check_array:这是一个布尔值,默认为False。如果为True,则不对X和y进行更改,只检查feature_names_in_和n_features_in_。否则,对X和y调用check_array。
**check_params:这是传递给check_array或check_X_y的参数。如果validate_separately不为False,则忽略这些参数。在这些参数中自动添加了estimator=self,以便在输入数据无效时生成更详细的错误消息。
该函数返回验证后的输入数据。如果同时验证了X和y,则返回一个元组。
以下是一个使用该助手函数的简单示例:
from sklearn.utils.validation import check_X_y
# 假设有一个估计器实例 estimator 和输入数据 X, y
# 可以这样调用函数来验证数据
X_checked, y_checked = check_X_y(X, y, estimator=estimator)
在这个示例中,首先从sklearn.utils.validation导入了check_X_y函数。然后,创建了一个估计器实例estimator和输入数据X, y。最后,调用check_X_y函数来验证数据,并返回验证后的X_checked和y_checked。