X = np.sort(5 * rng.rand(80, 1), axis=0) y = np.sin(X).ravel() y[::5] += 3 * (0.5 - rng.rand(16)) # Fit regression model regr_1 = DecisionTree(task='regression', criterion='mse', max_depth=1) regr_2 = DecisionTree(task='regression', criterion='mse', max_depth=15, min_samples_leaf=1) regr_xgb = XGBoostRegressor(n_estimators=50, max_depth=1, gamma=0.005, lambd=1.0, tree_method='hist') regr_1.fit(X, y) regr_2.fit(X, y) regr_xgb.fit(X, y) # Predict X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis] dfX_test = pd.DataFrame(X_test, columns=['X']) y_1 = np.array(regr_1.predict(dfX_test)) y_2 = np.array(regr_2.predict(dfX_test)) y_xgb = np.array(regr_xgb.predict(dfX_test)) # Plot the results plt.figure(1, (15, 10)) plt.scatter(X, y, s=20, edgecolor="black", c="darkorange", label="data") plt.plot(X_test, y_1, color="cornflowerblue", label="max_depth=2", linewidth=2) plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=15", linewidth=2)
# Create a random dataset rng = np.random.RandomState(205) X = np.sort(5 * rng.rand(80, 1), axis=0) y = np.sin(X).ravel() y[::5] += 3 * (0.5 - rng.rand(16)) # Fit regression model #regr_1 = DecisionTree(task='regression', criterion='mse', max_depth=1) dt = DecisionTree(task='regression', criterion='mse', max_depth=15, min_samples_leaf=3, verbose=True) rf_params = {'n_estimators': 100, 'max_depth': 15, 'min_samples_leaf': 5} rf = RandomForest(task='regression', **rf_params) skrf = skRFR(**rf_params) dt.fit(X, y) rf.fit(X, y) skrf.fit(X, y) # Predict X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis] y_dt = dt.predict(X_test) y_rf = rf.predict(X_test) y_skrf = skrf.predict(X_test) # Plot the results plt.figure(1, (15, 10)) plt.scatter(X, y, s=20, edgecolor="black", c="darkorange", label="data") plt.plot(X_test, y_dt, color="cornflowerblue", label="DecisionTree", linewidth=2)