Which supervised learning algorithm constructs a series of if-then rules by recursively partitioning the feature space?