title: SVC's predict_proba and decision_function speed difference
body: <p>Does predict_proba have any dependency on decision_function under the hood of sklearn for SVC?</p>
  
  <p>I trained a SVC model with probability set to True, when performing inference on a single data entry x.shape = (1, N_features), the time requires to get result from model.decision_function(x) is much slower than model.predict_proba(x). I assume predict_proba would first call decision_function and then calculate the calibrated probability, why would it run faster than decision_function. Also when computing decision_function, it also runs out memory with large dataset and large class number, which is not the case for predict_proba. </p>
  
  <p>Are there some fundamental differences on how these two methods are implemented?</p>
  
  <pre class="lang-py prettyprint-override"><code>
  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
  </code></pre>
  
  <p>I expect the predict_proba to be slower than decision_function, however the result is the opposite.</p>