Я искал в Google справку по этой ошибке и пытался использовать манекены, но пока ничего не помогло. Мой код:
df_movies_train_reg = df_movies[df_movies['Release Year'] < 2014]
df_movies_test_reg = df_movies[df_movies['Release Year'] > 2013]
df_train = pd.DataFrame()
df_test = pd.DataFrame()
df_train['x'] = df_movies_train_reg['Theaters in First Week'].copy()
df_train['y'] = df_movies_train_reg['Worldwide Gross'].copy()
df_test['x'] = df_movies_test_reg['Theaters in First Week'].copy()
df_test['y'] = df_movies_test_reg['Worldwide Gross'].copy()
df_train['x^2'] = df_train['x'] * df_train['x']
X_reg = df_train[['x', 'x^2']]
y_reg = df_train[['y']]
reg = LinearRegression()
model = reg.fit(X_reg, y_reg)
score = model.score(df_test[['x']], df_test[['y']])
Набор данных представляет собой список из 2328 строк, обучающий набор, оставленный после фильтра по годам, составляет всего 2037 строк, тогда тестовый набор - это 291 ряд.
ValueError Traceback (most recent call last)
<ipython-input-116-aee4ec5bd647> in <module>
50 model = reg.fit(X_reg, y_reg)
51
---> 52 score = model.score(df_test[['x']], df_test[['y']])
53
54
~\Anaconda3\lib\site-packages\sklearn\base.py in score(self, X, y, sample_weight)
326
327 from .metrics import r2_score
--> 328 return r2_score(y, self.predict(X), sample_weight=sample_weight,
329 multioutput='variance_weighted')
330
~\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in predict(self, X)
211 Returns predicted values.
212 """
--> 213 return self._decision_function(X)
214
215 _preprocess_data = staticmethod(_preprocess_data)
~\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in _decision_function(self, X)
196 X = check_array(X, accept_sparse=['csr', 'csc', 'coo'])
197 return safe_sparse_dot(X, self.coef_.T,
--> 198 dense_output=True) + self.intercept_
199
200 def predict(self, X):
~\Anaconda3\lib\site-packages\sklearn\utils\extmath.py in safe_sparse_dot(a, b, dense_output)
171 return ret
172 else:
--> 173 return np.dot(a, b)
174
175
ValueError: shapes (291,1) and (2,1) not aligned: 1 (dim 1) != 2 (dim 0)