@Override
protected void train(List<?> features, int label) {
final int y = label > 0 ? 1 : -1;
PredictionResult margin = calcScoreAndVariance(features);
float gamma = getGamma(margin, y);
if(gamma > 0.f) {// alpha = max(0, gamma)
float coeff = gamma * y;
update(features, coeff, gamma);