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, force_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)#

输入验证用于标准估计器。

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

Parameters:
X{ndarray, list, sparse matrix}

输入数据。

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存储时才接受它。

Added in version 0.20.

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

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

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

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

copybool, default=False

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

force_writeablebool, default=False

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

Added in version 1.6.

force_all_finitebool 或 ‘allow-nan’, default=True

是否在X中出现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值。值不能为无穷大。

Added in version 0.20: force_all_finite 接受字符串 'allow-nan'

Changed in version 0.23: 接受 pd.NA 并将其转换为 np.nan

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实际上为2D或原为1D且 ensure_2d 为True时强制执行。设置为0禁用此检查。

y_numericbool, default=False

是否确保y具有数值类型。如果y的dtype为对象,则将其转换为float64。仅应用于回归算法。

estimatorstr 或 estimator instance, default=None

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

Returns:
X_convertedobject

转换和验证后的X。

y_convertedobject

转换和验证后的y。

Examples

>>> 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])