Sobes.tech
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 и используем массив, что быстрее и экономит память.