sklearn.utils.check_X_y的示例(用例)?

时间:2019-06-18 12:28:10

标签: python scikit-learn

sklearn.utils.check_X_y检查X和y的长度是否一致,将X强制为2D,y强制为1D。

要理解这一点,我编写了这段代码。

X = np.arange(27).reshape((3,9))
y = np.arange(3)
X, y = check_X_y(X, y)

X或y没有任何反应,我认为这意味着X,y通过了考试。

还有这个

X = np.arange(27).reshape((9,3))
y = np.arange(3)
X, y = check_X_y(X, y)

引发此错误

--------------------------------------------------------------------------
ValueError                               Traceback (most recent call last)
<ipython-input-5-b723382efd67> in <module>()
      1 X = np.arange(27).reshape((9,3))
      2 y = np.arange(3)
----> 3 X, y = check_X_y(X, y)

~/anaconda3/envs/tf11/lib/python3.6/site-packages/sklearn/utils/validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)
    727         y = y.astype(np.float64)
    728 
--> 729     check_consistent_length(X, y)
    730 
    731     return X, y

~/anaconda3/envs/tf11/lib/python3.6/site-packages/sklearn/utils/validation.py in check_consistent_length(*arrays)
    203     if len(uniques) > 1:
    204         raise ValueError("Found input variables with inconsistent numbers of"
--> 205                          " samples: %r" % [int(l) for l in lengths])
    206 
    207 

ValueError: Found input variables with inconsistent numbers of samples: [9, 3]

这个check_X_y是专为设计的吗?通过引发错误将X强制为2D?

1 个答案:

答案 0 :(得分:0)

在第二个示例中,X满足2D条件,但是Xy之间的样本数量有所不同,即X有9个样本,而{{1 }}有3个样本。

请记住,y的形状应为X。不幸的是,文档中没有明确提及。