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='deprecated', ensure_all_finite=None, 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 為 object,則嘗試轉換為 float,失敗時會引發錯誤。

參數:
X{ndarray, list, sparse matrix}

輸入資料。

y{ndarray, list, sparse matrix}

標籤。

accept_sparsestr, bool 或 str 列表,預設值=False

代表允許的稀疏矩陣格式的字串,例如 ‘csc’、‘csr’ 等。如果輸入是稀疏的但不是允許的格式,它將被轉換為第一個列出的格式。True 允許輸入為任何格式。False 表示稀疏矩陣輸入將引發錯誤。

accept_large_sparsebool,預設值=True

如果提供 CSR、CSC、COO 或 BSR 稀疏矩陣,並且被 accept_sparse 接受,則只有當其索引以 32 位元 dtype 儲存時,accept_large_sparse 才會接受它。

在版本 0.20 中新增。

dtype‘numeric’,type,type 列表或 None,預設值=‘numeric’

結果的資料類型。如果為 None,則保留輸入的 dtype。如果為“numeric”,則除非 array.dtype 為 object,否則保留 dtype。如果 dtype 是類型列表,則只有在輸入的 dtype 不在列表中時,才對第一種類型執行轉換。

order{‘F’, ‘C’},預設值=None

陣列是否將被強制為 fortran 或 c 樣式。如果 None,則在可能的情況下保留輸入資料的順序。

copybool,預設值=False

是否將觸發強制複製。如果 copy=False,則可能會因轉換而觸發複製。

force_writeablebool,預設值=False

是否強制輸出陣列可寫入。如果為 True,則保證返回的陣列可寫入,這可能需要複製。否則,保留輸入陣列的可寫入性。

在版本 1.6 中新增。

force_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 值。值不能為無限值。

在版本 0.20 中新增: force_all_finite 接受字串 'allow-nan'

在版本 0.23 中變更: 接受 pd.NA 並將其轉換為 np.nan

自版本 1.6 起已棄用: force_all_finite 已重新命名為 ensure_all_finite,並將在 1.8 中移除。

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,預設值=True

如果 X 不是 2D,是否引發值錯誤。

allow_ndbool,預設值=False

是否允許 X.ndim > 2。

multi_outputbool,預設值=False

是否允許 2D y(陣列或稀疏矩陣)。如果為 false,則 y 將被驗證為向量。如果 multi_output=True,則 y 不能有 np.nan 或 np.inf 值。

ensure_min_samplesint,預設值=1

確保 X 在其第一個軸(對於 2D 陣列為列)中具有最少數量的樣本。

ensure_min_featuresint,預設值=1

確保 2D 陣列具有最少數量的特徵(欄)。預設值 1 會拒絕空資料集。只有當 X 實際上具有 2 個維度或原本是 1D 且 ensure_2d 為 True 時,才會強制執行此檢查。設定為 0 將停用此檢查。

y_numericbool,預設值=False

是否確保 y 具有數值類型。如果 y 的 dtype 為 object,則會將其轉換為 float64。應僅用於迴歸演算法。

estimatorstr 或估計器實例,預設值=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])