Method: Rumale::Ensemble::AdaBoostClassifier#decision_function

Defined in:
lib/rumale/ensemble/ada_boost_classifier.rb

#decision_function(x) ⇒ Numo::DFloat

Calculate confidence scores for samples.



138
139
140
141
142
143
144
145
146
147
148
# File 'lib/rumale/ensemble/ada_boost_classifier.rb', line 138

def decision_function(x)
  check_sample_array(x)
  n_samples, = x.shape
  n_classes = @classes.size
  sum_probs = Numo::DFloat.zeros(n_samples, n_classes)
  @estimators.each do |tree|
    log_proba = Numo::NMath.log(tree.predict_proba(x).clip(1.0e-15, nil))
    sum_probs += (n_classes - 1) * (log_proba - 1.fdiv(n_classes) * Numo::DFloat[log_proba.sum(1)].transpose)
  end
  sum_probs /= @estimators.size
end