.. currentmodule:: sklearn.isotonic
The class :class:`IsotonicRegression` fits a non-decreasing real function to 1-dimensional data. It solves the following problem:
minimize \sum_i w_i (y_i - \hat{y}_i)^2
subject to \hat{y}_i \le \hat{y}_j whenever X_i \le X_j,
where the weights w_i are strictly positive, and both X and y are arbitrary real quantities.
The increasing parameter changes the constraint to \hat{y}_i \ge \hat{y}_j whenever X_i \le X_j. Setting it to 'auto' will automatically choose the constraint based on Spearman's rank correlation coefficient.
:class:`IsotonicRegression` produces a series of predictions \hat{y}_i for the training data which are the closest to the targets y in terms of mean squared error. These predictions are interpolated for predicting to unseen data. The predictions of :class:`IsotonicRegression` thus form a function that is piecewise linear: