Loading...
asya.toskova avatar asya.toskova 16 Точки

Грешка при GridSearch на PolynomialFeatures

Опитвам се да намеря параметрите на PolynomialFeatures:

tuned_params = [{"degree":[2,3], "interaction_only":[True,False]}]
CV_polinomial = GridSearchCV(PolynomialFeatures(), tuned_params, scoring='r2', cv=10)
CV_polinomial.fit(PolynomialFeatures().fit_transform(attr_train), l_train) 

Но получавам грешка при фитването:
AttributeError: 'PolynomialFeatures' object has no attribute 'predict'

Някой знае ли какво не е наред?

 

0
Machine Learning
iordan_93 avatar iordan_93 Trainer 407 Точки
Best Answer

Здрасти,

На втория ред, където имаш GridSearchCV() трябва да подадеш не PolynomialFeatures(), а machine learning модел, примерно:

CV_polinomial = GridSearchCV(LinearRegression(), ...).

PolynomialFeatures само трансформира една таблица с данни в друга, не предсказва стойности.

0
02/04/2017 14:13:32
asya.toskova avatar asya.toskova 16 Точки

Благодаря за отговора!

Исках да намеря най-добрата комбинация от нелинейни параметри наведнъж, ама явно не може, или поне с GridSearch не може. Въпреки че гледах такъв пример в интернет, но сигурно не съм разбрала нещо.

В такъв случай имам въпрос:

Първо правя модели и после избирам най-добрите параметри с GridSearch на най-добрия ми модел, който тествам или първо подбирам най-добрите параметри с GridSearch на всеки модел и най-добрия вариант го тествам?

 

0
iordan_93 avatar iordan_93 Trainer 407 Точки

Не става автоматично, или поне аз не знам такъв начин. Може да го направиш на ръка: правиш polynomial features няколко пъти, пускаш линейна регресия върху всеки dataset и сравняваш резултатите.

Имай предвид, че ако искаш да изчерпиш всички възможни комбинации от данни, grid search ще работи изключително бавно (особено ако имаш много на брой колони и / или висока степен на полинома).

Затова има няколко възможни подхода, които се използват:

  1. Просто слагаш всички възможни членове до някоя степен. Тези, които "не ти трябват", ще имат коефициенти, близки до нула. В допълнение, може да включиш регуляризация и да пуснеш grid search за нея.
  2. Опитваш се да разбереш (от данните и от опит) кои features биха могли да си взаимодействат и правиш нови колонки с произведенията им. Това е feature engineering.
  3. Прилагаш операция за feature selection / dimensionality reduction, като например PCA или RFE (recursive feature elimination) въху всички полиномиални членове.
0
asya.toskova avatar asya.toskova 16 Точки

ок, мерси! Дано успея да ги навържа :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.