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?
答案 0 :(得分:0)
在第二个示例中,X
满足2D条件,但是X
和y
之间的样本数量有所不同,即X
有9个样本,而{{1 }}有3个样本。
请记住,y
的形状应为X
。不幸的是,文档中没有明确提及。