Разница в скоростях SVC предсказания и решения - PullRequest
0 голосов
/ 02 ноября 2019

Имеет ли Предикат_проба какую-либо зависимость от функции решения под капотом 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

Я ожидаю, что предикат_процеда будет медленнее, чем функция_процедуры, однако результат обратный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...