In [29]:
import keras
from importlib import reload
import os
import sys
sys.path.insert(0, "C:/Users/magaxels/AutoML")
import gazer; reload(gazer)
from gazer import GazerMetaLearner
In [30]:
from sklearn.datasets import load_digits
X, y = load_digits(return_X_y=True)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = \
train_test_split(X, y, test_size=0.25, random_state=0)
from sklearn.preprocessing import (MaxAbsScaler,
RobustScaler,
StandardScaler,
MinMaxScaler)
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
In [31]:
X_train.shape, y_train.shape, X_test.shape, y_test.shape
Out[31]:
In [32]:
learner = GazerMetaLearner(method='select',
estimators=['neuralnet', 'adaboost', 'logreg', 'svm'],
verbose=1)
In [33]:
learner.names
Out[33]:
In [34]:
learner.clf['neuralnet'].network
Out[34]:
In [35]:
learner.update('neuralnet', {'epochs': 100, 'n_hidden': 3, 'input_units': 500})
In [36]:
learner.clf['neuralnet'].network
Out[36]:
If the user fails to provide proper input then (providing self.verbose = 1) we provide the signature to the $__init__()$ method. This helps to determine allowed parameters and their values
In [37]:
learner.update('logreg', {'bla': 1})
In [38]:
learner.fit(X_train, y_train)
Out[38]:
Since verbose = 1 we get a lot of output. If you wish not to see it, then set verbose = 0. That way, gazer stays mute during the training process.
In [39]:
learner.verbose = 0
In [40]:
learner.fit(X_train, y_train)
Out[40]:
See Mom; no output!
In [41]:
learner.evaluate(X_test, y_test, metric='accuracy', get_loss=True)
Out[41]: