Пример #1
0
from sympy.core.symbol import Symbol
import pandas
from nose.tools import assert_almost_equal

# Create some data
m = 10000
X = np.random.normal(size=(m, 10))
thresh = np.random.normal(size=10)
X_transformed = X * (X > thresh)
beta = np.random.normal(size=10)
y = np.dot(X_transformed, beta) + np.random.normal(size=m)

# Train a decision tree regressor
model = DecisionTreeRegressor()
model.fit(X, y)
print model.score(X, y)


# Inspect
def _sym_predict_decision_tree(model,
                               names,
                               current_node=0,
                               output_idx=0,
                               class_idx=0):
    left = model.tree_.children_left[current_node]
    right = model.tree_.children_right[current_node]
    if left == -1:
        assert right == -1
        left_expr = RealNumber(model.tree_.value[current_node, output_idx,
                                                 class_idx])
        right_expr = left_expr