Skip to main content

DecisionTreeRegressor

#include <Skigen/Tree>

template <typename Scalar = double>
class Skigen::DecisionTreeRegressor(max_depth=-1, min_samples_split=2)

A decision tree regressor.

Uses MSE (Mean Squared Error) reduction as the splitting criterion. The prediction for a leaf node is the mean of the target values.

Mirrors sklearn.tree.DecisionTreeRegressor.


Parameters:

  • max_depth : int, default=-1 Maximum depth (int, default -1 for unlimited).

  • min_samples_split : int, default=2 Minimum samples to split (int, default 2).


Methods

fit(X, y)

Build a decision tree regressor from the training set.


predict(X)

Predict target values for X.


score(X, y)

Return the R2R^2 coefficient of determination.


Example

// Decision tree for regression
Eigen::VectorXd y_reg(split.X_train.rows());
for (Eigen::Index i = 0; i < y_reg.size(); ++i)
y_reg(i) = split.X_train(i, 0) * split.X_train(i, 0) + noise(rng);

Skigen::DecisionTreeRegressor<double> tree_reg(5);
tree_reg.fit(split.X_train, y_reg);

Eigen::VectorXd y_reg_test(split.X_test.rows());
for (Eigen::Index i = 0; i < y_reg_test.size(); ++i)
y_reg_test(i) = split.X_test(i, 0) * split.X_test(i, 0);

std::cout << "\n=== DecisionTreeRegressor (depth=5) ===\n";
std::cout << "R²: " << tree_reg.score(split.X_test, y_reg_test) << "\n";