首页 > 解决方案 > 蟒蛇错误。预期二维数组,得到一维数组,如何解决?

问题描述

我的数据框由两列组成,速度和功率。

X = df[('speed')]
y = df[('power')]

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=10)

但是当我运行时出现错误

from sklearn.linear_model import LinearRegression
clf = LinearRegression()
clf.fit(X_train, y_train)


ValueError                                Traceback (most recent call last)
<ipython-input-85-a16f7a4d5962> in <module>
      1 from sklearn.linear_model import LinearRegression
      2 clf = LinearRegression()
----> 3 clf.fit(X_train, y_train)



I tried X.reshape(1, -1).  I cant figure out what I am doing wrong.

标签: pythonscikit-learn

解决方案


您需要使用方括号,例如:

df = pd.DataFrame({'power':np.random.uniform(0,1,100),
                  'speed':np.random.uniform(0,1,100)})

X = df[['speed']]
y = df['power']

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=10)

from sklearn.linear_model import LinearRegression
clf = LinearRegression()
clf.fit(X_train, y_train)
clf.predict(X_train)[:5]

这将运行正常。


推荐阅读