Страницы

Поиск по вопросам

среда, 1 января 2020 г.

как обучать модель если использовал KFold cross validation

#python #pandas #dataframe #машинное_обучение #scikit_learn


после разбиения сета методом ''sklearn.cross_validation.KFold'' у меня есть 6 чанков
(3 train ,3 test,+ ответы для них)  . Существует ли функция , с помощью  которой можно
обучить алгоритм просто закинуть все чанки или нужно постоянно писать  :

Vasya=model.fit(chank1,answer1)
a1=model.predict(Vasya,answer_t_1)


?
    


Ответы

Ответ 1



Если хотите научиться пользоваться KFold - вот небольшой пример: kf = KFold(n_splits=N) for train, test in kf.split(X): print("%s %s" % (train, test)) X_train, X_test, y_train, y_test = X[train], X[test], y[train], y[test] model.fit(X_train, y_train) ... вариант попроще: from sklearn.model_selection import cross_val_score kf = KFold(n_splits=N) results = cross_val_score(model, X, y, cv=kf)

Ответ 2



Кросвалидация встроена в sklearn. Если нужно протестировать модель на разных фолдах с использованием KFold то самы простой способ это cross_val_score или cross_val_predict cross_val_score(model,chank1,answer1,cv=n) даст оценки для фолдов cross_val_score(model,chank1,answer1,cv=n) даст все предсказания по X Но обычно кросвалидацией подбирают гиперпараметры для этого есть GridSearchCV которая можно отдать сетку паметров и "сама" подберет лучшуую комбинацию. NB у всех этих функций есть параметр n_jobs вот он и стоит того, чтобы не писать циклы ручками n_jobs = -1 положит машину на время проведения работ загрузив все процы - это, то что в python не так просто сделать.

Комментариев нет:

Отправить комментарий