Q-Squared vs Число компонентов графика отображает плоские линии для PLS в scikit-learn

Я использую научный набор для оценки моделей перекрестного разложения на наборе данных. К ним относятся PLSRegression, CCA и PLSCanonical. Я хотел бы построить значения Q-квадрата по количеству компонентов, чтобы увидеть, сколько компонентов необходимо, а также, какой из трех регрессоров может дать мне наилучшие результаты. Поэтому я перебираю количество компонентов. У меня есть тренировочный набор и тестовый набор. Я бы обычно использовал следующие шаги:

values=[]
For every x in range(50):
 estimator  = PLSRegression() (or PLSCanonical(), or CCA())
 estimator.set_params(**{'n_components':x, scale: False})
 estimator.fit(X_train, y_train)
 q2 = estimator.score(X_test, y_test)
 values.append([x,q2])

В то время как я получаю разумную кривую с PLSRegression, которая увеличивается с n_components, достигая плато около 15 компонентов, я получаю прямые линии с PLSCanonical и CCA, что означает, что количество компонентов не влияет на Q2. Это не имеет смысла для меня. Последний даже дает только отрицательный Q-квадрат. Я ожидаю, что кривые, которые выглядят одинаково для всех оценок, но могут быть с различными значениями Q2.

Есть ли шаг, который я здесь опускаю?

Спасибо

Янник

0 ответов

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