Logo exampleΒΆ

This is a small example that produces the logo of the onelearn library.

../_images/sphx_glr_plot_logo_001.png

Out:

Plotting iterations:   0%|          | 0/4 [00:00<?, ?it/s]
Plotting iterations:  25%|##5       | 1/4 [00:02<00:06,  2.04s/it]
Plotting iterations:  50%|#####     | 2/4 [00:04<00:04,  2.11s/it]
Plotting iterations:  75%|#######5  | 3/4 [00:07<00:02,  2.31s/it]
Plotting iterations: 100%|##########| 4/4 [00:09<00:00,  2.42s/it]
Plotting iterations: 100%|##########| 4/4 [00:09<00:00,  2.44s/it]

import sys
import logging
import matplotlib.pyplot as plt
from tqdm import trange
from sklearn.datasets import make_moons
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split

sys.path.extend([".", ".."])
from onelearn import AMFClassifier
from experiments.plot import (
    get_mesh,
    plot_contour_binary_classif,
    plot_scatter_binary_classif,
)

logging.basicConfig(
    format="%(asctime)s %(message)s", datefmt="%Y/%m/%d %H:%M:%S", level=logging.INFO
)

n_samples = 100
n_features = 2
n_classes = 2
random_state = 123
save_iterations = [5, 10, 30, 70]

logging.info("Simulation of the data")
X, y = make_moons(n_samples=n_samples, noise=0.25, random_state=random_state)

logging.info("Train/Test splitting")
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.5, random_state=random_state
)

logging.info("Computation of the meshgrid")
xx, yy, X_mesh = get_mesh(X)


clf = AMFClassifier(
    n_classes=n_classes,
    n_estimators=100,
    random_state=random_state,
    split_pure=True,
    use_aggregation=True,
)

n_plots = len(save_iterations)
n_fig = 0
save_iterations = [0, *save_iterations]

plt.figure(figsize=(3, 3))

logging.info("Launching iterations")
bar = trange(n_plots, desc="Plotting iterations", leave=True)

norm = plt.Normalize(vmin=0.0, vmax=1.0)

for start, end in zip(save_iterations[:-1], save_iterations[1:]):
    X_iter = X_train[start:end]
    y_iter = y_train[start:end]
    clf.partial_fit(X_iter, y_iter)
    n_fig += 1
    Z = clf.predict_proba(X_mesh)[:, 1].reshape(xx.shape)
    ax = plt.subplot(2, 2, n_fig)
    score = roc_auc_score(y_test, clf.predict_proba(X_test)[:, 1])
    plot_contour_binary_classif(ax, xx, yy, Z, levels=5, norm=norm)

    plot_scatter_binary_classif(
        ax, xx, yy, X_train[:end], y_train[:end], s=15, norm=norm
    )
    bar.update(1)

bar.close()
plt.subplots_adjust(wspace=0, hspace=0)
plt.savefig("logo.png", transparent=True)
logging.info("Saved logo in file logo.png")

Total running time of the script: ( 0 minutes 9.866 seconds)

Gallery generated by Sphinx-Gallery