Back to questions
Иннотех
Middle+
4
Что ещё можно оптимизировать в методе predict? (создание DataFrame каждый раз)
Companies where asked
Answer from AI
sobes.tech AI
Если в методе predict каждый вызов создает новый DataFrame, это может быть неэффективно, особенно при большом количестве вызовов. Чтобы оптимизировать:
- Переиспользовать DataFrame: Если структура данных не меняется, можно создать DataFrame один раз и переиспользовать его, обновляя только необходимые значения.
- Использовать numpy-массивы: Если DataFrame создаётся только для передачи данных в модель, можно использовать numpy-массивы напрямую, что быстрее.
- Минимизировать преобразования: Избегать лишних преобразований и копирований данных.
Пример оптимизации:
import numpy as np
class ModelWrapper:
def __init__(self, model, feature_names):
self.model = model
self.feature_names = feature_names
self.input_array = np.zeros(len(feature_names))
def predict(self, features_dict):
for i, feature in enumerate(self.feature_names):
self.input_array[i] = features_dict.get(feature, 0)
return self.model.predict(self.input_array.reshape(1, -1))
Так мы избегаем создания DataFrame и используем массив, что быстрее и экономит память.