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