check_X_y#

sklearn.utils.check_X_y(X, y, accept_sparse=False, *, accept_large_sparse=True, dtype='numeric', order=None, copy=False, force_writeable=False, ensure_all_finite=True, ensure_2d=True, allow_nd=False, multi_output=False, ensure_min_samples=1, ensure_min_features=1, y_numeric=False, estimator=None)[source]#

标准估算器的输入验证。

检查 X 和 y 的长度是否一致,强制 X 为 2D 数组,y 为 1D 数组。默认情况下,X 被检查为非空且仅包含有限值。y 也应用了标准的输入检查,例如检查 y 是否没有 np.nan 或 np.inf 目标。对于多标签 y,设置 multi_output=True 以允许 2D 和稀疏 y。如果 X 的 dtype 是 object,将尝试转换为 float,失败时抛出错误。

参数:
X{ndarray, list, sparse matrix}

Input data.

y{ndarray, list, sparse matrix}

标签。

accept_sparsestr, bool 或 list of str, default=False

允许的稀疏矩阵格式的字符串,例如“csc”、“csr”等。如果输入是稀疏但格式不符,则会转换为列出的第一个格式。True 允许输入为任何格式。False 表示稀疏矩阵输入将引发错误。

accept_large_sparsebool, default=True

如果提供了 CSR、CSC、COO 或 BSR 稀疏矩阵并被 accept_sparse 接受,则 accept_large_sparse 将仅当其索引以 32 位 dtype 存储时才接受。

0.20 版本新增。

dtype‘numeric’, type, list of type 或 None, default=’numeric’

结果的数据类型。如果为 None,则保留输入的数据类型。如果为“numeric”,则保留数据类型,除非 array.dtype 是 object。如果 dtype 是类型列表,则仅当输入的数据类型不在列表中时才对第一个类型执行转换。

order{‘F’, ‘C’}, default=None

数组是否将被强制为 fortran 或 c 风格。如果 None,则在可能的情况下保留输入数据的顺序。

copybool, default=False

是否会触发强制复制。如果 copy=False,则转换可能会触发复制。

force_writeablebool, default=False

是否强制输出数组可写。如果为 True,则返回的数组保证可写,这可能需要复制。否则,将保留输入数组的可写性。

版本 1.6 中新增。

ensure_all_finitebool 或 ‘allow-nan’,默认为 True

是否在数组中对 np.inf、np.nan、pd.NA 引发错误。此参数不影响 y 是否可以具有 np.inf、np.nan、pd.NA 值。可能性如下:

  • True:强制 X 的所有值都为有限值。

  • False:接受 X 中的 np.inf、np.nan、pd.NA。

  • ‘allow-nan’:仅接受 X 中的 np.nan 或 pd.NA 值。值不能是无穷大的。

版本 1.6 中新增: force_all_finite 已重命名为 ensure_all_finite

ensure_2dbool, default=True

如果 X 不是 2D,是否引发值错误。

allow_ndbool, default=False

是否允许 X.ndim > 2。

multi_outputbool, default=False

是否允许 2D y(数组或稀疏矩阵)。如果为 false,则 y 将被验证为向量。如果 multi_output=True,y 不能具有 np.nan 或 np.inf 值。

ensure_min_samplesint, default=1

确保 X 在其第一个轴(2D 数组的行)上具有最小样本数。

ensure_min_featuresint, default=1

确保 2D 数组具有一定的最小特征数(列)。默认值 1 会拒绝空数据集。此检查仅在 X 具有实际 2 个维度或原始为 1D 且 ensure_2d 为 True 时执行。设置为 0 将禁用此检查。

y_numericbool, default=False

是否确保 y 具有数值类型。如果 y 的 dtype 是 object,则将其转换为 float64。仅应与回归算法一起使用。

estimatorstr 或 estimator 实例, default=None

如果传递,则将估计器的名称包含在警告消息中。

返回:
X_convertedobject

转换并验证后的 X。

y_convertedobject

转换并验证后的 y。

示例

>>> from sklearn.utils.validation import check_X_y
>>> X = [[1, 2], [3, 4], [5, 6]]
>>> y = [1, 2, 3]
>>> X, y = check_X_y(X, y)
>>> X
array([[1, 2],
      [3, 4],
      [5, 6]])
>>> y
array([1, 2, 3])