#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 не так просто сделать.
Комментариев нет:
Отправить комментарий