Comments 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
Когда достаточно простого класса Python — взять и начать управлять ML-экспериментами