【问题标题】:Python sklearn bad input shapePython sklearn 输入形状错误
【发布时间】:2020-01-04 21:12:03
【问题描述】:

我已经检查了这个问题的其他解决方案,但找不到答案。我正在使用 Python 开发 sklearn 库,但我有一个错误:

ValueError: 错误的输入形状 (1460, 80)

这是我的代码:

import pandas as pd
from sklearn.preprocessing import LabelEncoder

data = pd.read_csv("train.csv")
x,y = data.drop(['SalePrice'], axis=1), data['SalePrice']
le = LabelEncoder()
le.fit(x)

我该如何解决?对不起,我有点新手,谢谢你的帮助

EDIT1

这是错误的完整代码:

> Traceback (most recent call last):   File "houseai.py", line 11, in
> <module>
>     le.fit(x)   File "C:\Users\UTKU\AppData\Local\Programs\Python\Python37\lib\site-packages\sklearn\preprocessing\label.py",
> line 219, in fit
>     y = column_or_1d(y, warn=True)   File "C:\Users\UTKU\AppData\Local\Programs\Python\Python37\lib\site-packages\sklearn\utils\validation.py",
> line 760, in column_or_1d
>     raise ValueError("bad input shape {0}".format(shape)) ValueError: bad input shape (1460, 80)

【问题讨论】:

  • 你能把x&y的形状放上来吗?你可以使用 x.shape & y.shape
  • 首先提供一些必要的信息。就像回溯一样,我们知道错误发生在哪里。如果可能,确定哪个输入的形状错误。应该是什么形状?您可能需要提供其他变量的形状。
  • 好的,我现在编辑
  • 正如LabelEncoder docs 中所说的,应该使用“类似数组的形状(n_samples,)”。您提供了形状为 (1460, 80) 的数据框作为参数。
  • 出现错误之后的代码永远不会运行,与问题无关,并且应该被包含(只会造成不必要的混乱);不相关的导入也是如此 - 看看现在代码的可读性和简洁性(编辑)。

标签: python pandas scikit-learn


【解决方案1】:

数据['SalePrice'] 或浮动数据中可能有一些空值,请使用检查空值

bool_series = pd.notnull(data['SalePrice']) 
# displayed data only with team = NaN 
data[bool_series] 

检查 x 和 y 的形状

 x.shape
 y.shape

如果您仍然遇到同样的问题,请更新示例数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 2017-12-21
    • 2018-04-06
    • 2019-04-08
    • 2016-12-18
    • 2018-10-23
    • 2021-12-20
    • 2019-02-06
    相关资源
    最近更新 更多