Писали ли свои классы?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
Ожидают, что есть практический опыт проектирования собственных классов под задачу, а не только использование готовых библиотек. Важно показать, что классы применялись для инкапсуляции логики, состояния и интерфейса. Хорошо, если есть примеры про пайплайны, датасеты, трансформеры, модели или сервисные обёртки.
Определение:
Свои классы — это пользовательские типы, которые объединяют данные и поведение в одном месте. В ML/AI их часто делают для загрузки и подготовки данных, обучения модели, валидации, логирования, инференса и конфигурации. Такой подход делает код более структурированным, переиспользуемым и удобным для поддержки.
Пример использования:
Например, можно написать класс для подготовки датасета, который хранит путь к данным, параметры очистки и метод, возвращающий подготовленные признаки.
class DataPreprocessor:
def __init__(self, fill_value=0):
self.fill_value = fill_value
def transform(self, df):
df = df.copy()
df = df.fillna(self.fill_value)
return df
preprocessor = DataPreprocessor(fill_value=-1)
clean_df = preprocessor.transform(raw_df)
Пояснение кода:
Код нужен, потому что пример связан с программированием.
Класс DataPreprocessor инкапсулирует параметр fill_value, который используется при очистке данных.
Метод transform принимает таблицу df, создаёт копию, чтобы не менять исходный объект, и заполняет пропуски заданным значением.
Дальше объект класса создаётся с нужной настройкой, после чего вызывается метод преобразования данных.
Ключевые моменты:
- Класс полезен, когда нужно хранить состояние и переиспользовать одинаковую логику.
- В ML-коде классы часто используют для препроцессинга, обучения, инференса и обёрток над внешними сервисами.
- Хороший класс имеет понятный интерфейс: что принимает на вход и что возвращает.
- Важно не усложнять: если достаточно функции, не стоит делать класс ради класса.
- На собеседовании ценят примеры, где класс улучшил поддержку, тестирование или переиспользование кода.