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