ValueError: фигуры (1,10) и (20,20) не выровнены: 10 (тусклый 1)! = 20 (тусклый 0) - PullRequest
0 голосов
/ 26 января 2019

Я новичок в машинном обучении и получаю эту ошибку, когда пытаюсь выполнить метод .predict() на X_test. Я также не понимаю концепцию reshape: зачем нам это делать?

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd


# Importing the dataset
dataset = pd.read_csv('Salary_Data.csv')
X = dataset.iloc[:,-1].values  
y = dataset.iloc[:,1].values 



# Splitting the dataset into the Training set and Test set
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3, random_state = 0)



# Fitting simple Linear Regression to the training set
from sklearn.linear_model import LinearRegression
regressor= LinearRegression() 
X_train = X_train.reshape(1, -1)
y_train = y_train.reshape(1, -1)
regressor.fit(X_train,y_train)



# Predicting the test set results
X_test= X_test.reshape(1,-1)
y_pred = regressor.predict(X_test)

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Я должен использовать .reshape (-1, 1) вместо .reshape (1, -1), поскольку я рассматриваю только одну функцию из моего набора данных

0 голосов
/ 26 января 2019

Изменение формы требуется, поскольку данные должны иметь одинаковые размеры по сравнению с методами fit() и predict().Линейная регрессия предполагает, что:

  • Количество столбцов представляет номер измерения на выборку
  • Количество строк представляет номер выборки

ТакМожно иметь другое количество строк (вы можете обучить модель на 100 выборках, но просто хотите предсказать одну выборку. Однако вы не можете обучить (то есть fit) модель с выборками, содержащими измерения n, и предсказатьобразец, содержащий различное количество измерений.

...