Почему этот CV-код выдает ошибку "X имеет другую форму, чем во время подгонки"?
Я строю модель LinearSVR и использую RFECV и RandomizedCV, чтобы найти оптимальные гиперпараметры и пространство признаков для модели. Однако следующий код сталкивается с ошибкой.
p_grid2 = {'estimator__C': [1,5,10,0.5,0.1], 'estimator__epsilon': [0.1,0.01,0.5,0.001]}
inner_cv = KFold(n_splits=4, shuffle=True, random_state=42)
estimator = LinearSVR(random_state=42)
selector = RFECV(estimator,step=1, cv=inner_cv)
clf2 = RandomizedSearchCV(selector, param_distributions=p_grid2, cv=7,
random_state=42)
clf2.fit(X_train_std, y_train)
X_test_svr = clf2.transform(X_test_std)
print("Mean Squared Error: ", mean_squared_error(y_test,
clf2.predict(X_test_svr)))
print("R2: ", r2_score(y_test, clf2.predict(X_test_svr)))
print("Explained Variance: ", explained_variance_score(y_test,
clf2.predict(X_test_svr))
К сожалению, этот код вызывает следующую ошибку:
ValueError: X has a different shape than during fitting.
на линии:
print("Mean Squared Error: ", mean_squared_error(y_test,
clf2.predict(X_test_svr)))
и я полагаю, строки под ним.
Меня это несколько смутило, поскольку X_test_svr и X_train_svr имеют одинаковое количество функций после преобразования. Любая помощь в решении этой проблемы будет принята с благодарностью.
Этот проект был выполнен в Python 3.
Большое спасибо.