import xgboost as xgb import testing as tm import unittest import pytest try: import matplotlib matplotlib.use('Agg') from matplotlib.axes import Axes from graphviz import Source except ImportError: pass pytestmark = pytest.mark.skipif( **tm.no_multiple(tm.no_matplotlib(), tm.no_graphviz())) dpath = 'demo/data/agaricus.txt.train' class TestPlotting(unittest.TestCase): def test_plotting(self): m = xgb.DMatrix(dpath) booster = xgb.train( { 'max_depth': 2, 'eta': 1, 'objective': 'binary:logistic' }, m, num_boost_round=2)
iris = load_iris() tr_d, te_d, tr_l, te_l = train_test_split(iris.data, iris.target, train_size=120) classifier = xgb.XGBClassifier(booster='gblinear', n_estimators=100) classifier.fit(tr_d, tr_l) preds = classifier.predict(te_d) labels = te_l err = sum([1 for p, l in zip(preds, labels) if p != l]) * 1.0 / len(te_l) assert err < 0.5 @pytest.mark.skipif(**tm.no_matplotlib()) @pytest.mark.skipif(**tm.no_graphviz()) def test_sklearn_plotting(): from sklearn.datasets import load_iris iris = load_iris() classifier = xgb.XGBClassifier() classifier.fit(iris.data, iris.target) import matplotlib matplotlib.use('Agg') from matplotlib.axes import Axes from graphviz import Source ax = xgb.plot_importance(classifier)
import numpy as np import xgboost as xgb import testing as tm import pytest try: import matplotlib matplotlib.use('Agg') from matplotlib.axes import Axes from graphviz import Source except ImportError: pass pytestmark = pytest.mark.skipif(**tm.no_multiple(tm.no_matplotlib(), tm.no_graphviz())) dpath = 'demo/data/agaricus.txt.train' class TestPlotting: def test_plotting(self): m = xgb.DMatrix(dpath) booster = xgb.train({'max_depth': 2, 'eta': 1, 'objective': 'binary:logistic'}, m, num_boost_round=2) ax = xgb.plot_importance(booster) assert isinstance(ax, Axes) assert ax.get_title() == 'Feature importance' assert ax.get_xlabel() == 'F score'