# Run the classifier
clf.fit(X_train, y_train)

# Identify training and test accuracy
y_train_pred = clf.predict(X_train)
y_test_pred = clf.predict(X_test)
ada_train = accuracy_score(y_train, y_train_pred)
ada_test = accuracy_score(y_test, y_test_pred)
print('Ada boost train/test accuracies %.3f/%.3f' % (ada_train, ada_test))

# Draw learning curve
drawLearningCurve(clf,
                  X_train,
                  X_test,
                  y_train,
                  y_test,
                  min_size=2000,
                  numpoints=10)
plt.savefig('Boosting Learning Curve.png', bbox_inches='tight')

# Print diagnostics
print(clf.best_score_)
print(clf.best_params_)
print(clf.best_estimator_)
print('gridscores:')
print(clf.grid_scores_)
scores = [x[1] for x in clf.grid_scores_]
print('scores:')
print(scores)
scores = np.array(scores).reshape(len(parameters['learning_rate']),
# Identify training accuracy
y_train_pred = clf.predict(X_transformed)
train_acc = np.sum(y_train == y_train_pred, axis=0) / X_train.shape[0]
print('Training accuracy: %.2f%%' % (train_acc * 100))

# Identify test set accuracy
y_test_pred = clf.predict(X_testTransformed)
test_acc = np.sum(y_test == y_test_pred, axis=0) / X_test.shape[0]
print('Test accuracy: %.2f%%' % (test_acc * 100))

# Draw learning curve
drawLearningCurve(clf,
                  X_transformed,
                  X_testTransformed,
                  y_train,
                  y_test,
                  min_size=100,
                  numpoints=50)
plt.savefig('Neural Network Learning Curve.png', bbox_inches='tight')

# Print diagnostics
print(clf.best_score_)
print(clf.best_params_)
print(clf.best_estimator_)
print('gridscores:')
print(clf.grid_scores_)

# Print diagnostics
scores = [x[1] for x in clf.grid_scores_]
print('scores:')