При назначении массивов X и Y в модели машинного обучения я вижу, что они иногда получают столбец из кадра данных со «значениями», как в df.iloc [:, 2] .values , ииногда преобразовывая его в 2D-массив, как в df.iloc [:, 2] .values.reshape (-1,1) .
, когда использовать который?
и иногда я использую в любом случае, и они оба работают.почему работает не сформированный, в то время как существует утверждение типа «Преобразователи scikit-learn ожидают, что входные данные будут матрицами строк и столбцов, поэтому 1D-массивы для целевой переменной должны быть преобразованы в 2D-массивы до преобразований."
РЕДАКТИРОВАТЬ:
X=dataset.iloc[:,1:23].values
y=dataset.iloc[:,0].values
#%%
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
lr_X=LabelEncoder()
for i in range(0,22):
X[:,i]=lr_X.fit_transform(X[:,i])
lr_y=LabelEncoder()
y=lr_y.fit_transform(y)
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=42)
#%%
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
lr.fit(X_train,y_train)