简单的单矢量输入阵列被Scikit视为不兼容



我最初来自同一pandas df。我将一个提取到tt,另一个将其提取到t。我正在使用TT预测T,这是二进制的。我无法确定为什么变量被Scikit视为不兼容的形状。我已将TT转移为解决方案,但这不起作用。

>>> TT=adf.x1.values
>>> t=adf.y.values
>>> TT.shape
(2856L,)
>>> t.shape
(2856L,)
>>> TT
array([ 4.43081665,  5.99146461,  4.86753464, ...,  4.58496761,
        8.4553175 ,  7.37775898], dtype=float32)
>>> t
array([ 0.,  0.,  0., ...,  0.,  0.,  0.], dtype=float32)
>>> clf=LogisticRegression(C=1)   
>>> clf.fit(TT,t)
Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:...sklearnsvmbase.py", line 686, in fit
        (X.shape[0], y.shape[0]))
ValueError: X and y have incompatible shapes.
X has 1 samples, but y has 2856.)

如果您在sklearn.linear_model.LogisticRegression.fit上查看文档,

  • TT应该具有形状(n_samples, n_features)
  • t应该具有形状(n_samples)

您的TT向量应为2D数组。您可以通过执行TT.reshape(-1, 1)来重塑TT以具有形状(2856L,1),并且至少会摆脱错误,但是我不确定这是否给出了所需的结果。

相关内容

  • 没有找到相关文章

最新更新