Как стать автором
Обновить

Когда достаточно простого класса Python — взять и начать управлять ML-экспериментами

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.8K
Всего голосов 7: ↑7 и ↓0+8
Комментарии5

Комментарии 5

Привет, спасибо за примеры.

Один вопрос, если на инициализации класса присваиваются константы, почему не сделать их атрибутами класса? Как то так:

class MLExperimentManager:
    data = None
    X_train = X_test = y_train = y_test = None
    model = None
    experiments_log = None
    log_path = 'experiments_log.csv'

По коду можно много поправить, но если работает, то, разумеется, лучше не трогать. ;)

Спасибо за обратную связь! Да, вы правы, действительно можно было константы задать в качестве атрибутов самого класса, но и без этого всё корректно работает :)

'Switch' по строкам не очень хороший паттерн. Очень дёшево использовать Enum. Тогда статические анализаторы подскажут пропущенные кейсы. А ещё лучше на каждый случай создать отдельный метод. В обоих вариантах съэкономите на документации, автокомлит расскажет пользователю про все возможности.

Хорошим тоном считается в ValueError написать какие случаи есть. С энумом это просто, с множественными методами исключение вообще не нужно.

load_data и создание класса всегда вызываются вместе. Напрашивается либо объединение или классовый метод возвращающий инстанс.

Evaluate и log в примерах всегда вызываются в паре. Есть ли причина их не объединить?

Зуб даю, что туда передадут неверные model_params

Зарегистрируйтесь на Хабре, чтобы оставить комментарий