Python np.REFORMATE返回数据必须是一维的,即使数据是一维的

Python np.REFORMATE返回数据必须是一维的,即使数据是一维的,python,numpy,scikit-learn,Python,Numpy,Scikit Learn,我试图重塑我的y_序列值,这样我就可以把它放在StandardScaler中,然后用它来反转从预测的x_值得到的转换值 import pandas as pd import numpy as np from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler

我试图重塑我的y_序列值,这样我就可以把它放在StandardScaler中,然后用它来反转从预测的x_值得到的转换值

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler 

dataset = pd.read_csv('/home/ritvik/Desktop/dataset_for_hackathon/wheat-2014-supervised.csv')
dataset = dataset.drop(['CountyName','State','Date'],axis = 1)

df_x = dataset.iloc[:,0:]
df_x = df_x.fillna(df_x.mean())
df_y = dataset.iloc[:,22]
x_train,x_test,y_train,y_test = train_test_split(df_x,df_y,test_size = 0.2)
scaler_x = StandardScaler()
scaler_y = StandardScaler()
scaler_x.fit(x_train)
x_train = scaler_x.transform(x_train)
#this returns the value (146039,) clearly a one dimensional array
print(y_train.shape) 

y_train = np.reshape(y_train,(-1,1)) # <-Throws an error saying that the data should be one dimensional
y_train = scaler_y.fit(y_train)
regressor = LinearRegression()
regressor.fit(x_train,y_train)
predicted = regressor.predict(scaler_x.transform(x_test))
print(pd.DataFrame(scaler_y.inverse_transform(predicted),y_test))
将熊猫作为pd导入
将numpy作为np导入
从sklearn.linear\u模型导入线性回归
从sklearn.model\u选择导入列车\u测试\u拆分
从sklearn.preprocessing导入StandardScaler
dataset=pd.read_csv('/home/ritvik/Desktop/dataset_for_hackathon/wheat-2014-supervised.csv'))
dataset=dataset.drop(['CountyName','State','Date',axis=1)
df_x=dataset.iloc[:,0:]
df_x=df_x.fillna(df_x.mean())
df_y=dataset.iloc[:,22]
x_序列,x_测试,y_序列,y_测试=序列测试分割(df_x,df_y,测试尺寸=0.2)
scaler_x=标准scaler()
scaler_y=标准scaler()
定标器x.fit(x系列)
x_列=定标器x.变换(x_列)
#这返回值(146039,)显然是一维数组
打印(y_列形状)
y_列=np。重塑(y_列,(-1,1))#替换线:

y_train = np.reshape(y_train,(-1,1))
致:

您将删除错误消息

还有一个细节。更改:

y_train = scaler_y.fit(y_train)

您的代码将完全可运行。

替换以下行:

y_train = np.reshape(y_train,(-1,1))
致:

您将删除错误消息

还有一个细节。更改:

y_train = scaler_y.fit(y_train)

您的代码将完全可运行

y_train = scaler_y.fit_transform(y_train)