Написав два небольших проекта — один по прогнозированию зарплат в области обработки данных, другой по проверке, означает ли что-нибудь теневой вызов Фила из Панксатони — я заметил, что оба раза делал один и тот же шаг вручную: обучил пару моделей, проверил тесты…
После написания двух небольших проектов — один по прогнозированию зарплат в области обработки данных, другой по проверке, означает ли что-нибудь теневой вызов Фила из Панксатони — я заметил, что оба раза делал один и тот же шаг вручную: обучил пару моделей, проверил тестовый набор R², а затем сразу же перезапустил все с перекрестной проверкой, прежде чем доверять этому числу. В наборе данных с несколькими сотнями строк одно разделение поезда/теста может сделать более слабую модель победителем чисто случайно, и я не хотел продолжать ловить это вручную.
Поэтому я превратил чек в небольшой пакет: (https://github.com/DostonUr/modelcheck).
Что он делает
Вы передаете ему свои данные и словарь моделей, и он выполняет сравнение, которое я делал вручную:
из sklearn.linear_model импорт LinearReгрессия
из sklearn.ensemble импортировать RandomForestRegressor
из modelcheck импорта Compare_regressors
результат = сравнение_регрессоров(
Х, у,
модели={
«Линейная регрессия»: LinearRegrade(),
«Случайный лес»: RandomForestRegressor(n_estimators=300, random_state=42),
},
резюме = 5,
)
печать (результат)
В нем сообщается результат теста для каждой модели, 5-кратный разброс перекрестной проверки (среднее, стандартное, минимальное, максимальное) для каждой и — часть, которую я на самом деле построил.
