コード例 #1
0
 def test_iris(self):
     dataset = load_iris()
     score = np.mean(
         cross_val_score(DecisionTreeClassifier(tree_type=self.tree_type),
                         dataset.data,
                         dataset.target,
                         cv=10))
     self.assertTrue(score > 0.8)
     print('iris: tree_type: {}, score = {}'.format(self.tree_type, score))
コード例 #2
0
import numpy as np
from sklearn.cross_validation import train_test_split, cross_val_score
from sklearn.datasets import load_boston, load_breast_cancer, load_iris, make_moons, make_gaussian_quantiles
from sklearn.metrics import mean_squared_error

from mlxtend.evaluate import plot_decision_regions
import matplotlib.pyplot as plt

from pines.estimators import DecisionTreeRegressor, DecisionTreeClassifier
from pines.tree_builders import TreeType

if __name__ == '__main__':
    model = DecisionTreeClassifier(max_n_splits=3, max_depth=10, tree_type=TreeType.OBLIVIOUS)
    X, y = make_gaussian_quantiles(n_samples=10000, n_classes=4)

    model.fit(X, y)
    print(model.tree_)
    plot_decision_regions(X, y, clf=model, res=0.02, legend=2)
    plt.savefig('decision_boundary.png')
コード例 #3
0
import numpy as np
from sklearn.cross_validation import train_test_split, cross_val_score
from sklearn.datasets import load_boston, load_breast_cancer, load_iris, make_moons, make_gaussian_quantiles
from sklearn.metrics import mean_squared_error

from mlxtend.evaluate import plot_decision_regions
import matplotlib.pyplot as plt

from pines.estimators import DecisionTreeRegressor, DecisionTreeClassifier
from pines.tree_builders import TreeType

if __name__ == '__main__':
    model = DecisionTreeClassifier(max_n_splits=3,
                                   max_depth=10,
                                   tree_type=TreeType.OBLIVIOUS)
    X, y = make_gaussian_quantiles(n_samples=10000, n_classes=4)

    model.fit(X, y)
    print(model.tree_)
    plot_decision_regions(X, y, clf=model, res=0.02, legend=2)
    plt.savefig('decision_boundary.png')
algorithm to finish the construction.

The specific switch criterion is specified by `switch_criterion` option.
"""

import logging
import matplotlib.pyplot as plt

import numpy as np
from mlxtend.evaluate import plot_decision_regions
from sklearn.cross_validation import cross_val_score
from sklearn.datasets import make_moons, make_gaussian_quantiles

from pines.estimators import DecisionTreeClassifier
from pines.tree_builders import TreeType, ObliviousCartSwitchCriterionType, TreeBuilderObliviousCart

from pylab import rcParams
rcParams['figure.figsize'] = 20, 20

if __name__ == '__main__':
    logging.basicConfig(level=logging.DEBUG)
    TreeBuilderObliviousCart.debug = True
    model = DecisionTreeClassifier(max_n_splits=10, max_depth=20, tree_type=TreeType.OBLIVIOUS_CART,
                                   min_samples_per_leaf=30,
                                   switch_criterion=ObliviousCartSwitchCriterionType.OBLIVIOUS_WHILE_CAN)
    X, y = make_gaussian_quantiles(n_samples=2000, n_classes=4)
    model.fit(X, y)
    prediction = model.predict(X)
    plot_decision_regions(X, y, clf=model, res=0.02, legend=2)
    plt.savefig('decision_boundary.png')