Имеет ли Предикат_проба какую-либо зависимость от функции решения под капотом sklearn для SVC?
Я обучил модель SVC с вероятностью, установленной в Истину, при выполнении логического вывода для одной записи данных x.shape = (1,N_features), время, необходимое для получения результата из model.decision_function (x), намного медленнее, чем model.predict_proba (x). Я предполагаю, что предикат_процесса сначала вызовет решение_функции, а затем вычислит калиброванную вероятность, почему он будет работать быстрее, чем функция_ решения. Кроме того, при вычислении принятия решения она также исчерпывает память с большим набором данных и большим номером класса, что не относится к предсказанию_процедуры.
Существуют ли принципиальные различия в том, как реализованы эти два метода?
model = SVC(probability=True)
#class_num = 150, data_train.shape = (3000, 500)
model.fit(data_train, label_train)
start_time = time()
model.predict_proba(data_test[0].reshape(1, -1))
inference_time = (time() - start_time) # takes 0.002 seconds
start_time = time()
model.decision_function(data_test[0].reshape(1, -1))
inference_time = (time() - start_time) # takes 0.15 seconds
Я ожидаю, что предикат_процеда будет медленнее, чем функция_процедуры, однако результат обратный.