python - scikit 认为简单的单向量输入数组不兼容

标签 python arrays numpy pandas scikit-learn

我有两个变量,它们最初都来自同一个 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:...\sklearn\svm\base.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 向量应该是一个二维数组。您可以通过执行 TT.reshape(-1, 1)TT reshape 为 (2856L, 1) 形状,这至少会消除错误,但我我不确定这是否给出了预期的结果。

关于python - scikit 认为简单的单向量输入数组不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342831/

相关文章:

java - 如何连接旋转器与单位转换器一起使用?

python - 以编程方式选择要分配到 NumPy 数组中的轴

python - 试图绘制傅立叶正弦曲线

python - 为什么 TensorFlow matmul() 比 NumPy multiply() 慢得多?

python - 如何使用每个列名及其数据类型创建 SQL 查询

python - 使用不明确的用户输入填写 RASA 表单中的槽位

python - 有没有办法在 GTK 中获取系统中所有已安装字体的列表

python - 使用 Python 将文本添加到现有 PDF

java - 打印出用户输入 1 ,2 ,3 , Array,Java,Eclipse

python - 计算 Vandermonde 矩阵的有效方法