Почему этот 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.

Большое спасибо.

0 ответов

Другие вопросы по тегам