我是机器学习的新手,尝试在.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)
答案 0 :(得分:0)
需要重塑,因为数据在fit()
和predict()
方法上需要具有相同的尺寸。线性回归假设:
因此可以有不同数量的行(可以在100个样本上训练一个模型,但只想预测一个样本。但是,您不能训练(即fit
)一个包含{ {1}}维数并预测包含不同维数的样本。
答案 1 :(得分:0)
我必须使用 .reshape(-1,1)而不是.reshape(1,-1) 因为我只考虑数据集中的一项功能