From e538cf242c04fd4ecd2afbf484c7d3aa5e6203b3 Mon Sep 17 00:00:00 2001 From: rasbt Date: Fri, 20 Apr 2018 21:54:40 -0400 Subject: [PATCH 1/3] add examples links --- mlxtend/classifier/adaline.py | 3 +++ mlxtend/classifier/ensemble_vote.py | 3 +++ mlxtend/classifier/logistic_regression.py | 3 +++ mlxtend/classifier/multilayerperceptron.py | 3 +++ mlxtend/classifier/perceptron.py | 3 +++ mlxtend/classifier/softmax_regression.py | 3 +++ mlxtend/classifier/stacking_classification.py | 3 +++ mlxtend/classifier/stacking_cv_classification.py | 3 +++ mlxtend/cluster/kmeans.py | 3 +++ mlxtend/data/autompg.py | 3 +++ mlxtend/data/boston_housing.py | 3 +++ mlxtend/data/iris.py | 3 +++ mlxtend/data/local_mnist.py | 3 +++ mlxtend/data/mnist.py | 3 +++ mlxtend/data/multiplexer.py | 3 +++ mlxtend/data/three_blobs.py | 3 +++ mlxtend/data/wine.py | 3 +++ mlxtend/evaluate/bootstrap.py | 4 ++++ mlxtend/evaluate/bootstrap_outofbag.py | 4 ++++ mlxtend/evaluate/bootstrap_point632.py | 3 +++ mlxtend/evaluate/cochrans_q.py | 3 +++ mlxtend/evaluate/confusion_matrix.py | 3 +++ mlxtend/evaluate/feature_importance.py | 3 +++ mlxtend/evaluate/lift_score.py | 3 +++ mlxtend/evaluate/mcnemar.py | 10 ++++++++++ mlxtend/evaluate/permutation.py | 3 +++ mlxtend/evaluate/scoring.py | 3 +++ mlxtend/evaluate/ttest.py | 9 +++++++++ .../feature_extraction/linear_discriminant_analysis.py | 3 +++ .../feature_extraction/principal_component_analysis.py | 3 +++ mlxtend/feature_extraction/rbf_kernel_pca.py | 3 +++ mlxtend/feature_selection/column_selector.py | 3 +++ .../feature_selection/exhaustive_feature_selector.py | 3 +++ .../feature_selection/sequential_feature_selector.py | 3 +++ mlxtend/file_io/find_filegroups.py | 3 +++ mlxtend/file_io/find_files.py | 3 +++ mlxtend/frequent_patterns/apriori.py | 7 +++++++ mlxtend/frequent_patterns/association_rules.py | 3 +++ mlxtend/math/counting.py | 7 +++++++ mlxtend/plotting/checkerboard.py | 3 +++ mlxtend/plotting/decision_regions.py | 9 +++++++-- mlxtend/plotting/ecdf.py | 3 +++ mlxtend/plotting/enrichment_plot.py | 3 +++ mlxtend/plotting/learning_curves.py | 3 +++ mlxtend/plotting/plot_confusion_matrix.py | 3 +++ mlxtend/plotting/plot_linear_regression.py | 3 +++ mlxtend/plotting/plot_sequential_feature_selection.py | 4 ++++ mlxtend/plotting/remove_chartjunk.py | 3 +++ mlxtend/plotting/scatter.py | 3 +++ mlxtend/plotting/stacked_barplot.py | 3 +++ mlxtend/preprocessing/copy_transformer.py | 7 ++++++- mlxtend/preprocessing/dense_transformer.py | 8 +++++++- mlxtend/preprocessing/mean_centering.py | 4 ++++ mlxtend/preprocessing/onehot.py | 3 +++ mlxtend/preprocessing/scaling.py | 6 ++++++ mlxtend/preprocessing/shuffle.py | 7 ++++++- mlxtend/preprocessing/transactionencoder.py | 3 +++ mlxtend/regressor/linear_regression.py | 3 +++ mlxtend/regressor/stacking_cv_regression.py | 3 +++ mlxtend/regressor/stacking_regression.py | 2 ++ mlxtend/text/names.py | 3 +++ mlxtend/text/tokenizer.py | 8 ++++++++ 62 files changed, 232 insertions(+), 5 deletions(-) diff --git a/mlxtend/classifier/adaline.py b/mlxtend/classifier/adaline.py index b0cea1de6..f9db61324 100644 --- a/mlxtend/classifier/adaline.py +++ b/mlxtend/classifier/adaline.py @@ -52,6 +52,9 @@ class Adaline(_BaseModel, _IterativeModel, _Classifier): cost_ : list Sum of squared errors after each epoch. + For more examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/Adaline/ + """ def __init__(self, eta=0.01, epochs=50, minibatches=None, random_seed=None, diff --git a/mlxtend/classifier/ensemble_vote.py b/mlxtend/classifier/ensemble_vote.py index 51ae04ad1..aa28d2617 100644 --- a/mlxtend/classifier/ensemble_vote.py +++ b/mlxtend/classifier/ensemble_vote.py @@ -92,6 +92,9 @@ class EnsembleVoteClassifier(BaseEstimator, ClassifierMixin, TransformerMixin): >>> print(eclf3.predict(X)) [1 1 1 2 2 2] >>> + + For more usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/EnsembleVoteClassifier/ """ def __init__(self, clfs, voting='hard', weights=None, verbose=0, refit=True): diff --git a/mlxtend/classifier/logistic_regression.py b/mlxtend/classifier/logistic_regression.py index 5692494b7..c82563885 100644 --- a/mlxtend/classifier/logistic_regression.py +++ b/mlxtend/classifier/logistic_regression.py @@ -55,6 +55,9 @@ class LogisticRegression(_BaseModel, _IterativeModel, _Classifier): List of floats with cross_entropy cost (sgd or gd) for every epoch. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/LogisticRegression/ + """ def __init__(self, eta=0.01, epochs=50, l2_lambda=0.0, minibatches=1, diff --git a/mlxtend/classifier/multilayerperceptron.py b/mlxtend/classifier/multilayerperceptron.py index 3f6364d10..e38e6c8e2 100644 --- a/mlxtend/classifier/multilayerperceptron.py +++ b/mlxtend/classifier/multilayerperceptron.py @@ -72,6 +72,9 @@ class MultiLayerPerceptron(_BaseModel, _IterativeModel, List of floats; the mean categorical cross entropy cost after each epoch. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/MultiLayerPerceptron/ + """ def __init__(self, eta=0.5, epochs=50, hidden_layers=[50], diff --git a/mlxtend/classifier/perceptron.py b/mlxtend/classifier/perceptron.py index b457bfeae..2b76fefb2 100644 --- a/mlxtend/classifier/perceptron.py +++ b/mlxtend/classifier/perceptron.py @@ -45,6 +45,9 @@ class Perceptron(_BaseModel, _IterativeModel, _Classifier): cost_ : list Number of misclassifications in every epoch. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/Perceptron/ + """ def __init__(self, eta=0.1, epochs=50, random_seed=None, print_progress=0): diff --git a/mlxtend/classifier/softmax_regression.py b/mlxtend/classifier/softmax_regression.py index 19ff184c5..b04980d79 100644 --- a/mlxtend/classifier/softmax_regression.py +++ b/mlxtend/classifier/softmax_regression.py @@ -58,6 +58,9 @@ class SoftmaxRegression(_BaseModel, _IterativeModel, _Classifier, _MultiClass): cost_ : list List of floats, the average cross_entropy for each epoch. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/SoftmaxRegression/ + """ def __init__(self, eta=0.01, epochs=50, l2=0.0, diff --git a/mlxtend/classifier/stacking_classification.py b/mlxtend/classifier/stacking_classification.py index ef6e6f8b2..aebb3289e 100644 --- a/mlxtend/classifier/stacking_classification.py +++ b/mlxtend/classifier/stacking_classification.py @@ -78,6 +78,9 @@ class StackingClassifier(BaseEstimator, ClassifierMixin, TransformerMixin): number of samples in training data and n_classifiers is the number of classfiers. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/StackingClassifier/ + """ def __init__(self, classifiers, meta_classifier, use_probas=False, average_probas=False, verbose=0, diff --git a/mlxtend/classifier/stacking_cv_classification.py b/mlxtend/classifier/stacking_cv_classification.py index 60c41e36a..ca903652e 100644 --- a/mlxtend/classifier/stacking_cv_classification.py +++ b/mlxtend/classifier/stacking_cv_classification.py @@ -109,6 +109,9 @@ class StackingCVClassifier(BaseEstimator, ClassifierMixin, TransformerMixin): number of samples in training data and n_classifiers is the number of classfiers. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/StackingCVClassifier/ + """ def __init__(self, classifiers, meta_classifier, use_probas=False, cv=2, diff --git a/mlxtend/cluster/kmeans.py b/mlxtend/cluster/kmeans.py index 9d4c6defa..7d3339ec8 100644 --- a/mlxtend/cluster/kmeans.py +++ b/mlxtend/cluster/kmeans.py @@ -52,6 +52,9 @@ class Kmeans(_BaseModel, _Cluster, _IterativeModel): iterations_ : int Number of iterations until convergence. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/classifier/Kmeans/ + """ def __init__(self, k, max_iter=10, diff --git a/mlxtend/data/autompg.py b/mlxtend/data/autompg.py index b00c3c474..a0d042d44 100644 --- a/mlxtend/data/autompg.py +++ b/mlxtend/data/autompg.py @@ -39,6 +39,9 @@ def autompg_data(): and 8 feature columns (6 rows with NaNs removed). y is a 1-dimensional array of the target MPG values. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/autompg_data/ + """ tmp = np.genfromtxt(fname=DATA_PATH, delimiter=',') X, y = tmp[:, :-1], tmp[:, -1] diff --git a/mlxtend/data/boston_housing.py b/mlxtend/data/boston_housing.py index b1918e4e5..984ab45b6 100644 --- a/mlxtend/data/boston_housing.py +++ b/mlxtend/data/boston_housing.py @@ -47,6 +47,9 @@ def boston_housing_data(): and 13 feature columns. y is a 1-dimensional array of the continuous target variable MEDV + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/boston_housing_data/ + """ tmp = np.genfromtxt(fname=DATA_PATH, delimiter=',', dtype=float) print(tmp.shape) diff --git a/mlxtend/data/iris.py b/mlxtend/data/iris.py index 119333612..c47f0c4e1 100644 --- a/mlxtend/data/iris.py +++ b/mlxtend/data/iris.py @@ -36,6 +36,9 @@ def iris_data(): petal length, and petal width. y is a 1-dimensional array of the class labels {0, 1, 2} + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/iris_data/ + """ tmp = np.genfromtxt(fname=DATA_PATH, delimiter=',') X, y = tmp[:, :-1], tmp[:, -1] diff --git a/mlxtend/data/local_mnist.py b/mlxtend/data/local_mnist.py index 834ff55ba..748fe7be8 100644 --- a/mlxtend/data/local_mnist.py +++ b/mlxtend/data/local_mnist.py @@ -27,6 +27,9 @@ def loadlocal_mnist(images_path, labels_path): labels : [n_samples] numpy array Target class labels + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/loadlocal_mnist/ + """ with open(labels_path, 'rb') as lbpath: magic, n = struct.unpack('>II', diff --git a/mlxtend/data/mnist.py b/mlxtend/data/mnist.py index e563679de..35b4c0bcc 100644 --- a/mlxtend/data/mnist.py +++ b/mlxtend/data/mnist.py @@ -26,6 +26,9 @@ def mnist_data(): 784 pixel feature vectors. y contains the 10 unique class labels 0-9. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/mnist_data/ + """ tmp = np.genfromtxt(fname=DATA_PATH, delimiter=',') X, y = tmp[:, :-1], tmp[:, -1] diff --git a/mlxtend/data/multiplexer.py b/mlxtend/data/multiplexer.py index e095db1d7..21be33797 100644 --- a/mlxtend/data/multiplexer.py +++ b/mlxtend/data/multiplexer.py @@ -60,6 +60,9 @@ def make_multiplexer_dataset(address_bits=2, sample_size=100, All features are binary (values in {0, 1}). y is a 1-dimensional array of class labels in {0, 1}. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/make_multiplexer_dataset + """ if not isinstance(address_bits, int): diff --git a/mlxtend/data/three_blobs.py b/mlxtend/data/three_blobs.py index 973ac8ece..3972d9bb1 100644 --- a/mlxtend/data/three_blobs.py +++ b/mlxtend/data/three_blobs.py @@ -26,6 +26,9 @@ def three_blobs_data(): and 2 feature columns. y is a 1-dimensional array of the 3 suggested cluster labels 0, 1, 2 + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/three_blobs_data + """ tmp = np.genfromtxt(fname=DATA_PATH, delimiter=',') X, y = tmp[:, :-1], tmp[:, -1] diff --git a/mlxtend/data/wine.py b/mlxtend/data/wine.py index 6cacef6ba..a24e30665 100644 --- a/mlxtend/data/wine.py +++ b/mlxtend/data/wine.py @@ -43,6 +43,9 @@ def wine_data(): and 13 feature columns. y is a 1-dimensional array of the 3 class labels 0, 1, 2 + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/data/wine_data + """ tmp = np.loadtxt(DATA_PATH, delimiter=',') X, y = tmp[:, :-1], tmp[:, -1] diff --git a/mlxtend/evaluate/bootstrap.py b/mlxtend/evaluate/bootstrap.py index 143852340..c9d86dc68 100644 --- a/mlxtend/evaluate/bootstrap.py +++ b/mlxtend/evaluate/bootstrap.py @@ -70,6 +70,10 @@ def bootstrap(x, func, num_rounds=1000, ci=0.95, ddof=1, seed=None): ... ci_bounds[1])) Mean: 5.03, SE: +/- 0.11, CI95: [4.80, 5.26] >>> + + For more usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/bootstrap/ + """ if ci <= 0 or ci >= 1: raise AttributeError('ci must be in range (0, 1)') diff --git a/mlxtend/evaluate/bootstrap_outofbag.py b/mlxtend/evaluate/bootstrap_outofbag.py index 380736b31..709904af9 100644 --- a/mlxtend/evaluate/bootstrap_outofbag.py +++ b/mlxtend/evaluate/bootstrap_outofbag.py @@ -30,6 +30,10 @@ class BootstrapOutOfBag(object): test_idx : ndarray The testing set indices for that split. + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/BootstrapOutOfBag/ + """ def __init__(self, n_splits=200, random_seed=None): diff --git a/mlxtend/evaluate/bootstrap_point632.py b/mlxtend/evaluate/bootstrap_point632.py index 2cb54daae..6aba1be6e 100644 --- a/mlxtend/evaluate/bootstrap_point632.py +++ b/mlxtend/evaluate/bootstrap_point632.py @@ -96,6 +96,9 @@ def bootstrap_point632_score(estimator, X, y, n_splits=200, >>> print('95%% Confidence interval: [%.2f, %.2f]' % (lower, upper)) 95% Confidence interval: [0.90, 0.98] + For more usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/bootstrap_point632_score/ + """ if not isinstance(n_splits, int) or n_splits < 1: raise ValueError('Number of splits must be' diff --git a/mlxtend/evaluate/cochrans_q.py b/mlxtend/evaluate/cochrans_q.py index 1baf30a82..33467d65a 100644 --- a/mlxtend/evaluate/cochrans_q.py +++ b/mlxtend/evaluate/cochrans_q.py @@ -30,6 +30,9 @@ def cochrans_q(y_target, *y_model_predictions): q, p : float or None, float Returns the Q (chi-squared) value and the p-value + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/cochrans_q/ + """ num_models = len(y_model_predictions) diff --git a/mlxtend/evaluate/confusion_matrix.py b/mlxtend/evaluate/confusion_matrix.py index b5c27dc14..b730cef07 100644 --- a/mlxtend/evaluate/confusion_matrix.py +++ b/mlxtend/evaluate/confusion_matrix.py @@ -31,6 +31,9 @@ def confusion_matrix(y_target, y_predicted, binary=False, positive_label=1): ---------- mat : array-like, shape=[n_classes, n_classes] + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/confusion_matrix/ + """ if not isinstance(y_target, np.ndarray): targ_tmp = np.asarray(y_target) diff --git a/mlxtend/evaluate/feature_importance.py b/mlxtend/evaluate/feature_importance.py index d90435a3c..3c1cf67ca 100644 --- a/mlxtend/evaluate/feature_importance.py +++ b/mlxtend/evaluate/feature_importance.py @@ -53,6 +53,9 @@ def feature_importance_permutation(X, y, predict_method, the feature importance for each repetition. If num_rounds=1, it contains the same values as the first array, mean_importance_vals. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/feature_importance_permutation/ + """ if not isinstance(num_rounds, int): diff --git a/mlxtend/evaluate/lift_score.py b/mlxtend/evaluate/lift_score.py index 4b5a0cef4..d8e64a524 100644 --- a/mlxtend/evaluate/lift_score.py +++ b/mlxtend/evaluate/lift_score.py @@ -38,6 +38,9 @@ def lift_score(y_target, y_predicted, binary=True, positive_label=1): score : float Lift score in the range [0, $\infty$] + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/lift_score/ + """ if not isinstance(y_target, np.ndarray): diff --git a/mlxtend/evaluate/mcnemar.py b/mlxtend/evaluate/mcnemar.py index 34ec777e7..34016bf8e 100644 --- a/mlxtend/evaluate/mcnemar.py +++ b/mlxtend/evaluate/mcnemar.py @@ -31,6 +31,10 @@ def mcnemar_table(y_target, y_model1, y_model2): b: tb[0, 1]: # of samples that model 1 got right and model 2 got wrong c: tb[1, 0]: # of samples that model 2 got right and model 1 got wrong d: tb[1, 1]: # of samples that both models predicted incorrectly + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_table/ + """ for ary in (y_target, y_model1, y_model2): if len(ary.shape) != 1: @@ -108,6 +112,9 @@ def mcnemar_tables(y_target, *y_model_predictions): - tb[1, 0]: # of samples that model b got right and model a got wrong - tb[1, 1]: # of samples that both models predicted incorrectly + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_tables/ + """ model_lens = set() y_model_predictions = list(y_model_predictions) @@ -174,6 +181,9 @@ def mcnemar(ary, corrected=True, exact=False): Returns the chi-squared value and the p-value; if `exact=True` (default: `False`), `chi2` is `None` + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar/ + """ if not ary.shape == (2, 2): diff --git a/mlxtend/evaluate/permutation.py b/mlxtend/evaluate/permutation.py index b76cf2027..3f2489e05 100644 --- a/mlxtend/evaluate/permutation.py +++ b/mlxtend/evaluate/permutation.py @@ -60,6 +60,9 @@ def permutation_test(x, y, func='x_mean != y_mean', method='exact', ---------- p-value under the null hypothesis + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/permutation_test/ + """ if method not in ('approximate', 'exact'): diff --git a/mlxtend/evaluate/scoring.py b/mlxtend/evaluate/scoring.py index 577b81da4..2fc660a73 100644 --- a/mlxtend/evaluate/scoring.py +++ b/mlxtend/evaluate/scoring.py @@ -66,6 +66,9 @@ def scoring(y_target, y_predicted, metric='error', ------------ score : float + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/scoring/ + """ implemented = {'error', 'accuracy', diff --git a/mlxtend/evaluate/ttest.py b/mlxtend/evaluate/ttest.py index 4581984ed..0f33dbc3c 100644 --- a/mlxtend/evaluate/ttest.py +++ b/mlxtend/evaluate/ttest.py @@ -71,6 +71,9 @@ def paired_ttest_resampled(estimator1, estimator2, X, y, and accept that there are significant differences in the two compared models. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/paired_ttest_resampled/ + """ if (not isinstance(test_size, int) and not isinstance(test_size, float)): raise ValueError('train_size must be of ' @@ -177,6 +180,9 @@ def paired_ttest_kfold_cv(estimator1, estimator2, X, y, and accept that there are significant differences in the two compared models. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/paired_ttest_kfold_cv/ + """ kf = KFold(n_splits=cv, random_state=random_seed, shuffle=shuffle) @@ -266,6 +272,9 @@ def paired_ttest_5x2cv(estimator1, estimator2, X, y, and accept that there are significant differences in the two compared models. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/evaluate/paired_ttest_5x2cv/ + """ rng = np.random.RandomState(random_seed) diff --git a/mlxtend/feature_extraction/linear_discriminant_analysis.py b/mlxtend/feature_extraction/linear_discriminant_analysis.py index ac3ba04a6..dde645e61 100644 --- a/mlxtend/feature_extraction/linear_discriminant_analysis.py +++ b/mlxtend/feature_extraction/linear_discriminant_analysis.py @@ -29,6 +29,9 @@ class LinearDiscriminantAnalysis(_BaseModel): e_vecs_ : array-like, shape=[n_features] Eigenvectors in sorted order. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_extraction/LinearDiscriminantAnalysis/ + """ def __init__(self, n_discriminants=None): if n_discriminants is not None and n_discriminants < 1: diff --git a/mlxtend/feature_extraction/principal_component_analysis.py b/mlxtend/feature_extraction/principal_component_analysis.py index c24a75798..a02843882 100644 --- a/mlxtend/feature_extraction/principal_component_analysis.py +++ b/mlxtend/feature_extraction/principal_component_analysis.py @@ -41,6 +41,9 @@ class PrincipalComponentAnalysis(_BaseModel): 'svd' solver; this does not affect the interpretation of the loadings though. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_extraction/PrincipalComponentAnalysis/ + """ def __init__(self, n_components=None, solver='eigen'): valid_solver = {'eigen', 'svd'} diff --git a/mlxtend/feature_extraction/rbf_kernel_pca.py b/mlxtend/feature_extraction/rbf_kernel_pca.py index ead68bdf0..e770b7240 100644 --- a/mlxtend/feature_extraction/rbf_kernel_pca.py +++ b/mlxtend/feature_extraction/rbf_kernel_pca.py @@ -35,6 +35,9 @@ class RBFKernelPCA(_BaseModel): X_projected_ : array-like, shape=[n_samples, n_components] Training samples projected along the component axes. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_extraction/RBFKernelPCA/ + """ def __init__(self, gamma=15.0, n_components=None, copy_X=True): if n_components is not None and n_components < 1: diff --git a/mlxtend/feature_selection/column_selector.py b/mlxtend/feature_selection/column_selector.py index 63f277747..446823fde 100644 --- a/mlxtend/feature_selection/column_selector.py +++ b/mlxtend/feature_selection/column_selector.py @@ -31,6 +31,9 @@ def __init__(self, cols=None, drop_axis=False): array with shape (n_samples, 1), drop_axis=True will return an aray with shape (n_samples,). + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_selection/ColumnSelector/ + """ self.cols = cols self.drop_axis = drop_axis diff --git a/mlxtend/feature_selection/exhaustive_feature_selector.py b/mlxtend/feature_selection/exhaustive_feature_selector.py index 41a2f3192..83398b853 100644 --- a/mlxtend/feature_selection/exhaustive_feature_selector.py +++ b/mlxtend/feature_selection/exhaustive_feature_selector.py @@ -104,6 +104,9 @@ class ExhaustiveFeatureSelector(BaseEstimator, MetaEstimatorMixin): 'cv_scores' (list individual cross-validation scores) 'avg_score' (average cross-validation score) + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_selection/ExhaustiveFeatureSelector/ + """ def __init__(self, estimator, min_features=1, max_features=1, print_progress=True, scoring='accuracy', diff --git a/mlxtend/feature_selection/sequential_feature_selector.py b/mlxtend/feature_selection/sequential_feature_selector.py index 3f7fa8903..3fb1af33f 100644 --- a/mlxtend/feature_selection/sequential_feature_selector.py +++ b/mlxtend/feature_selection/sequential_feature_selector.py @@ -120,6 +120,9 @@ class SequentialFeatureSelector(BaseEstimator, MetaEstimatorMixin): 'cv_scores' (list individual cross-validation scores) 'avg_score' (average cross-validation score) + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_selection/SequentialFeatureSelector/ + """ def __init__(self, estimator, k_features=1, forward=True, floating=False, diff --git a/mlxtend/file_io/find_filegroups.py b/mlxtend/file_io/find_filegroups.py index 59c542d32..dc76bc9a1 100644 --- a/mlxtend/file_io/find_filegroups.py +++ b/mlxtend/file_io/find_filegroups.py @@ -48,6 +48,9 @@ def find_filegroups(paths, substring='', extensions=None, validity_check=True, found in the first directory listed in `paths` (without file extension). + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/file_io/find_filegroups/ + """ n = len(paths) diff --git a/mlxtend/file_io/find_files.py b/mlxtend/file_io/find_files.py index f20c703c2..544d4110a 100644 --- a/mlxtend/file_io/find_files.py +++ b/mlxtend/file_io/find_files.py @@ -36,6 +36,9 @@ def find_files(substring, path, recursive=False, results : `list` List of the matched files. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/file_io/find_files/ + """ def check_file(f, path): if not (ignore_substring and ignore_substring in f): diff --git a/mlxtend/frequent_patterns/apriori.py b/mlxtend/frequent_patterns/apriori.py index 923b00179..5bad59c59 100644 --- a/mlxtend/frequent_patterns/apriori.py +++ b/mlxtend/frequent_patterns/apriori.py @@ -34,6 +34,10 @@ def generate_new_combinations(old_combinations): of item type ids in the ascending order. No combination other than generated do not have a chance to get enough support + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/generate_new_combinations/ + """ items_types_in_previous_step = np.unique(old_combinations.flatten()) @@ -83,6 +87,9 @@ def apriori(df, min_support=0.5, use_colnames=False, max_len=None): that are >= `min_support` and < than `max_len` (if `max_len` is not None). + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/apriori/ + """ X = df.values diff --git a/mlxtend/frequent_patterns/association_rules.py b/mlxtend/frequent_patterns/association_rules.py index 9c2bbbfa3..dc6f2fbc9 100644 --- a/mlxtend/frequent_patterns/association_rules.py +++ b/mlxtend/frequent_patterns/association_rules.py @@ -48,6 +48,9 @@ def association_rules(df, metric="confidence", min_threshold=0.8): of all rules for which metric(rule) >= min_threshold. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/association_rules/ + """ # check for mandatory columns diff --git a/mlxtend/math/counting.py b/mlxtend/math/counting.py index 4687c9414..a62e9ca82 100644 --- a/mlxtend/math/counting.py +++ b/mlxtend/math/counting.py @@ -31,6 +31,10 @@ def num_combinations(n, k, with_replacement=False): ---------- comb : `int` Number of possible combinations. + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/math/num_combinations/ + """ if with_replacement: numerator = factorial(n + k - 1) @@ -60,6 +64,9 @@ def num_permutations(n, k, with_replacement=False): permut : `int` Number of possible permutations. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/math/num_permutations/ + """ if with_replacement: permut = n**k diff --git a/mlxtend/plotting/checkerboard.py b/mlxtend/plotting/checkerboard.py index bece4e025..67567c59b 100644 --- a/mlxtend/plotting/checkerboard.py +++ b/mlxtend/plotting/checkerboard.py @@ -53,6 +53,9 @@ def checkerboard_plot(ary, ----------- fig : matplotlib Figure object. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/checkerboard_plot/ + """ fig, ax = subplots(figsize=figsize) diff --git a/mlxtend/plotting/decision_regions.py b/mlxtend/plotting/decision_regions.py index f98163251..77a730d96 100644 --- a/mlxtend/plotting/decision_regions.py +++ b/mlxtend/plotting/decision_regions.py @@ -17,9 +17,11 @@ def get_feature_range_mask(X, filler_feature_values=None, filler_feature_ranges=None): - '''Function that constucts a boolean array to get rid of samples + """ + Function that constucts a boolean array to get rid of samples in X that are outside the feature range specified by filler_feature_values - and filler_feature_ranges''' + and filler_feature_ranges + """ if not isinstance(X, np.ndarray) or not len(X.shape) == 2: raise ValueError('X must be a 2D array') @@ -117,6 +119,9 @@ def plot_decision_regions(X, y, clf, --------- ax : matplotlib.axes.Axes object + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/plot_decision_regions/ + """ check_Xy(X, y, y_int=True) # Validate X and y arrays diff --git a/mlxtend/plotting/ecdf.py b/mlxtend/plotting/ecdf.py index f7adb4b55..3aa1f5f06 100644 --- a/mlxtend/plotting/ecdf.py +++ b/mlxtend/plotting/ecdf.py @@ -49,6 +49,9 @@ def ecdf(x, y_label='ECDF', x_label=None, ax=None, percentile=None, the feature threshold at a percentile threshold or None if `percentile=None` + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/ecdf/ + """ if ax is None: ax = plt.gca() diff --git a/mlxtend/plotting/enrichment_plot.py b/mlxtend/plotting/enrichment_plot.py index 2793d80c5..3ba1972f7 100644 --- a/mlxtend/plotting/enrichment_plot.py +++ b/mlxtend/plotting/enrichment_plot.py @@ -60,6 +60,9 @@ def enrichment_plot(df, colors='bgrkcy', markers=' ', linestyles='-', ---------- ax : matplotlib axis + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/enrichment_plot/ + """ if isinstance(df, pd.Series): df_temp = pd.DataFrame(df) diff --git a/mlxtend/plotting/learning_curves.py b/mlxtend/plotting/learning_curves.py index a1688c712..4aa2bf47f 100644 --- a/mlxtend/plotting/learning_curves.py +++ b/mlxtend/plotting/learning_curves.py @@ -59,6 +59,9 @@ def plot_learning_curves(X_train, y_train, --------- errors : (training_error, test_error): tuple of lists + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/learning_curves/ + """ if scoring != 'misclassification error': from sklearn import metrics diff --git a/mlxtend/plotting/plot_confusion_matrix.py b/mlxtend/plotting/plot_confusion_matrix.py index c0556f96a..4321e20aa 100644 --- a/mlxtend/plotting/plot_confusion_matrix.py +++ b/mlxtend/plotting/plot_confusion_matrix.py @@ -32,6 +32,9 @@ def plot_confusion_matrix(conf_mat, fig, ax : matplotlib.pyplot subplot objects Figure and axis elements of the subplot. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/plot_confusion_matrix/ + """ fig, ax = plt.subplots(figsize=figsize) if cmap is None: diff --git a/mlxtend/plotting/plot_linear_regression.py b/mlxtend/plotting/plot_linear_regression.py index e4ef95312..1eca4974a 100644 --- a/mlxtend/plotting/plot_linear_regression.py +++ b/mlxtend/plotting/plot_linear_regression.py @@ -49,6 +49,9 @@ def plot_linear_regression(X, y, model=LinearRegression(), regression_fit : tuple intercept, slope, corr_coeff (float, float, float) + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/plot_linear_regression/ + """ if isinstance(X, list): X = np.asarray(X, dtype=np.float) diff --git a/mlxtend/plotting/plot_sequential_feature_selection.py b/mlxtend/plotting/plot_sequential_feature_selection.py index e06c93659..14f0b5bf1 100644 --- a/mlxtend/plotting/plot_sequential_feature_selection.py +++ b/mlxtend/plotting/plot_sequential_feature_selection.py @@ -8,6 +8,7 @@ import matplotlib.pyplot as plt + def plot_sequential_feature_selection(metric_dict, kind='std_dev', color='blue', @@ -43,6 +44,9 @@ def plot_sequential_feature_selection(metric_dict, ---------- fig : matplotlib.pyplot.figure() object + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/plot_sequential_feature_selection/ + """ allowed = {'std_dev', 'std_err', 'ci', None} diff --git a/mlxtend/plotting/remove_chartjunk.py b/mlxtend/plotting/remove_chartjunk.py index 3ba19d4e0..15dca1ac1 100644 --- a/mlxtend/plotting/remove_chartjunk.py +++ b/mlxtend/plotting/remove_chartjunk.py @@ -24,6 +24,9 @@ def remove_borders(axes, left=False, bottom=False, right=True, top=True): top : bool (default: `True`) Hide top axis spine if True. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/remove_chartjunk/ + """ for ax in axes: ax.spines["top"].set_visible(not top) diff --git a/mlxtend/plotting/scatter.py b/mlxtend/plotting/scatter.py index 1a4932724..e6e7747e6 100644 --- a/mlxtend/plotting/scatter.py +++ b/mlxtend/plotting/scatter.py @@ -45,6 +45,9 @@ def category_scatter(x, y, label_col, data, --------- fig : matplotlig.pyplot figure object + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/category_scatter/ + """ fig = plt.figure() color_gen = cycle(colors) diff --git a/mlxtend/plotting/stacked_barplot.py b/mlxtend/plotting/stacked_barplot.py index 7cab0136e..10d9ae2be 100644 --- a/mlxtend/plotting/stacked_barplot.py +++ b/mlxtend/plotting/stacked_barplot.py @@ -43,6 +43,9 @@ def stacked_barplot(df, bar_width='auto', colors='bgrcky', --------- fig : matplotlib.pyplot figure object + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/plotting/stacked_barplot/ + """ # Setting the positions and width for the bars pos = np.array(range(len(df.index))) diff --git a/mlxtend/preprocessing/copy_transformer.py b/mlxtend/preprocessing/copy_transformer.py index 9271c14de..1266ea766 100644 --- a/mlxtend/preprocessing/copy_transformer.py +++ b/mlxtend/preprocessing/copy_transformer.py @@ -12,7 +12,12 @@ class CopyTransformer(BaseEstimator): - """Transformer that returns a copy of the input array""" + """Transformer that returns a copy of the input array + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/CopyTransformer/ + + """ def __init__(self): pass diff --git a/mlxtend/preprocessing/dense_transformer.py b/mlxtend/preprocessing/dense_transformer.py index ea2659261..fd1937810 100644 --- a/mlxtend/preprocessing/dense_transformer.py +++ b/mlxtend/preprocessing/dense_transformer.py @@ -12,7 +12,13 @@ class DenseTransformer(BaseEstimator): - """Convert a sparse array into a dense array.""" + """ + Convert a sparse array into a dense array. + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/DenseTransformer/ + + """ def __init__(self, return_copy=True): self.return_copy = return_copy diff --git a/mlxtend/preprocessing/mean_centering.py b/mlxtend/preprocessing/mean_centering.py index baa177290..228d3ae83 100644 --- a/mlxtend/preprocessing/mean_centering.py +++ b/mlxtend/preprocessing/mean_centering.py @@ -18,6 +18,10 @@ class MeanCenterer(object): col_means : numpy.ndarray [n_columns] NumPy array storing the mean values for centering after fitting the MeanCenterer object. + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/MeanCenterer/ + """ def __init__(self): pass diff --git a/mlxtend/preprocessing/onehot.py b/mlxtend/preprocessing/onehot.py index 469709838..fa559a4bf 100644 --- a/mlxtend/preprocessing/onehot.py +++ b/mlxtend/preprocessing/onehot.py @@ -28,6 +28,9 @@ def one_hot(y, num_labels='auto', dtype='float'): One-hot encoded array, where each sample is represented as a row vector in the returned array. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/one_hot/ + """ if not (num_labels == 'auto' or isinstance(num_labels, int)): raise AttributeError('num_labels must be an integer or "auto"') diff --git a/mlxtend/preprocessing/scaling.py b/mlxtend/preprocessing/scaling.py index 9e7842997..4e2107f18 100644 --- a/mlxtend/preprocessing/scaling.py +++ b/mlxtend/preprocessing/scaling.py @@ -29,6 +29,9 @@ def minmax_scaling(array, columns, min_val=0, max_val=1): df_new : pandas DataFrame object. Copy of the array or DataFrame with rescaled columns. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/minmax_scaling/ + """ ary_new = array.astype(float) if len(ary_new.shape) == 1: @@ -90,6 +93,9 @@ def standardize(array, columns=None, ddof=0, return_params=False, params=None): df_new : pandas DataFrame object. Copy of the array or DataFrame with standardized columns. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/standardize/ + """ ary_new = array.astype(float) dim = ary_new.shape diff --git a/mlxtend/preprocessing/shuffle.py b/mlxtend/preprocessing/shuffle.py index 38a6f03af..925a21374 100644 --- a/mlxtend/preprocessing/shuffle.py +++ b/mlxtend/preprocessing/shuffle.py @@ -33,6 +33,9 @@ def shuffle_arrays_unison(arrays, random_seed=None): >>> assert(X2.all() == np.array([[4, 5, 6], [1, 2, 3], [7, 8, 9]]).all()) >>> assert(y2.all() == np.array([2, 1, 3]).all()) >>> + + For more usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/shuffle_arrays_unison/ """ if random_seed: np.random.seed(random_seed) @@ -75,6 +78,9 @@ def shuffled_split(X, y, shuffle=True, train_size=0.75, random_seed=None): y_test : array-like, shape = [n_samples * (1-train_size)] Target values for testing. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/shuffled_split/ + """ check_Xy(X, y, y_int=False) @@ -87,7 +93,6 @@ def shuffled_split(X, y, shuffle=True, train_size=0.75, random_seed=None): else: X_ary, y_ary = X.copy(), y.copy() - idx = np.arange(0, y.shape[0]) train_absize = round(train_size * y.shape[0]) X_train, y_train = X_ary[:train_absize], y_ary[:train_absize] diff --git a/mlxtend/preprocessing/transactionencoder.py b/mlxtend/preprocessing/transactionencoder.py index dad15906e..99c786185 100644 --- a/mlxtend/preprocessing/transactionencoder.py +++ b/mlxtend/preprocessing/transactionencoder.py @@ -21,6 +21,9 @@ class TransactionEncoder(BaseEstimator, TransformerMixin): columns_: list List of unique names in the `X` input list of lists + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/preprocessing/TransactionEncoder/ + """ def __init__(self): return None diff --git a/mlxtend/regressor/linear_regression.py b/mlxtend/regressor/linear_regression.py index a36b1e577..96552eef1 100644 --- a/mlxtend/regressor/linear_regression.py +++ b/mlxtend/regressor/linear_regression.py @@ -50,6 +50,9 @@ class LinearRegression(_BaseModel, _IterativeModel, _Regressor): Sum of squared errors after each epoch; ignored if solver='normal equation' + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/regressor/LinearRegression/ + """ def __init__(self, eta=0.01, epochs=50, minibatches=None, random_seed=None, diff --git a/mlxtend/regressor/stacking_cv_regression.py b/mlxtend/regressor/stacking_cv_regression.py index 24d2b9c9c..94fd061ef 100644 --- a/mlxtend/regressor/stacking_cv_regression.py +++ b/mlxtend/regressor/stacking_cv_regression.py @@ -89,6 +89,9 @@ class StackingCVRegressor(BaseEstimator, RegressorMixin, TransformerMixin): number of samples in training data and len(self.regressors) is the number of regressors. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/regressor/StackingCVRegressor/ + """ def __init__(self, regressors, meta_regressor, cv=5, shuffle=True, diff --git a/mlxtend/regressor/stacking_regression.py b/mlxtend/regressor/stacking_regression.py index 1218631b3..925b8aef9 100644 --- a/mlxtend/regressor/stacking_regression.py +++ b/mlxtend/regressor/stacking_regression.py @@ -70,6 +70,8 @@ class StackingRegressor(BaseEstimator, RegressorMixin, TransformerMixin): the scikit-learn fit/predict API interface but are not compatible to scikit-learn's `clone` function. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/regressor/StackingRegressor/ """ def __init__(self, regressors, meta_regressor, verbose=0, diff --git a/mlxtend/text/names.py b/mlxtend/text/names.py index f1fa2a670..dbfa281f2 100644 --- a/mlxtend/text/names.py +++ b/mlxtend/text/names.py @@ -41,6 +41,9 @@ def generalize_names(name, output_sep=' ', firstname_output_letters=1): gen_name : `str` The generalized name. + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/text/generalize_names/ + """ # set first and last name positions last, first = 'last', 'first' diff --git a/mlxtend/text/tokenizer.py b/mlxtend/text/tokenizer.py index 961603ebe..5663ab94d 100644 --- a/mlxtend/text/tokenizer.py +++ b/mlxtend/text/tokenizer.py @@ -15,6 +15,10 @@ def tokenizer_words_and_emoticons(text): Example: >>> tokenizer_words_and_emoticons('This :) is :( a test :-)!') ['this', 'is', 'a', 'test', ':)', ':(', ':-)'] + + For more usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/text/tokenizer_words_and_emoticons/ + """ text = re.sub('<[^>]*>', '', text) emoticons = re.findall('(?::|;|=)(?:-)?(?:\)|\(|D|P)', text) @@ -28,6 +32,10 @@ def tokenizer_emoticons(text): Example: >>> tokenizer_emoticons('This :) is :( a test :-)!') [':)', ':(', ':-)'] + + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/text/tokenizer_emoticons/ + """ text = re.sub('<[^>]*>', '', text) emoticons = re.findall('(?::|;|=)(?:-)?(?:\)|\(|D|P)', text) From f1b433bf7cee7b48539ecb3516610a81120d7d68 Mon Sep 17 00:00:00 2001 From: rasbt Date: Sat, 21 Apr 2018 13:31:42 -0400 Subject: [PATCH 2/3] add usage example links to docs --- docs/cinder/css/base.css | 2 +- docs/make_api.py | 30 +- docs/mkdocs.yml | 8 +- .../user_guide/classifier/Adaline.ipynb | 28 +- .../classifier/EnsembleVoteClassifier.ipynb | 17 +- .../classifier/LogisticRegression.ipynb | 28 +- .../classifier/MultiLayerPerceptron.ipynb | 19 +- .../user_guide/classifier/Perceptron.ipynb | 19 +- .../classifier/SoftmaxRegression.ipynb | 19 +- .../classifier/StackingCVClassifier.ipynb | 12 + .../classifier/StackingClassifier.ipynb | 28 +- docs/sources/user_guide/cluster/Kmeans.ipynb | 28 +- .../user_guide/data/autompg_data.ipynb | 28 +- .../user_guide/data/boston_housing_data.ipynb | 28 +- docs/sources/user_guide/data/iris_data.ipynb | 28 +- .../user_guide/data/loadlocal_mnist.ipynb | 30 +- .../data/make_multiplexer_dataset.ipynb | 21 +- docs/sources/user_guide/data/mnist_data.ipynb | 28 +- .../user_guide/data/three_blobs_data.ipynb | 28 +- docs/sources/user_guide/data/wine_data.ipynb | 28 +- .../evaluate/BootstrapOutOfBag.ipynb | 20 +- .../user_guide/evaluate/bootstrap.ipynb | 23 +- .../evaluate/bootstrap_point632_score.ipynb | 12 +- .../user_guide/evaluate/cochrans_q.ipynb | 21 +- .../evaluate/confusion_matrix.ipynb | 26 +- .../feature_importance_permutation.ipynb | 7 +- .../user_guide/evaluate/lift_score.ipynb | 19 +- .../sources/user_guide/evaluate/mcnemar.ipynb | 25 +- .../user_guide/evaluate/mcnemar_table.ipynb | 28 +- .../user_guide/evaluate/mcnemar_tables.ipynb | 21 +- .../mcnemar_tables_13_0.png | Bin 0 -> 3696 bytes .../evaluate/paired_ttest_5x2cv.ipynb | 21 +- .../evaluate/paired_ttest_kfold_cv.ipynb | 19 +- .../evaluate/paired_ttest_resampled.ipynb | 21 +- .../evaluate/permutation_test.ipynb | 21 +- .../sources/user_guide/evaluate/scoring.ipynb | 28 +- .../LinearDiscriminantAnalysis.ipynb | 28 +- .../PrincipalComponentAnalysis.ipynb | 30 +- .../feature_extraction/RBFKernelPCA.ipynb | 28 +- .../feature_selection/ColumnSelector.ipynb | 41 +- .../ExhaustiveFeatureSelector.ipynb | 669 +----------------- .../ExhaustiveFeatureSelector_15_0.png | Bin 30898 -> 19528 bytes .../SequentialFeatureSelector.ipynb | 28 +- .../user_guide/file_io/find_filegroups.ipynb | 28 +- .../user_guide/file_io/find_files.ipynb | 28 +- .../frequent_patterns/apriori.ipynb | 14 +- .../frequent_patterns/association_rules.ipynb | 17 +- .../user_guide/math/num_combinations.ipynb | 39 +- .../user_guide/math/num_permutations.ipynb | 39 +- .../plotting/category_scatter.ipynb | 28 +- .../plotting/checkerboard_plot.ipynb | 28 +- docs/sources/user_guide/plotting/ecdf.ipynb | 28 +- .../user_guide/plotting/enrichment_plot.ipynb | 28 +- .../plotting/plot_confusion_matrix.ipynb | 28 +- .../plotting/plot_decision_regions.ipynb | 19 +- .../plotting/plot_learning_curves.ipynb | 35 +- .../plot_learning_curves_6_0.png | Bin 58337 -> 58177 bytes .../plotting/plot_linear_regression.ipynb | 28 +- .../plot_sequential_feature_selection.ipynb | 28 +- .../user_guide/plotting/stacked_barplot.ipynb | 28 +- .../preprocessing/CopyTransformer.ipynb | 26 +- .../preprocessing/DenseTransformer.ipynb | 26 +- .../preprocessing/MeanCenterer.ipynb | 21 +- .../preprocessing/TransactionEncoder.ipynb | 34 +- .../preprocessing/minmax_scaling.ipynb | 30 +- .../preprocessing/one-hot_encoding.ipynb | 30 +- .../preprocessing/shuffle_arrays_unison.ipynb | 26 +- .../preprocessing/standardize.ipynb | 28 +- .../regressor/LinearRegression.ipynb | 28 +- .../regressor/StackingCVRegressor.ipynb | 28 +- .../regressor/StackingRegressor.ipynb | 28 +- .../user_guide/text/generalize_names.ipynb | 28 +- .../text/generalize_names_duplcheck.ipynb | 28 +- docs/sources/user_guide/text/tokenizer.ipynb | 37 +- docs/sources/user_guide/utils/Counter.ipynb | 5 +- mlxtend/classifier/adaline.py | 4 +- mlxtend/classifier/logistic_regression.py | 2 + mlxtend/classifier/multilayerperceptron.py | 2 + mlxtend/classifier/perceptron.py | 2 + mlxtend/classifier/softmax_regression.py | 2 + mlxtend/classifier/stacking_classification.py | 2 + .../classifier/stacking_cv_classification.py | 2 + mlxtend/cluster/kmeans.py | 2 + mlxtend/data/autompg.py | 2 + mlxtend/data/boston_housing.py | 2 + mlxtend/data/iris.py | 2 + mlxtend/data/local_mnist.py | 2 + mlxtend/data/mnist.py | 2 + mlxtend/data/multiplexer.py | 2 + mlxtend/data/three_blobs.py | 2 + mlxtend/data/wine.py | 2 + mlxtend/evaluate/bootstrap.py | 2 +- mlxtend/evaluate/bootstrap_outofbag.py | 2 + mlxtend/evaluate/cochrans_q.py | 2 + mlxtend/evaluate/confusion_matrix.py | 2 + mlxtend/evaluate/feature_importance.py | 2 + mlxtend/evaluate/lift_score.py | 2 + mlxtend/evaluate/mcnemar.py | 8 + mlxtend/evaluate/permutation.py | 2 + mlxtend/evaluate/scoring.py | 2 + mlxtend/evaluate/ttest.py | 6 + .../linear_discriminant_analysis.py | 2 + .../principal_component_analysis.py | 2 + mlxtend/feature_extraction/rbf_kernel_pca.py | 2 + mlxtend/feature_selection/column_selector.py | 44 +- .../exhaustive_feature_selector.py | 2 + .../sequential_feature_selector.py | 2 + mlxtend/file_io/find_filegroups.py | 2 + mlxtend/file_io/find_files.py | 2 + mlxtend/frequent_patterns/apriori.py | 4 + .../frequent_patterns/association_rules.py | 2 + mlxtend/math/counting.py | 4 + mlxtend/plotting/checkerboard.py | 2 + mlxtend/plotting/decision_regions.py | 2 + mlxtend/plotting/ecdf.py | 2 + mlxtend/plotting/enrichment_plot.py | 2 + mlxtend/plotting/learning_curves.py | 2 + mlxtend/plotting/plot_confusion_matrix.py | 2 + mlxtend/plotting/plot_linear_regression.py | 2 + .../plot_sequential_feature_selection.py | 2 + mlxtend/plotting/remove_chartjunk.py | 2 + mlxtend/plotting/scatter.py | 2 + mlxtend/plotting/stacked_barplot.py | 2 + mlxtend/preprocessing/mean_centering.py | 2 + mlxtend/preprocessing/onehot.py | 2 + mlxtend/preprocessing/scaling.py | 4 + mlxtend/preprocessing/transactionencoder.py | 2 + mlxtend/regressor/linear_regression.py | 2 + mlxtend/regressor/stacking_cv_regression.py | 2 + mlxtend/regressor/stacking_regression.py | 2 + mlxtend/text/names.py | 7 + mlxtend/text/tokenizer.py | 6 +- mlxtend/utils/counter.py | 3 + 133 files changed, 1459 insertions(+), 1166 deletions(-) create mode 100644 docs/sources/user_guide/evaluate/mcnemar_tables_files/mcnemar_tables_13_0.png diff --git a/docs/cinder/css/base.css b/docs/cinder/css/base.css index 694c61380..e861a7e2e 100755 --- a/docs/cinder/css/base.css +++ b/docs/cinder/css/base.css @@ -5,7 +5,7 @@ body { h1[id]:before, h2[id]:before, h3[id]:before, h4[id]:before, h5[id]:before, h6[id]:before { content: ""; display: block; - margin-top: -75px; + margin-top: 0px; height: 75px; } diff --git a/docs/make_api.py b/docs/make_api.py index 66ab3c7a3..ab50195e7 100644 --- a/docs/make_api.py +++ b/docs/make_api.py @@ -21,6 +21,21 @@ def _obj_name(obj): return obj.__name__ +def make_markdown_url(line_string, s): + """ + Turns an URL starting with s into + a markdown link + """ + new_line = [] + old_line = line_string.split(' ') + for token in old_line: + if not token.startswith(s): + new_line.append(token) + else: + new_line.append('[%s](%s)' % (token, token)) + return ' '.join(new_line) + + def docstring_to_markdown(docstring): """Convert a Python object's docstring to markdown @@ -44,6 +59,7 @@ def docstring_to_markdown(docstring): elif line.startswith('>>>'): line = ' %s' % line + new_docstring_lst.append(line) param_encountered = False @@ -63,6 +79,17 @@ def docstring_to_markdown(docstring): clean_lst = [] for line in new_docstring_lst: + + if 'http://rasbt.github.io/' in line: + line = make_markdown_url(line_string=line, + s='http://rasbt.github.io/') + + if len(clean_lst) > 0 and \ + clean_lst[-1].lstrip().startswith( + 'For more usage examples'): + clean_lst[-1] = clean_lst[-1].lstrip() + line = line.lstrip() + if line.startswith('\n>>>'): clean_lst.append('\n') clean_lst.append(' ' + line[1:]) @@ -72,7 +99,6 @@ def docstring_to_markdown(docstring): clean_lst.append(line[4:]) elif set(line.strip()) not in ({'-'}, {'='}): clean_lst.append(line) - return clean_lst @@ -349,7 +375,9 @@ def summarize_methdods_and_functions(api_modules, out_dir, new_output.append(str_above_header) for p in sorted(module_paths): with open(p, 'r') as r: + new_output.extend(r.readlines()) + new_output.extend(['\n', '\n', '\n']) msg = '' if not os.path.isfile(out_f): diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 772ad36d1..dfbcc2db9 100755 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -15,7 +15,6 @@ theme_dir: cinder site_favicon: favicon.ico markdown_extensions: - - extra - tables - fenced_code - mdx_math: @@ -23,6 +22,13 @@ markdown_extensions: extra_javascript: - https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML - mathjaxhelper.js +extra_css: + - cinder/css/base.css + - cinder/css/bootstrap-custom.css + - cinder/css/bootstrap-custom.min.css + - cinder/css/cinder.css + - cinder/css/font-awesome-4.0.3.css + - cinder/css/highlight.css copyright: Copyright © 2014-2018 Sebastian Raschka google_analytics: ['UA-38457794-2', 'rasbt.github.io/mlxtend/'] diff --git a/docs/sources/user_guide/classifier/Adaline.ipynb b/docs/sources/user_guide/classifier/Adaline.ipynb index 55c4d9a7a..56c532d22 100644 --- a/docs/sources/user_guide/classifier/Adaline.ipynb +++ b/docs/sources/user_guide/classifier/Adaline.ipynb @@ -498,6 +498,11 @@ "\n", " Sum of squared errors after each epoch.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/Adaline/](http://rasbt.github.io/mlxtend/user_guide/classifier/Adaline/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -579,15 +584,6 @@ "with open('../../api_modules/mlxtend.classifier/Adaline.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -606,7 +602,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/classifier/EnsembleVoteClassifier.ipynb b/docs/sources/user_guide/classifier/EnsembleVoteClassifier.ipynb index 52e678441..18da73630 100644 --- a/docs/sources/user_guide/classifier/EnsembleVoteClassifier.ipynb +++ b/docs/sources/user_guide/classifier/EnsembleVoteClassifier.ipynb @@ -891,7 +891,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -987,6 +987,9 @@ " [1 1 1 2 2 2]\n", " >>>\n", "\n", + "For more usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/classifier/EnsembleVoteClassifier/](http://rasbt.github.io/mlxtend/user_guide/classifier/EnsembleVoteClassifier/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -1187,6 +1190,18 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/classifier/LogisticRegression.ipynb b/docs/sources/user_guide/classifier/LogisticRegression.ipynb index 4f46e65eb..52df4fb17 100644 --- a/docs/sources/user_guide/classifier/LogisticRegression.ipynb +++ b/docs/sources/user_guide/classifier/LogisticRegression.ipynb @@ -759,6 +759,11 @@ " List of floats with cross_entropy cost (sgd or gd) for every\n", " epoch.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/LogisticRegression/](http://rasbt.github.io/mlxtend/user_guide/classifier/LogisticRegression/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -858,15 +863,6 @@ "with open('../../api_modules/mlxtend.classifier/LogisticRegression.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -886,7 +882,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/classifier/MultiLayerPerceptron.ipynb b/docs/sources/user_guide/classifier/MultiLayerPerceptron.ipynb index 24f6df484..01f3049fd 100644 --- a/docs/sources/user_guide/classifier/MultiLayerPerceptron.ipynb +++ b/docs/sources/user_guide/classifier/MultiLayerPerceptron.ipynb @@ -668,6 +668,11 @@ " List of floats; the mean categorical cross entropy\n", " cost after each epoch.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/MultiLayerPerceptron/](http://rasbt.github.io/mlxtend/user_guide/classifier/MultiLayerPerceptron/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -795,7 +800,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/classifier/Perceptron.ipynb b/docs/sources/user_guide/classifier/Perceptron.ipynb index 01c1002b3..4d9e13f92 100644 --- a/docs/sources/user_guide/classifier/Perceptron.ipynb +++ b/docs/sources/user_guide/classifier/Perceptron.ipynb @@ -363,6 +363,11 @@ "\n", " Number of misclassifications in every epoch.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/Perceptron/](http://rasbt.github.io/mlxtend/user_guide/classifier/Perceptron/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -472,7 +477,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/classifier/SoftmaxRegression.ipynb b/docs/sources/user_guide/classifier/SoftmaxRegression.ipynb index d8937d97d..b747c3705 100644 --- a/docs/sources/user_guide/classifier/SoftmaxRegression.ipynb +++ b/docs/sources/user_guide/classifier/SoftmaxRegression.ipynb @@ -713,6 +713,11 @@ "\n", " List of floats, the average cross_entropy for each epoch.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/SoftmaxRegression/](http://rasbt.github.io/mlxtend/user_guide/classifier/SoftmaxRegression/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -840,7 +845,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/classifier/StackingCVClassifier.ipynb b/docs/sources/user_guide/classifier/StackingCVClassifier.ipynb index 0b845923e..1eb0f95ac 100644 --- a/docs/sources/user_guide/classifier/StackingCVClassifier.ipynb +++ b/docs/sources/user_guide/classifier/StackingCVClassifier.ipynb @@ -630,6 +630,11 @@ " number of samples\n", " in training data and n_classifiers is the number of classfiers.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/StackingCVClassifier/](http://rasbt.github.io/mlxtend/user_guide/classifier/StackingCVClassifier/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -805,6 +810,13 @@ "with open('../../api_modules/mlxtend.classifier/StackingCVClassifier.md', 'r') as f:\n", " print(f.read())" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/sources/user_guide/classifier/StackingClassifier.ipynb b/docs/sources/user_guide/classifier/StackingClassifier.ipynb index fd88dedaa..06801f732 100644 --- a/docs/sources/user_guide/classifier/StackingClassifier.ipynb +++ b/docs/sources/user_guide/classifier/StackingClassifier.ipynb @@ -493,7 +493,7 @@ "text": [ "## StackingClassifier\n", "\n", - "*StackingClassifier(classifiers, meta_classifier, use_probas=False, average_probas=False, verbose=0, use_features_in_secondary=False, store_train_meta_features=False, refit=True)*\n", + "*StackingClassifier(classifiers, meta_classifier, use_probas=False, average_probas=False, verbose=0, use_features_in_secondary=False, store_train_meta_features=False, use_clones=True)*\n", "\n", "A Stacking classifier for scikit-learn estimators for classification.\n", "\n", @@ -545,11 +545,14 @@ " `self.train_meta_features_` array, which can be\n", " accessed after calling `fit`.\n", "\n", - "- `refit` : bool (default: True)\n", + "- `use_clones` : bool (default: True)\n", "\n", " Clones the classifiers for stacking classification if True (default)\n", " or else uses the original ones, which will be refitted on the dataset\n", - " upon calling the `fit` method. Setting refit=False is\n", + " upon calling the `fit` method. Hence, if use_clones=True, the original\n", + " input classifiers will remain unmodified upon using the\n", + " StackingClassifier's `fit` method.\n", + " Setting `use_clones=False` is\n", " recommended if you are working with estimators that are supporting\n", " the scikit-learn fit/predict API interface but are not compatible\n", " to scikit-learn's `clone` function.\n", @@ -570,6 +573,11 @@ " number of samples\n", " in training data and n_classifiers is the number of classfiers.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/StackingClassifier/](http://rasbt.github.io/mlxtend/user_guide/classifier/StackingClassifier/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -766,7 +774,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/cluster/Kmeans.ipynb b/docs/sources/user_guide/cluster/Kmeans.ipynb index edb4f2a27..0bdd566b2 100644 --- a/docs/sources/user_guide/cluster/Kmeans.ipynb +++ b/docs/sources/user_guide/cluster/Kmeans.ipynb @@ -283,6 +283,11 @@ "\n", " Number of iterations until convergence.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/classifier/Kmeans/](http://rasbt.github.io/mlxtend/user_guide/classifier/Kmeans/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -336,15 +341,6 @@ "with open('../../api_modules/mlxtend.cluster/Kmeans.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -364,7 +360,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/autompg_data.ipynb b/docs/sources/user_guide/data/autompg_data.ipynb index 3d57b031d..f01e4bd95 100644 --- a/docs/sources/user_guide/data/autompg_data.ipynb +++ b/docs/sources/user_guide/data/autompg_data.ipynb @@ -180,6 +180,11 @@ " and 8 feature columns (6 rows with NaNs removed).\n", " y is a 1-dimensional array of the target MPG values.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/autompg_data/](http://rasbt.github.io/mlxtend/user_guide/data/autompg_data/)\n", + "\n", "\n" ] } @@ -188,15 +193,6 @@ "with open('../../api_modules/mlxtend.data/autompg_data.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -216,7 +212,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/boston_housing_data.ipynb b/docs/sources/user_guide/data/boston_housing_data.ipynb index 761f12ff0..18b9a34da 100644 --- a/docs/sources/user_guide/data/boston_housing_data.ipynb +++ b/docs/sources/user_guide/data/boston_housing_data.ipynb @@ -160,6 +160,11 @@ " and 13 feature columns.\n", " y is a 1-dimensional array of the continuous target variable MEDV\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/boston_housing_data/](http://rasbt.github.io/mlxtend/user_guide/data/boston_housing_data/)\n", + "\n", "\n" ] } @@ -168,15 +173,6 @@ "with open('../../api_modules/mlxtend.data/boston_housing_data.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -196,7 +192,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/iris_data.ipynb b/docs/sources/user_guide/data/iris_data.ipynb index ebaa6e6f0..fd31d563a 100644 --- a/docs/sources/user_guide/data/iris_data.ipynb +++ b/docs/sources/user_guide/data/iris_data.ipynb @@ -162,6 +162,11 @@ " petal length, and petal width.\n", " y is a 1-dimensional array of the class labels {0, 1, 2}\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/iris_data/](http://rasbt.github.io/mlxtend/user_guide/data/iris_data/)\n", + "\n", "\n" ] } @@ -170,15 +175,6 @@ "with open('../../api_modules/mlxtend.data/iris_data.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -198,7 +194,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/loadlocal_mnist.ipynb b/docs/sources/user_guide/data/loadlocal_mnist.ipynb index 9377195f7..1fb2ec01f 100644 --- a/docs/sources/user_guide/data/loadlocal_mnist.ipynb +++ b/docs/sources/user_guide/data/loadlocal_mnist.ipynb @@ -237,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -270,6 +270,11 @@ "\n", " Target class labels\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/loadlocal_mnist/](http://rasbt.github.io/mlxtend/user_guide/data/loadlocal_mnist/)\n", + "\n", "\n" ] } @@ -278,15 +283,6 @@ "with open('../../api_modules/mlxtend.data/loadlocal_mnist.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -306,7 +302,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/make_multiplexer_dataset.ipynb b/docs/sources/user_guide/data/make_multiplexer_dataset.ipynb index 929c10595..48986bb2b 100644 --- a/docs/sources/user_guide/data/make_multiplexer_dataset.ipynb +++ b/docs/sources/user_guide/data/make_multiplexer_dataset.ipynb @@ -131,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -199,6 +199,11 @@ " All features are binary (values in {0, 1}).\n", " y is a 1-dimensional array of class labels in {0, 1}.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/make_multiplexer_dataset](http://rasbt.github.io/mlxtend/user_guide/data/make_multiplexer_dataset)\n", + "\n", "\n" ] } @@ -227,7 +232,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/mnist_data.ipynb b/docs/sources/user_guide/data/mnist_data.ipynb index fa75c55c9..d8232d05d 100644 --- a/docs/sources/user_guide/data/mnist_data.ipynb +++ b/docs/sources/user_guide/data/mnist_data.ipynb @@ -242,6 +242,11 @@ " 784 pixel feature vectors.\n", " y contains the 10 unique class labels 0-9.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/mnist_data/](http://rasbt.github.io/mlxtend/user_guide/data/mnist_data/)\n", + "\n", "\n" ] } @@ -250,15 +255,6 @@ "with open('../../api_modules/mlxtend.data/mnist_data.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -278,7 +274,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/three_blobs_data.ipynb b/docs/sources/user_guide/data/three_blobs_data.ipynb index 438eefe45..dc0001b57 100644 --- a/docs/sources/user_guide/data/three_blobs_data.ipynb +++ b/docs/sources/user_guide/data/three_blobs_data.ipynb @@ -219,6 +219,11 @@ " and 2 feature columns.\n", " y is a 1-dimensional array of the 3 suggested cluster labels 0, 1, 2\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/three_blobs_data](http://rasbt.github.io/mlxtend/user_guide/data/three_blobs_data)\n", + "\n", "\n" ] } @@ -227,15 +232,6 @@ "with open('../../api_modules/mlxtend.data/three_blobs_data.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -254,7 +250,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/data/wine_data.ipynb b/docs/sources/user_guide/data/wine_data.ipynb index c5b19c06a..491ef1fcb 100644 --- a/docs/sources/user_guide/data/wine_data.ipynb +++ b/docs/sources/user_guide/data/wine_data.ipynb @@ -198,6 +198,11 @@ " and 13 feature columns.\n", " y is a 1-dimensional array of the 3 class labels 0, 1, 2\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/data/wine_data](http://rasbt.github.io/mlxtend/user_guide/data/wine_data)\n", + "\n", "\n" ] } @@ -206,15 +211,6 @@ "with open('../../api_modules/mlxtend.data/wine_data.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -234,7 +230,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/BootstrapOutOfBag.ipynb b/docs/sources/user_guide/evaluate/BootstrapOutOfBag.ipynb index ded3a81e9..f0b5a906d 100644 --- a/docs/sources/user_guide/evaluate/BootstrapOutOfBag.ipynb +++ b/docs/sources/user_guide/evaluate/BootstrapOutOfBag.ipynb @@ -235,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -272,10 +272,10 @@ "\n", " The testing set indices for that split.\n", "\n", - "\n", "**Examples**\n", "\n", - ">>> raise ValueError('test')\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/BootstrapOutOfBag/](http://rasbt.github.io/mlxtend/user_guide/evaluate/BootstrapOutOfBag/)\n", "\n", "### Methods\n", "\n", @@ -350,7 +350,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/bootstrap.ipynb b/docs/sources/user_guide/evaluate/bootstrap.ipynb index c410e81ae..0146645fa 100644 --- a/docs/sources/user_guide/evaluate/bootstrap.ipynb +++ b/docs/sources/user_guide/evaluate/bootstrap.ipynb @@ -160,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -219,7 +219,9 @@ "\n", "**Returns**\n", "\n", - " original, standard_error, (lower_ci, upper_ci)\n", + "\n", + "- `original, standard_error, (lower_ci, upper_ci)` : tuple\n", + "\n", " Returns the statistic of the original sample (`original`),\n", " the standard error of the estimate, and the\n", " respective confidence interval bounds.\n", @@ -241,6 +243,9 @@ " Mean: 5.03, SE: +/- 0.11, CI95: [4.80, 5.26]\n", " >>>\n", "\n", + "For more usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/evaluate/bootstrap/](http://rasbt.github.io/mlxtend/user_guide/evaluate/bootstrap/)\n", + "\n", "\n" ] } @@ -269,7 +274,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/bootstrap_point632_score.ipynb b/docs/sources/user_guide/evaluate/bootstrap_point632_score.ipynb index 5d182c99d..9cc3e89aa 100644 --- a/docs/sources/user_guide/evaluate/bootstrap_point632_score.ipynb +++ b/docs/sources/user_guide/evaluate/bootstrap_point632_score.ipynb @@ -126,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -217,6 +217,9 @@ " >>> print('95%% Confidence interval: [%.2f, %.2f]' % (lower, upper))\n", " 95% Confidence interval: [0.90, 0.98]\n", "\n", + "For more usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/evaluate/bootstrap_point632_score/](http://rasbt.github.io/mlxtend/user_guide/evaluate/bootstrap_point632_score/)\n", + "\n", "\n" ] } @@ -226,13 +229,6 @@ " s = f.read() \n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/sources/user_guide/evaluate/cochrans_q.ipynb b/docs/sources/user_guide/evaluate/cochrans_q.ipynb index afffcf710..0dbf487c5 100644 --- a/docs/sources/user_guide/evaluate/cochrans_q.ipynb +++ b/docs/sources/user_guide/evaluate/cochrans_q.ipynb @@ -278,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -311,6 +311,11 @@ "\n", " Returns the Q (chi-squared) value and the p-value\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/cochrans_q/](http://rasbt.github.io/mlxtend/user_guide/evaluate/cochrans_q/)\n", + "\n", "\n" ] } @@ -339,7 +344,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/confusion_matrix.ipynb b/docs/sources/user_guide/evaluate/confusion_matrix.ipynb index 48f117777..07509bb56 100644 --- a/docs/sources/user_guide/evaluate/confusion_matrix.ipynb +++ b/docs/sources/user_guide/evaluate/confusion_matrix.ipynb @@ -331,6 +331,11 @@ "- `mat` : array-like, shape=[n_classes, n_classes]\n", "\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/confusion_matrix/](http://rasbt.github.io/mlxtend/user_guide/evaluate/confusion_matrix/)\n", + "\n", "\n" ] } @@ -340,15 +345,6 @@ " s = f.read() \n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -369,6 +365,18 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/feature_importance_permutation.ipynb b/docs/sources/user_guide/evaluate/feature_importance_permutation.ipynb index 105fdefd7..ac37aa8da 100644 --- a/docs/sources/user_guide/evaluate/feature_importance_permutation.ipynb +++ b/docs/sources/user_guide/evaluate/feature_importance_permutation.ipynb @@ -526,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -591,6 +591,11 @@ " the feature importance for each repetition. If num_rounds=1,\n", " it contains the same values as the first array, mean_importance_vals.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/feature_importance_permutation/](http://rasbt.github.io/mlxtend/user_guide/evaluate/feature_importance_permutation/)\n", + "\n", "\n" ] } diff --git a/docs/sources/user_guide/evaluate/lift_score.ipynb b/docs/sources/user_guide/evaluate/lift_score.ipynb index f898aef57..4c8162d66 100644 --- a/docs/sources/user_guide/evaluate/lift_score.ipynb +++ b/docs/sources/user_guide/evaluate/lift_score.ipynb @@ -249,6 +249,11 @@ "\n", " Lift score in the range [0, $\\infty$]\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/lift_score/](http://rasbt.github.io/mlxtend/user_guide/evaluate/lift_score/)\n", + "\n", "\n" ] } @@ -277,7 +282,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/mcnemar.ipynb b/docs/sources/user_guide/evaluate/mcnemar.ipynb index 86b7e7b93..add0f30b9 100644 --- a/docs/sources/user_guide/evaluate/mcnemar.ipynb +++ b/docs/sources/user_guide/evaluate/mcnemar.ipynb @@ -333,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -376,6 +376,11 @@ " Returns the chi-squared value and the p-value;\n", " if `exact=True` (default: `False`), `chi2` is `None`\n", "\n", + "**Examples**\n", + "\n", + " For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar/](http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar/)\n", + "\n", "\n" ] } @@ -389,9 +394,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -413,7 +416,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/mcnemar_table.ipynb b/docs/sources/user_guide/evaluate/mcnemar_table.ipynb index fbd9706d2..9c0bb1ab4 100644 --- a/docs/sources/user_guide/evaluate/mcnemar_table.ipynb +++ b/docs/sources/user_guide/evaluate/mcnemar_table.ipynb @@ -209,6 +209,11 @@ " c: tb[1, 0]: # of samples that model 2 got right and model 1 got wrong\n", " d: tb[1, 1]: # of samples that both models predicted incorrectly\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_table/](http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_table/)\n", + "\n", "\n" ] } @@ -218,15 +223,6 @@ " s = f.read() \n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -246,7 +242,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/mcnemar_tables.ipynb b/docs/sources/user_guide/evaluate/mcnemar_tables.ipynb index 52b4f9a96..0011d7940 100644 --- a/docs/sources/user_guide/evaluate/mcnemar_tables.ipynb +++ b/docs/sources/user_guide/evaluate/mcnemar_tables.ipynb @@ -227,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -288,6 +288,11 @@ " - tb[1, 0]: # of samples that model b got right and model a got wrong\n", " - tb[1, 1]: # of samples that both models predicted incorrectly\n", "\n", + "**Examples**\n", + "\n", + " For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_tables/](http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_tables/)\n", + "\n", "\n" ] } @@ -316,7 +321,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/evaluate/mcnemar_tables_files/mcnemar_tables_13_0.png b/docs/sources/user_guide/evaluate/mcnemar_tables_files/mcnemar_tables_13_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1ce03ca880b983d272bf6949545f05a3e0e09c GIT binary patch literal 3696 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\n", @@ -314,15 +319,6 @@ " s = f.read()\n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -342,7 +338,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/feature_extraction/PrincipalComponentAnalysis.ipynb b/docs/sources/user_guide/feature_extraction/PrincipalComponentAnalysis.ipynb index e86fc0cf8..d47a1ba66 100644 --- a/docs/sources/user_guide/feature_extraction/PrincipalComponentAnalysis.ipynb +++ b/docs/sources/user_guide/feature_extraction/PrincipalComponentAnalysis.ipynb @@ -423,6 +423,22 @@ "\n", " Eigenvectors in sorted order.\n", "\n", + "- `loadings_` : array_like, shape=[n_features, n_features]\n", + "\n", + " The factor loadings of the original variables onto\n", + " the principal components. The columns are the principal\n", + " components, and the rows are the features loadings.\n", + " For instance, the first column contains the loadings onto\n", + " the first principal component. Note that the signs may\n", + " be flipped depending on whether you use the 'eigen' or\n", + " 'svd' solver; this does not affect the interpretation\n", + " of the loadings though.\n", + "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/feature_extraction/PrincipalComponentAnalysis/](http://rasbt.github.io/mlxtend/user_guide/feature_extraction/PrincipalComponentAnalysis/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -490,7 +506,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/feature_extraction/RBFKernelPCA.ipynb b/docs/sources/user_guide/feature_extraction/RBFKernelPCA.ipynb index e98bcbd0e..f2100d379 100644 --- a/docs/sources/user_guide/feature_extraction/RBFKernelPCA.ipynb +++ b/docs/sources/user_guide/feature_extraction/RBFKernelPCA.ipynb @@ -613,6 +613,11 @@ "\n", " Training samples projected along the component axes.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/feature_extraction/RBFKernelPCA/](http://rasbt.github.io/mlxtend/user_guide/feature_extraction/RBFKernelPCA/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -661,15 +666,6 @@ " s = f.read()\n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -689,7 +685,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/feature_selection/ColumnSelector.ipynb b/docs/sources/user_guide/feature_selection/ColumnSelector.ipynb index f8bff595a..27cffe3d4 100644 --- a/docs/sources/user_guide/feature_selection/ColumnSelector.ipynb +++ b/docs/sources/user_guide/feature_selection/ColumnSelector.ipynb @@ -268,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -279,13 +279,30 @@ "\n", "*ColumnSelector(cols=None, drop_axis=False)*\n", "\n", - "Base class for all estimators in scikit-learn\n", + "Object for selecting specific columns from a data set.\n", + "\n", + "**Parameters**\n", + "\n", + "- `cols` : array-like (default: None)\n", + "\n", + " A list specifying the feature indices to be selected. For example,\n", + " [1, 4, 5] to select the 2nd, 5th, and 6th feature columns.\n", + " If None, returns all columns in the array.\n", "\n", - "**Notes**\n", "\n", - "All estimators should specify all the parameters that can be set\n", - "at the class level in their ``__init__`` as explicit keyword\n", - "arguments (no ``*args`` or ``**kwargs``).\n", + "- `drop_axis` : bool (default=False)\n", + "\n", + " Drops last axis if True and the only one column is selected. This\n", + " is useful, e.g., when the ColumnSelector is used for selecting\n", + " only one column and the resulting array should be fed to e.g.,\n", + " a scikit-learn column selector. E.g., instead of returning an\n", + " array with shape (n_samples, 1), drop_axis=True will return an\n", + " aray with shape (n_samples,).\n", + "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/feature_selection/ColumnSelector/](http://rasbt.github.io/mlxtend/user_guide/feature_selection/ColumnSelector/)\n", "\n", "### Methods\n", "\n", @@ -416,6 +433,18 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/feature_selection/ExhaustiveFeatureSelector.ipynb b/docs/sources/user_guide/feature_selection/ExhaustiveFeatureSelector.ipynb index 51368635e..d26a6ae82 100644 --- a/docs/sources/user_guide/feature_selection/ExhaustiveFeatureSelector.ipynb +++ b/docs/sources/user_guide/feature_selection/ExhaustiveFeatureSelector.ipynb @@ -3,9 +3,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" @@ -232,6 +230,19 @@ "data": { "text/html": [ "
\n", + "\n", "\n", " \n", " \n", @@ -455,9 +466,9 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhwAAAG0CAYAAAB5Wf5iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzsvXucJGV1x/07PTM9M93Tc9td9gK7LAvLnWV3Fg0GRFEE\nTIJR8ZJVgoJXMKLgvproG101iSa6EDUBb+GixjUgGjDhIqKvKDFEZma53xQWZvY+O/fZvk6f948z\nj1Xd05fq6uru6u7z/Xz6M91VNdXPVPdU/eo8v3MOMTMURVEURVEqSaDWA1AURVEUpfFRwaEoiqIo\nSsVRwaEoiqIoSsVRwaEoiqIoSsVRwaEoiqIoSsVRwaEoiqIoSsVRwaEoiqIoSsVRwaEoiqIoSsVR\nwaEoiqIoSsVRwaEoiqIoSsXxheAgolcS0Z1EtJuI0kT0Bge/82oiGiSiGBE9S0TvqsZYFUVRFEUp\nHV8IDgBhADsBXAmgaHMXIloL4L8A3A/gdABfAfBtInpd5YaoKIqiKIpbyG/N24goDeCNzHxngW3+\nEcDrmXmDbdkOAD3M/CdVGKaiKIqiKCXglwhHqZwJ4GdZy+4F8IoajEVRFEVRlCLUq+BYAWB/1rL9\nALqJqL0G41EURVEUpQCttR5AtSCiJQAuALALQKy2o1EURVGUuqIDwFoA9zLzITc7qFfBsQ/A8qxl\nywFMM3M8z+9cAODfKzoqRVEURWls3gng+25+sV4Fx28AvD5r2fkLy/OxCwC+973v4aSTTqrQsIpz\n9dVX47rrrqvZ++sY/DUGv4xDx+CfMfhlHDoGHYOdp556CpdccgmwcC11gy8EBxGFARwHgBYWrSOi\n0wGMM/MIEX0BwCpmNrU2vg7gQwvZKjcCeC2AtwAolKESA4CTTjoJAwMDlfgzHNHT01PT99cx+GsM\nfhmHjsE/Y/DLOHQMOoY8uLYk+EJwADgDwC8gNTgYwPaF5bcAuBxiEl1tNmbmXUT0pwCuA3AVgFEA\n72Hm7MwVJQfpNBCNAoEAQGT9NM8VRVEUxWt8ITiY+ZcokDHDzJflWPYAgM2VHFcjkkgAExPAAw9k\nig0gU4AEAkBLi/XTPM/1Op9wyX5uX5ZMivBpdoEzPw+kUiIAW1vlYT4PRVGURsIXgkOpHtGoXODa\n2+Viz2w90mnZJpWS5/Z12duZenFO68YxW+IiEBDRs28fsGqV939jPbF3LzA+LgKwtVWEXHs70NFh\n/TRCpK0t93NFUZR6QE9XVWbLli01ff94HDj77C2IRKr/3nbBcvbZW3DwYG0FR60/CwA4cECORThs\nRTump0WQGeFnx0SXWloswdHRYQmU9vbFosQuTlpaco/DD8dCx2Dhh3HoGHQMXuO70uaVgogGAAwO\nDg76yXxTdUZGgIcfBtasqe04ZmbkgvrKV8pFshmJRoFf/Ur+/q4uZ79jRMn8fObzVEoe2f/ORmTk\nEigdHUAwaImSYFAeRrQo1SWVAmIxeTDL59PZqZ9FrUmnrangRsHc+JnzSL7n9tePPjqEN75xMwBs\nZuYhN++rX+UmIxbzh28iHAZ27wYmJ4Hl2RVVmoTJSWBuDujvd/47Rjw4gXmxQInHgcOHreXMciI1\nU17BoIiP9nb5jLq65LkRIkaUtLW5+5sV8VEZYRGNyndgelp+JhLyAKzPobMT6OmRzyJbLDbSRbAW\npNPiJzPH3Tw3/yeHD8vnBMixtkcY7V42u7DP5W0r9XmuZeb/2YlQsD83f1cqJT+Tycztcj3s5wXz\ntz/1VPnHWwVHkzE97Y+LhflHGh9vXsFx6FCmaddriErzeczPWyekaBSYmsqMmtgFSTAoF8Bw2Lr4\n2UWJH75jtSSdlouWERaxmET1pqbkubkIAHJczXHr7raEhLkIzszIdyWVku2NEGlvFyESiWQKkY4O\nf9xU1BrmTBFhfxgxEY1mXoztEUL7VCSRJU6yvWzZz/NNGmRfwAFLVJjnhUz35n2yH/Pzhd/XngCQ\n/TBCyYgpu8jJZtcuVx9DBio4mghmYHZWTmh+IBwG9u8H1q9vvrBxMil/ey28NPkwd2gdHbnX2wVJ\nLCbiNVuQ2KdmjCAxF8dGFCT2aRATsZieFpEQj8vFzS4UzDGIRIofA3Pcsr8jyaTsOx4HRkdzC5eu\nLhEvoVCmEGmU4868WEiY13Nz8jkYMWEe9ou9ERJmitGIi2oKNSMYzPNCQsZsZxcJ2eKhHqJdTXaa\nb27MP6ZfBEckIhfdqSlgyZJaj6a6TE6K+FuxotYjcU6pgmRmJvNEbxckbW3WlI0xvAaDuU+iuZ5X\nm0RCLmBGWOSaBjFhaBOBCIWA3l7vxXRbW27hYMLn8TgwNgbs2bN4TJ2dIkS6uuR5Ladn7BdTeyjf\n/tx8p8wxNlNQ2ZEJu7nabpQOBuV71tbm/nvDzKAKHJxafZdriQqOJsLccfnlrrq1VU4ok5PNJzgm\nJuSE2kiRHaeCJJWS7+LsrNyh2+88TXi3WC2X7Ds9+xy6Mchmi5RCAsb+2ggmE8WZnnY2DVLri0dL\ni4iIzs7M5WZqId/0TDAon1n29EwwmFsEFBII5rndN5TvUWhaInt/BnsGlhEThbKv3DI3N4Prr/8y\nHnjgQaRSYbS2zuGcc87ClVduRTjskxNoHdJApzulGPG4nDD9dJELhaQWxbp19RES9IJ0Wv7mUKjW\nI6kuxQyv2ReufBciM5dusjlyrQcyhUyhefVscWMMtUDp0yB+hMjd9Exra+7PwOyz0DE1+7D7E7Kf\nZ4u/fEUCvRYTxZibm8Fll12MXbuuQTq9DdJxg3Hbbffit7+9GDfddLuKDpf46NKjVBq729ovdHXJ\nlMrMjNwpNgPT03J3X0p2SjNQixBzLsFiIiTNQKHpmVQqtxhodK6//ssLYuNC21JCOn0hdu1i3HDD\ndmzduq1Ww6trmmwGqbmJxfx3wujokLuryclaj6R6TE76y0vTzJg7aBOm1xokgql4a7wQZqqrGXjg\ngQeRTl+Qc106fSEeeODBKo+ocVDB0UTMzvrzZBoMSpnzZoBZ/tZ8PgdFUWoHMyOVCsNqXJ4N4fDh\nEOLx5iiY6TU+vPwolYBZpi38eFcdiYiJ8vDhxvc1zM1JhMMvxl1FUSwmJwmHD89BmpbnEh2Myck5\nvOY1hA0bgIEBYPNm4NRT/Xlu9QJjoP3pT+8ue18qOJoEYw7z4z9FKCTO+cnJxhcck5OS0rdsWa1H\noiiKYXwc+O53gdtuA5LJswDcC+DCRdsFAvfgvPPOximnAIODwPe/D3zjGzL9dOqpIj6MAGmElg2Z\nBto3ADijrP2p4GgSTFqf054d1cTMo9e6mVs1OHCgPjMdFKURsQuNQADYsgV405u24qMfvRi7dvGC\ncVSyVAKBe7B27XX41KduRzgMvPOdYq597jlgaEgEyA9+AHzzm3Jjly1A6nEaNdNA66p9SgYqOJqE\neFxc53692EUiUqyokc2UsZhEcnQ6RVFqy6FDIjR++EO52XnHO+TR2wsAEdx00+244YbteOCBa5FM\nhtDWdhjnnHMWrrgiMyW2pQU48UR5vOMdkuX0u9+J+BgcBG69FfjWt+S8e9ppIj4GBuR5KQKkUsXH\nDPG4eMv27pWCcXv3yuP++x9cSA32BhUcTUI8blUd9CPhsHzBJyeBI46o9Wgqg2nWJic1RVGqzdiY\nJTRaWyVK8Y53SNEzO+FwBFu3bsPWraVd7AMB4Pjj5bFliwiQ3/8+twA59VTLA7Jhw2IB4mXxsVhs\nsaCwC4uxscy/4YgjgJUrGS0tYSST3l00VHA0CaYGh18xxX3GxxtXcBw6ZNUzUBSleoyNAd/5DnD7\n7SI0/vIvRRBkC41clBNZCASkV9T69cBf/IUIkOefBx5+WKZhfvhD4N/+TcZkFyDHHTeDK65wXnws\nFrPEQy5BceiQNaaWFmmYuWIFcPTRwJlnylT2ypXy84gjTDYj4aKL5rB3bz4Dbemo4GgSZmf9O51i\nsDdzq3Z1wUpjmrX50UOjKI3K2Bhwyy3Aj34kF9FLLxWhUasig4EAcNxx8rALkMFBESA/+hFw440A\n0ZfBfA0yjatSfOyFFxgf+MB2rF697Q+iYnzc2qqlRcTEypXAMccAf/zHmYJi2TLn5RHOOecs3Hbb\nvVlF0NyjgqNJsKfEVno+0C1dXWIcnZpqvCqcppqqX5u1+fU70azo51EeBw+K0Pjxj+VGy63QYJap\n0I6OxT1qvMAuQN7+dnm/558H3v/+BzE1tS3PmC7Ec89di0gEOPZY4JWvlPPKqlXyWLrUu3pLV165\nFb/9rTHQlh96VsHRBCQSwMTEDG655cv4zW/824yorU2MrZOTjSc4Jif916xNG1T5C/08yufAAUto\ntLcD7363RBLcGLXTaZmWCIelHcHBg3JeqmSUkghYt44RDBYuPtbfH8L111delIbDloH2pz+9OyOS\n4gYfnf6USjE2NoMPf/hijI76vxlRKCTmpmOO8a/BtVT82KxNG1T5C/08yuPAAeDmm4H//E8RGpdf\nLkLDrThIpURsLFsmGSXMwO7d0uDu0CExfnd3V+YcRURobS1cfKy1da5qETBjoD3zzDfgox/dXNa+\n1L7WBGzb9mWMjFxjyykHrGZEV+OGG7bXcngZdHVJNGBmptYj8Q7T4txP/o3M/Hp/fyeaAf083LF/\nP/CP/wj8+Z8D99wjQuMnPwHe+173/2+JhAiLVavExNnTIwLjlFPED3HqqXIT8dJL4p0w3Ym95Jxz\nzkIgcG/OdYHAPXjVq872/k2rgAqOJuDuux8Ec/5mRPfe+yAef1yUe76W017Ded7INHObmqrOOKrB\n1JScxPJVHsx3LLyEWQx0jz0G3HsvcNddhRtU3Xvvg3j6aRl7rb8TjQ4z8POfa8OwXOT7TuzbJ0Lj\njW8EfvpTERh33lme0ACkCvDevcC6dcDGjYujkpGIpLyedZasb20FRkbkfyuVcv++2Vx55VasXXst\nAoG7IZEOQIqP3Y21a6/DFVd8zLs3qyI6pdLgMDOSycLzgRMTIbz73RK+a2+33MzGiGRer1wJLFni\nPozodI46GJQ7l9Wr3b2Pn2CWE1glc+wBucsaH5cwcK60uH37RMgtjApExb8Tl1wi34lQKPM7kP2z\np6fy34lGghl48UWrNsPDDzPGxwt/HmNjIezYwTjjDMKxxzZ2anWh78TMTAQ33wzccYeIgfe9D3jb\n27yJHs7OSk+nE06QRyG/VWeniJKjjpJz1a5d8n/W1ibnyHIzAu3eiWLFx+oJapa7CiIaADA4ODiI\ngYGBWg+nqhx55HnYs+c+5JsPXLHidbj22p/lvFDt3SvTAYb2divlKvvis2qVmKpynQwz56gvgFUu\n+F6sXXttxhz17KxcHF/5yso4w6vJ7Czw61+L8czcLZVyLAzptNxF5cu137dPoiiGnp7Fn5H9+ZYt\n52Hv3vzfieXLX4cvfelni74LRtBEo9bWnZ2FBUlvb25B4uY41CPMckEyAmNoSKKJLS3ASSdJ3YWf\n/OQ8jI/n/zyCwdeB+WdIJuWz3bTJKpt93HGNI0AKfSe6uq7F3Nzt6OqK4JJLRGiEw968rynKd/LJ\nIiRKPZ6plPhIXnpJfhLJudCrcuZ+yFr69a+HjIdjMzO7qnOuEY4m4BWvOAs//nHuXOpA4B68+tVn\n/6E6Xi5mZ3Nf5J56Cvj5zzOnP4JBS5DYLzy/+MWX8cIL14B5cV75rl2MG27Yjq1btwGQk8jEhJwE\n6l1wTE3JxXnpUmtZ5ny9wToWn/jEdmzatG2RoEgmra17eqzje845mcd7xYrid3yF8usDgXtw7rln\n4+ST5QScDbP8XdnidM8eYHgY+O//ls6/ho6OxSJk5Urg/vudfyfqCWbghRcscTE4KNGnlhY5nhdd\nZFWXNBfMWKzw5/HmN5+Nv/or4PHHLeHyta+JyOzuzhQg69fXrwAp9L8xPc3YsGE7vva1bZ4JDUCy\nT5jlGB51lLtoXWurFRUeGxPhsW+f9Frp7y/fMF5rseEVGuFocJJJ4J57ZnDVVRfjpZeuztmMqNw7\nydlZ+efKvviYnyJIzgOQ/w5u1arzceed9/1hyeio3GmcdprrYfmCnTtljtfelO6iiwpHF4Dz0dt7\nX96IwcqV5Z/ArDtJ778TzBIVyyVIzM+5OaDYd2Lp0vPx7/9+H/r7q5ex5OZO0tROsAuMiQkRGKec\nYgmBDRvyf25uPo94PFOAPPaYCJBIZLEAcVNIr1p31UbA7tkDfOQj52Fiwvl5otz33btXbmpOO02q\nb3oFs4jMkRF5j3hcIn313EdJIxxKUeJxoKUlgm9+83Z8/vPb8atfXYslS0Job/duPrCryypek4u5\nOcYb3xjGxET+OepkMpRxgotEJDRZz83cYjG527GfZJgZqVTh+fqlS0O4++7KnuwrOUdMJBGYnh5p\napWNCBLGW95S+DsxNhbCBRcw2tupYr4ioHQfSXZ1yKEhERitrSIw3vhGudCffrrzCJ2bz6O93RIV\ngPyvP/GEJUCuv16WdXVlCpDjj88vQCrhqTHFs7IjpHYxKlN0DKDw/0b2ecIt8/Pyvr29Ija8rvtD\nJN/LJUskxX/3bhEf4+PW/0a9BC1SKTmX2SOsblHB0eCYL8qyZRG87GXb8H//B9x1F6OlpXrf9nCY\n0NFRWl55V5ecEKamJBe+Hpmakjt5e3TDSY59W1t1cuzdNqgqFxEkxb8TS5fO4a//mjIuTo8/Dtx3\nX2batFtfEeCs/kVnZ+QP/S8GB2XaaHLS6n/xpjdZEYxypgDL/Tza2yWNc2BAzJSJRKYAueGGxQJk\nYEAESGur+1ogzCK4CgkKey+ncNj6rF72MvtnRfjYx+awf39l60+YGhsrVsjnV+mogxEYa9bI+46M\nyJRLVxfQ1+ev6S8jLsyDWcRpR4eIp3JRwdHgmC6xgYBMUxx5JKoqNgzFPAPZeeUtLVZYsl4Fh2mY\nlH1CKfVYVINazBEXOw7nnXc2Xv3q3L+bz1f05JPA/fdnGp3z+YpWrgTuuCO/Z+CFFxjveMd2zM5u\nw9SUXJRPOw24+OL8HT69wovPIxgUYbFpk6SLJhJyfEzjMCNAwmHZZmamsKfm7/5uO849d1vOaTIr\nA0r2Z47vH/3R4uMeieS/u3/1qyv7v2HasK9ZI9GoanrEurpE3K1eLWN48UURH6GQCI9qVyFOJi1h\nYa4Tra3yne7pAdaulTGHQvJ44ony31M9HA3O888Djz4qX/KrrpJ0re01qCHkZo56fFxOmmefXX/N\n3FIp4Fe/kvB7djt6cyyef/5qSHMmbz019UIlfSR2X1GuO27L6FzYRxIMno93ves+DAyI2KiUwKgF\nyaQVARkaAh56qPCxAM4HcB+6uvJnJBlB4ZZKficOH5YpzmOPlam+Wk/VJhKSUvvii3Jz0toq0bhK\njCuRyBQXgFwLOjpEVPT3W5l0oVDuMQwNDWHzZvVwKAWYnbWU8+iopJrWguw56tnZEKanD+Oii87C\nNdfkPol0dck/4vS03AHUE6ZZWy4jWjgcwd///e3YsmU7+vuvRUtLY+TYl0olfSTFfUXAnj2MD34w\njKmp/J6Bnp4Q3v/+2qckVoK2NiletXEjcPnljD/5kzAOHsx/LPr6Qrj9dkZ3d/15i0y135NO8k83\n6mBQbgRXrpRMmRdfFN8aINMXbsVtPG6JC5Mqb8TF0qVyLrWLi2p2EVfB0eCYLrGplBiXallMyz5H\nffAg4/WvJ7ziFflz6YNBuQubnKw/wTExIca0fGHSZ56JgGgbfvhDIBJpzAuaE2rlIwmHgfXrCaHQ\nHKam/NGzopY48RZ1dMxVVGwYvP5OHDokF97TTvNnj6bWVhEdy5dLBGZkxEqDN5GHXDBniotkUpYF\ngzJVdMQREl010yKdndUVF7lQwdHAmDk6U7lzfl7yzP3AsmWENWsknHveefm36+yUf761a/13oshH\nOi1jLpS6Ojgod1rSLrtO/rAK40cfSb32rHCDH49FOd8JZjnvtbaKR+XIIz0cWAUIBEQkLFsmNywj\nIzINeOiQ3HC1tWVGLojk3N7RIR6lvj4554TDct70U2dqgw+HpHhFPG4VBhoZkWV+ERyAnASGhwtv\nY5q5zc7WTw77zIxMqRSKygwPSz8GpbZceeVW/Pa3F2PXLs7pGbjiittrPcSq0UjHwnRoDofF3FtP\nxnNTpbS/X260TGZLNGoV0evttaZEQiF/TBE5QQVHA2MERzAo/o2WFlHCfmFgQHoiTE2JKzoXnZ0y\nvzk1VT+CY3JSjn2+Zm0HDsjn0UTeZd/SqD0r3NAoxyKVErGxZIlMo2SbtusJk1J79NEiokIhf6XR\nloorwUFEAQDHATgCWR1nmfkBD8aleEB2SuzKlf4Ks5kL7vAw8qY/AiKYDhzwV3SmEPv3FzZ8DS34\nuzdtqs54lMLUykfiR+r9WCSTEhFYtUrEhpcl0GtJuZWF/ULJlx8iOhPA9wEcjcWTzwygToI7jY89\nN3501H/dV03fj2KCo6tLzFTRqP97q8zNyfxroV4mw8MSKvW6uqFSPvV2ga0k9XYsYjER+8ccIz1r\n8kUYldrhJjjzdQAPAzgVQD+APttDT6E+YmbGimiMjPgzQjAwUNzHEQpJDr29SZxfMc3aCt2RDA3p\ndIqieMnsrERBTzhBIhsqNvyJG8GxHsAnmfkpZp5k5in7w+sBKu6ZnRVnM7NEOPwqOJ5+Wsaaj0BA\njFRjY9Ubl1sOHhSvTL6bw/Fx6SSqgkNRvGFyUoT+KadInQ0/TRsrmbgRHA9B/BuKj0ml5E47GJQL\ndTzuT8GxaZOYoR59tPB2XV0SLvWigVCliMdFcBSaTtm5U36qf0NRysec2zZulDTzejZUNgNuPp6v\nAdhORO8mos1EtMH+8HqAijvicbk4mwwVwH8eDkB6GixZ4iw9dnbW39MqpllbIaPa0JDUA/CyFbai\nNBumtXwgINHCNWvqp05PM+Mm+GSSsW+0LTPl6dQ06hPicXn091s1OOxdS/0CkZwwBgcLb9faKpGQ\niQkpz+tHxset7or5UP+GopRHOi2ZKD094tfwooupUh3cRDiOyfFYZ/up+AB7a+HRUbmj9mvjqU2b\npIulvYV1LsJhuatJp6szrlKYn5fqooWmU2ZmgOee8990yvy8RI9iMXmu1BZTrlpZTColN1DLlolw\nV7FRX5Qc4WDmFysxEMVbslNi/VzWd2BATiSPPw6ccUb+7SIRiSJMT/uvmI9p1nbEEfm32blTRKAf\nIhzz8zJeY9YNhcTzk0hYgo5IIkvBoJiPzaNeqhrWE4mEfK8PH5bjHQiIZ6mzUyoF+/VmoZqY1vKr\nVwOnnur/FHllMW4Lfx0L4KMATlpY9CSArzDz770amFIec3PWhWF0VAxVfmXdOgmPDg4WFhzBoJx0\nJif9JzgmJkQ0FXLIDw2JIKmV+MsWGZGIfC+WLpWL2vy8VZ3WtLOem5PtzetcgqStLVOUqCBxRrbI\n6OmRz6O/XwTHxIRMHUxMiPgIheRzasaUT9Naft06qbFR69byijvcFP66AMCdAHYCeHBh8VkAniCi\ni5j5Pg/Hp7hkdtb6pxwdBc49t7bjKUQgIC7zYsZRwGrmdvTR/jGJmSZRxaoBDg/LdEo1x11IZJiG\nUHbyGV6TSUuIGFESj8t+5+asaYBk0pqWySVIWlubO20xmRSRMTcnx6OnBzjuOBEZPT2ZWRbd3WKG\nnJ7OFB+JhCU+muHCa3oTnXgicPzxKmjrGTf/+l8EcB0z/7V9IRF9EcA/AlDBUWPm5+WEFgzKP+r0\ntJWhwizdB1tbJUzb3u6PC/fAAHD99XJCLtRCORKRCMfcXGG/RDWZmZEx5esHA8gd2lNPARddVPnx\nlCoynGCiF/kESSqVGR0xpuVCgsS+XyNKzHRCI5FKWSKjpUWEwrp1IjJ6ewv/vURWPw0jPsbHRXyM\nj1vio6en9q3HvYZZBFYsJlMo69b541yluMeN4DgJwNtyLL8RMs2i1BhzYo9EgN8vTHKZGhzxuJwA\n29tFjJg2x+3tEj3o6KjNHejAgIztiSck2pGPzk6pKDg56R/BMTkpx7xQquujj8qFtlL+jUqIjFIw\nkYtSBYmZsonHZfym/09bm3zWnZ31eRefSlmfRyBgNeBaskREhpu79EBAfre3V0rjT01Z4mNsTP7n\nw2ERNPUoPpJJ8REZLxGRiKlNm/xZQ0gpHTeXloMANgJ4Lmv5RgAHyh6RUjbmxN7WtrgtfSIhouKP\n/9g64c/MSNTDhC7n5+XiEQpVLwqyfr2cLIeHCwsOwCpm5peT0IEDxefVh4flwr92rXfvmy0yurqq\nKzJKwakgOXzY6kczMSEXVFPszQjiWoniYqRS8lnMzsr/S3e3VL5cskQ+Dy+nAgIB2Wdfn/QOmZyU\nY7V7txSfm5+3xIcfj9X8vIj0aNTKqGtrk8/2iCPkmIXD8p1ulMZlijvB8S0A3ySidQD+Z2HZWQA+\nAeBatwMhog8B2ApgBYBHAHyYmX9bZPsPAVgL4EUA/8DM33X7/o1EPC7GPpMS29trRQMSCbn7NeHr\nSEQaqK1fn3nHOTkpJ/zpaSvjpaOjclGQ1lbg9NPlwnzZZYW3jUTkpBqL1d69f/iwiLVIkc7dQ0Pe\n+DfqSWSUgl2QLFsmwiyVsgTI7OxiUdzSIt/HUKh2U4O5IkvHH299HtW42AcCMj3T32+Jj0OHJIV8\n3z65mHd1ydhqIT6YrSm1aFQ+VyL57CIR+awjEfnsw2F/CiTFG9x8tJ8HMAPgYwC+sLBsD4BtAL7q\nZhBE9HYA2wG8H8D/AbgawL1EdDwzL+qgQURXAPh7AO+FNJL7IwDfIqJxZv5vN2NoJLJTYu2RgGQy\n/1REe7s8+vtlvjidlpO9OeGPjVknfCNoTNjbixP+wABw443Fsz1CIRFDk5MilmrJ5KRcFAvVA4jH\nJeX3Ix9x9x6NKjKK0doqd+jd3fLaLorn5uR7aETIwYNyYQsGKz8Vk07Le87MyGs/fR4tLfJdXLJE\nPA9GfOzZI+LDjDcSqZz50rRViEatc1F7u/zfrlkjN0BGXNT6hkGpLm7qcDCA6wBcR0SRhWUzZY7j\nagDfYOb0AOy3AAAgAElEQVTvAAARfRDAnwK4HMA/5dj+koXtf7jwehcRvQwSZWl6wZGdEmsvaZ5K\nOfc+BAJyYjJ378cdlz8KEouJ4CgnCrJpk1y8n31WUt8KjYtIQsi1FhxjY4WbtQHiS0kmSyv4VUhk\n9PbWp6/BC+yiePVqufhHo5YIGR+3phcSCfmumGmYzk73F9l0Wj6L6Wl53dUFHHusRGP6+vz5ebS2\nyvdl6VIZ68SEfF/37pUHIP/bXV3lHRcTuYhG5bXx3yxdKp9TV5eIi1Co8QzBSmmUFbzyQGiAiNoA\nbAbwD7b9MhH9DMAr8vxaO4DsWnwxAC8nohZmbup6iTMz1glwZAR42csy15eTx58rCnL4sDV3bY+C\nGC+I0yjIySfLNkNDhQUHICexffskfF2rEGwiIXfWTqZTIhERbIVQkVE6gYB1twzIlEIqZQkQ408y\nAjmddv6dZLZERjotn8e6dZbIqKd6GK2tMu5ly+R7aBcfe/ZYnpOursKiIB63xEUyaQm6cFgEYHe3\n9Xk0auRNcY+jUzURDQF4LTNPENEwpGdKTpi5VB/+Ukj/lf1Zy/cDOCHP79wL4L1EdAczDxHRGQDe\nA6BtYX/Z+2oa5udFALS1yUnh0CFrSoXZykjxikBATlImamKPgtjNf3YviAmvhsOZJ/u2NmDDBrlA\nX3JJ4fc13WOnpmpX3nhqSi5IK1cW3m5oSIywue4ima39ACoyvKC11UolNZgiZnNzi/1JzFaWVmen\nLJuetoyXRx8tRsb+/voSGfloa5O/54gjLPFx8KD8P+3ebaXidnRY0Qvzv2umrFavXjw1oimrSjGc\n3hveASBue55XcFSJzwNYDuA3RBQAsA/AzQA+DsCHnTaqh+kSGw5bXWLtGSptbZU/aeYKe9ujIIcO\nWfn12Y3YNm0CfvAD+Z1Cd1r2Zm61Ehzj4/KzUDg6lZKU2Pe/P/f6Q4fkRK0io7KYaZUlSzIjc2Z6\n0JTMHxuT4796tSUyGtlnEAxKOvfy5fIdnJiQrKsDB+RYdHTIMViyJHNqRItvKW5wJDiY+bO259s8\nHsMYgHmIgLCzHCIkco0nBolwfGBhu70APgBghpkPFnqzq6++Gj1ZFZq2bNmCLVu2uBu9zzApsb29\ni9vSm3b11b5LyxUFefpp4JlnFm87MAB885vA888Xn4Lo7JSQ8Lp11Z8bNs3aiqXsPfWUCKt89Tei\nUeCUU/xder4RsX8nly8Xj0MyaZUZb8Y+He3t4olasUK+s7GYfL9VADcfO3bswI4dOzKWTU1Nlb1f\nN6XNnwfwMmY+lLW8F8AQM5fUMZaZk0Q0COC1kJLpICJaeF0w62XBq7Fn4Xf+AsBPir3fddddhwE/\ndM+qEPG45Z0YGZETRl+frEsk5KTihxNIJCKh7GxOPVXGPjhYXHBEInJHNjNTuMpnJZielvfNjtBk\nMzQkF68TT8y/jV8KmDU7ptS4YkWElOYk10340NAQNm/eXNZ+3dwXroV4LrJpB+C2FNO1AN5HRJcS\n0YkAvg4gBJkmARF9gYhuMRsT0XoieicRHUdELyeiHwA4BcCnXL5/w2Bva21SYs3cqqnB4QdMWDaV\nylze0SF3/E76qrS3W83cqs3ERPEy7ID8HRs25Da2mt/XwkaKojQDjiMcRPQG28sLiMgeX2mBRCRe\ncDMIZr6ViJYC+BxkimQngAts0yMrANiSO9ECqQNyPIAkgF8A+GNmfsnN+zcShw9b0wvZNThKSYmt\nNKaKaSy2eEwDA8Cdd1om10J0dIjZ7eijKzfWbJhlOqVY2H1+XgTHpZfmXh+NyvhVcCiK0gyUMqXy\nnws/GcAtWeuSAHZBRIArmPl6ANfnWXdZ1uunATTuvEgZ2FNiR0eB173OWsfsnzBpe7sIjenp3ILj\nppuAF18sXgrcTKvMzeUvm+01s7OSWWIKUuXjuedkXPlm8IxpVtMHFUVpBhxPqTBzgJkDAF4CcIR5\nvfBoZ+YTmPm/KjdUpRjGed/WJuH6ffsyIxwm/c8v9PdnTgEZNmyQ6Ran7eoPH67utIpp1lZMvA0P\ni/jLV1MkkbD8NYqiKI1OyR4OZj4mV7lxpfaYDJX2dinmk05bGSqpVHVSYkuhq0vGmE04DJxwghgu\ni0Ek/oiDBXOTvGX/fmfG26EhMcHmO+bpdPWiMoqiKLXGVY1GIgoDeBWANQAyTr3M7KqfilI+sdji\nlNhq1+AohVBIxpSrd8rAAHDffc58HJGI1AyIxyv/90WjUrOhmBeGWQTHW9+ae30iIaJFBYeiKM2C\nm7TYTQDugmSRhAGMQ6p7Hoa0p1fBUSOyU2KDQSleBFgXOD+kxBpMhcJcxtFNm4DvfU/qbKxaVXw/\nu3fLVMfy7GouHmOatfX3F97uhRfE55Gvf4qZklHDqKIozYKbtNjrIPUu+gBEAZwJ4GgAg5D28kqN\nsHeJ3b1bLtQmYyWZ9F/zpGBQhEY0unidaeXuZFrF3syt0oyNyXsVi7oMDYkPZcOG3OujUTGdaitu\nRVGaBTeXn40AtjNzGlIhtJ2ZRyBlxf+h4G8qFeXwYetCODKSaRj1Uw0OO319mULJ0N0thb+cCA7A\n6q2SXdfDS5JJKfns5DiaBnT5UmfVMKooSrPhRnAkYfUrOQDxcQDAFDJrZShVZmbG8jBkt6VPp/0Z\nvs9XcRSQKIeTTBXASrH1oPpuXiYnJSW2mO+CWcZdrB29X2qiKIqiVAM3gmMYgGl4/ksAnyOidwL4\nZwCPezUwpTTSaan50NYmPo7du4Ejj8zcxk+GUUMoJNMKuSITAwMSqXGSgdLaKn93JdNjJyZETBSb\nBhkdlTHnq79hDLx+FICKoiiVwo3g+CSkWRogpcQnANwAYBmAPD0xlUpjUmKDQbnYJZNWhGN+XnwO\nfhUcHR35fRyA82mVUEhMpvkiJuWQTsu+nWSVDA3J1NbGjbnXR6My1aKCQ1GUZsJNHY6HmfkXC88P\nMPOFzNzNzJuZ+RHvh6g4wbSlDwYlKgBYHo5adYl1gjGO5ioAtmSJlCwvdVplZsbbMQIyVTMz42wa\nZGgIOP74/NvGYtIkTA2jiqI0Ez7KWVDKIR636lmMjkpEw6ST+rEGh50lS3IbRwGZlnAa4ejoqFwz\nt6kpS7gVY3g4/3QKIGPs7fVubIqiKPWAo3ssIhoC8FpmniCiYUg/lZwws/Y4qQH2C/bICLBihdWj\nw2So+PWOOhzOXXEUkAv3j38s/gknWR3BoJR0X7Om+LZOcdqsDZDt9uwpLDgALfilKErz4fQSdAeA\nuO15BWbJlXKwp8Rmd4lNJv2dEREKiVDI1e7d+Dh27gTOPbf4vkwzt8OHvfNIzM1J1MTpdAqQP0PF\nVENVwaEoSrPhSHAw82dtz7dVbDSKa7K7xJ56qrXOT23pc2GvOJotOFaskGyboSFngiMUAg4dEoHg\nleCYnBSj57JlxbcdHgbWrcs/ZaIVRhVFaVZK9nAQ0beJ6NUVGIviEma5Cw8G5Xl2DQ7Av/4NQERG\nvoqjgEQLnPo4iKTCp5fN3A4ccN5Cfmio8HRKNCqG0ZYWb8amKIpSL7gxjS4DcA8RjRDRl4jodK8H\npZSGSYlta5Py3ocPW1MqpvmZnwUHIL1J8hlHN20Cnn1Wim45wTRzSyTKH1csJhETJ9VFx8aAF18s\nXPArmdQKo4qiNCdu0mL/HMBKAJ+HFAAbIqIniOiTRLTW2+EpTrC3pTddYk2Ew+8ZKoZCUz6bN4tw\n2rnT2b7CYREnXmSrTE5K9MjJFIgZX74Ih6kPov4NRVGaEVdpscw8wczfZOZXQxq33QzgLwH8zruh\nKU6JxTJTYgGryqgxYvpdcJhW9cnk4nVHHin+CafTKi0tcnH3opmbadbmpOnd0JAIvXxeD1OYTf0b\niqI0I2XV4SCiNgBnAPgjAGsB7PdgTEqJ2KciRkeBpUutFE5TO8KpB6FWFKo4SlRaXxXAauY2P+9+\nTKZZm1PD7dBQ4ekUrTCqKEoz40pwENG5RPQtiMC4GcA0gD8DcFSh31MqQzSaPyXW1OAo1k691rS1\nyThzVRwFZJriySfzG0uz8aKZWynVRaemgN/9rrBhNBaT7BU1jCqK0oy4yVLZDeAuAEshvVOWM/Pl\nzHw/cyW6WCjFmJ21IhgjI5kZKsmkP9vS56K/P7/Rc2BAohWPPupsX21tMs1Ujo/DabM2oLh/A5C/\nTSuMKorSrLiJcGwDsJKZ38TMP2TmPLkFSjVgXtyW3t4lllmmKuqBQhVHjzlGLtalTKuEQlL5040M\nTqfld51OfwwNSc0QU04+G5MtpNMpiqI0K26yVL7FzJNEdBwRXUBEnQBA5PegfWOSSFiZKCYz46is\niS0n/T/8QDgsY80V5TA+DqfGUUCmQiYn3TVzm56Wh9Po0PBwYf+GVhhVFKXZcTOlsoSI7gfwLGRq\nZeXCqn8jou1eDk4pTixmGUOzU2JN5orfM1QMxjhayMfx+OP563VkY5q5ufFxTE1ZWSXFmJsDnn66\nuH+jo8NZPxZFUZRGxM2UynUAkgDWADhsW/4fAC70YlCKc0xb+ra2xW3p66UGh6G1Fejuzm8MHRiQ\nv+nJJ53vMxiUbJVSYAb27nU+FfXIIzIFo4ZRRVGU/LgRHOcD+AQzj2Ytfw5Sk0OpItkpsd3dUjob\nsO7Q60VwAFKFM59x9LjjZJpkcND5/rq6pFKo0+wWoLRmbYBMpyxZUrhDbTKphlFFUZobN4IjjMzI\nhqEfVkdZpUrEYlbK68jI4i6xoZCzolV+odBFvqUF2LixNONoOCxio5Rslakpq2aGE0z9jXwuJq0w\nqiiK4k5w/ArApbbXTEQBAB8H8AtPRqU4ZnraSonNV4OjnjAVRwulxz76qPhTnEAkj7Ex52M4eFDG\n4MQGHYsBTzxReDrFGEY1Q0VRlGbGUXv6LD4O4H4iOgNAEMA/ATgFEuE4y8OxKUVglswUe1v6jRut\n9el0/V3kQiGJLESjuQ2bAwOy7umngVNPdbbPSEQqhjoxgcZiIjicTqc8/riIn2L+Da0wqihKs+Mm\nLfZxAMcD+DWAOyBTLD8CsImZf+/t8JRC2FNiYzG5qNZTW/pctLaKByVfpsqJJ8rFu9T02NlZZ9kq\nU1PSbdfp9MfQkIx33br828Ri4k2pp6ktRVEUr3ET4QAzTwH4e4/HopSI6RLb1bU4Q2V+Xi5w9SY4\nADFXvvRS7nWtrcCGDeLjuPTS3NtkY2/mlq+xmuHQIfnpVBwMDUlUqdD2iYRl5FUURWlW3NThWE9E\nW4noX4joa0R0NREdU4nBKYWxp8Rm1+AwtTnqUXAUiy6YRm6lNGYLh6VyaKHfSaUkhdbpdEoyCTz2\nWOGCX1phVFEURShJcBDR3wB4EsA/ArgYwFsBfBnAM0S01fvhKYUw0w5EEuHo6JD0TKD+anDYCYdl\n3PkKfA0MyBTJ737nfJ+RiFQcnZ7Ov00pzdoAqQcSjxc3jHZ0aIaKoiiKY8FBROcC+DvIVMpSZl7J\nzCsALAPwRQBfJKJzKjNMJRf2lNjdu2U6xbxOJMTr4KTxmN8oVnH0lFMkelNKemxbm0QkCqXHTkxI\nBMTpMRsaEiFx/PH5tzGGUa0wqihKs1NKhOODAL7NzNuYecIsZOZxZv40gBsBXOH1AJX8zM5aF8fs\nlNhksn7vqltaxPOQr1hXe7tkqJRSAAyQi36+Zm6lNmsDRPCcfnphgRKNiidFDaOKojQ7pZwGXw7g\nuwXWfxfAmeUNR3GK6RJr0jzruS19Lvr65G/Ih/FxlNIJNhKRCMfs7OJ1MzMypeL0mKVSUtK8kH/D\nbKeGUUVRlNIEx3IAuwqsfwHAirJGozgmmRR/QDAoF7W9ezPb0hPVp3/DYKIz+QTFwICIh127nO+z\no0MiDrnSYycnrQJdTnj2WSmBXsi/kU7L51CvkSZFURQvKUVwdADIU/8RgDR0q5NG6PWPSYkNBq3s\nCzOlYjIj6llwhEL5W9UDkhrb0lL6tEp7u9QryWb/fufN2gDxb7S3AyefnH8brTCqKIpiUaql8L1E\nlCMgDQCo4wB+/RGLSWQjX0psPbWlz4W94miuv6OzEzjpJJlWectbnO+3q0vKnNt7pczNiWG0lCmo\noSHgtNOssvK5UMOooiiKRSmC4yUA73OwjVIF4nErkjEyInf7y5fLOhP5KFbG28+0tIjZcs+e/NsM\nDAD33GMdByeEwyIupqYsITA5KdVFTUpxMdJpYOdO4C/+ovB2sRhwxBFqGFUURQFKEBzMvLaC41BK\nxJ4yOjoq/g2TLWGKftWz4ABEcBTyaAwMAN/5jpUS7AR7M7cVC46jsTE5dk5Fy/PPSz2PQv4NQD4H\nNYwqiqIIeu9Vp8zNWeH87Lb0pty50wuoXwmF5G/IZxw9/XRZX0pfFUCOzf79lvH24MHSplMGB0Wg\nFGoel05LZEP9G4qiKIIKjjplejqzS2x2DY56Tok1FKs4GolI0a1SCoABmc3cpqZEvJWSSTI8LMXH\nCplMtcKooihKJio46pBEwkqJTacXTykwl5Zx4Vc6OwtXHAVkWqPUCEdrqxy3iYnSm7Uxi+AoNp0S\ni8nY1TCqKIoiqOCoQ0xKbFub+A/i8fpvS58LYxwtJDg2bRLBtW9fafsOh6V2yf79pUUhXnxRREqx\ngl/RqBQvq/dpLUVRFK9QwVGHmC6xweDitvSpVP2nxNrp7S1ecRSQrJFSMM3cZmZKm34aHpZoyOmn\nF95ufl4No4qiKHYcZakQUbfTHTJzgX6cihfE41YVy9FR+blqlayr5y6xubBXHM0VLejrA9atEyPn\nhRc6328wKMeRqLQGd0NDwIknFo6KaIVRRVGUxTg91U4CcNq1osXlWBSH2LvEjo5KrQcjMEwNjkYR\nHKGQZRzN50vZtKn0iqOAVbfEKcwiOM47r/B2xr+hGSqKoigWTgXHubbnayHt6G8G8JuFZa8A8C4A\nf+PVwJT8zM5aKbGjo4ubtvX1NU6xKVNx1FzEczEwANx+OzA+DvT3O993qcZa4/lwYhjVCqOKoiiZ\nOBIczPxL85yIPg3gGmbeYdvkTiJ6DMD7Adzi7RCVbGZmMmtwnHiitS6RaIyUWEMgIALKlG/PhfFx\nOIk+lIPJhtm4sfB2sRiwcqUaRhVFUey4uQ9+BYCHcyx/GNLCXqkg9i6xzItrcMzPN14ov6cnfxM3\nQKaUjjqq9HocpTI0BBx3XHEzaCoFdDt2PSmKojQHbgTHCHL3VHnvwjpXENGHiOgFIooS0f8S0cuK\nbP9OItpJRHNEtIeI/o2ISgio1yfxuCU4pqZkeiW7rHej+DcMxSqOAjLNUWnB4aT+hlYYVRRFyY0b\nwXE1gA8T0WNE9O2Fx6MAPrywrmSI6O0AtgP4DIBNAB4BcC8RLc2z/VmQqZtvATgZwFsg0ZVvunn/\nesKkxObqEjs/Lxe7RhMc4bD4LfJVHAVECDz3nFRgrQQHD8r0ldOCX5qhoiiKkknJgoOZ7wKwHsCd\nAPoXHj8BcPzCOjdcDeAbzPwdZn4awAcBHAZweZ7tzwTwAjP/KzO/yMz/A+AbaIIpnVhM7vQDAUtw\nmAiHqc3RaILDGDCLFQBjLr0eh1NK8W+EQo1R6VVRFMVLShIcRNS6YBoFM3+Kmd+88PgUM7uaTiGi\nNgCbAdxvljEzA/gZxC+Si98AWE1Er1/Yx3IAbwXw327GUE/Y7/JHRsRQae6mG1VwBAJSACwazb/N\nqlWS5lqpaZXhYeDoo4GlOWNuFlphVFEUJTclCQ5mTgH4OEpoa++ApZDaHfuzlu8HsCLPOP4HwCUA\n/oOIEgD2ApgA8FcejsuXzM5ahaqyU2ITCREbpRSyqhd6esSMmQ8ime5wU4/DCUNDxadTAPFwqGFU\nURRlMW48HPcDeJXXAykFIjoZwFcAbAMwAOACAMdAplUamtlZq0vsyAhw5JHWukbpEpuLcFhERTqd\nf5tNm4BnnpHur14yOQk8/3zx/inz81phVFEUJR9u7oXvBvBFIjoNwCCAjNM7M99Z4v7GAMwDyK77\nuBxAvpZcfw3gQWa+duH140R0JYBfEdGnmDk7WvIHrr76avRk5TVu2bIFW7ZsKXHY1SeVkpC9ERy7\ndwNnnmmtTyYb92Jnrziar6DWwIBc9B97LPO4lIuZpnFqGNUMFUVR6pkdO3Zgx44dGcumpqbK3q8b\nwXH9ws9rcqxjlFjanJmTRDQI4LUQIyqIiBZefzXPr4UAZFdmSC+8f8HZ8+uuuw4DTmLjPiQWk2mT\n7m65iz90aHFKbKOaFe3G0XyC4+ijpdLo4KC3gmNoSDwiK3JO8FnEYlZGjaIoSr2S6yZ8aGgImzdv\nLmu/brJUAgUebvuoXAvgfUR0KRGdCODrEFFxMwAQ0ReIyF7B9CcALiaiDxLRMQtpsl8B8BAzl9io\nvH4wbemDQYluAJaHwzQ3azTDqMFUHC2UqUIk0x5eG0eHhopPpwAytv5+NYwqiqLkwhcdN5j5VgBb\nAXwOwDCADQAuYOaDC5usALDatv0tkAjLhwA8BuA/ADwF4OIqDrvqxONWSmx2W/pksrHa0ueip6dw\nq3pApj2eeKKwMCmF2Vng2WedGUbn5xvXQ6MoilIurvIZiCgMMY6uARC0r2PmfNMgBWHm62FN12Sv\nuyzHsn8F8K9u3qteMYIDkAyVcFjSRYHG6xKbi1BIxJap5pmLgQERJY8/DpxxRvnvuXOnHPNigsMU\nXVP/hqIoSm5KFhxEtAnAXZApjzCAcUhq62EAB5Dfd6GUib1pm+mhYsL3pgZHMJj/9+sde8XRfD6O\nY48Vj8vwsDeCY2hIam9ke2WyMd6SRjXtKoqilIubKZXrIB6KPgBRSNXPoyEZK1u9G5qSTaG29IkE\n0NXV2P6Bzk4RHIWmSwIBqQbqlY/D9E8pdlxNhdFGjjApiqKUgxvBsRHAdmZOQ9JZ2xeqjH4cwD94\nOTjFIjsldmQk8647mRTB0cgQiXG0UMVRQATCI48U93sUIxoFnnzSmX8jGlXDqKIoSiHcCI4kJAUV\nkCmUNQvPp2AzdireYpq2BYMSzdi/P1NwpNP5pxkaiZ4e8UsUYtMmOV5PPVXeez36qLyXkwwVZjWM\nKoqiFMKN4BgGYFrH/xLA54jonQD+GcDjXg1MycS0pW9rA/bskQtco7elz4WTiqMnnCDTG6bhmluG\nh8WUu25d4e2MYVT9G4qiKPlxIzg+CeldAgCfgvQwuQHAMgDv92hcShYmQ6WlZXFb+lSq8VNiDaYT\nayEfR2srcPrp5QsOU3+j2DRJNKoVRhVFUYrhpvDXw8z8i4XnB5j5QmbuZubNzPyI90NUgMwL7Oio\nTK0sWyavG7VLbC6ctKoHRCg88kjx6Zd8xOOSWuu04FdXl1YYVRRFKYQvCn8pxZmbk+gGYDVtM7Uo\nEgmZamnklFgDkZgziwmOgQE5Zs895+59nnxSjqsTw2gsJmZWRVEUJT+O6nAQ0TCkT0lRmLk+G5X4\nHHuXWFODw5BMipmyxW1h+Tqju7twq3oAOPlkifgMDgInnlj6ewwOiidj/fri26bTahhVFEUphtMI\nx38CuGPhcS+AYwHEAfx/C4/YwrJ7PR+hgvl54PDh/CmxpgZHs2CvOJqPYBA49VT39TiGh6WeRzER\nl0rJNurfUBRFKYyjCAczf9Y8J6JvA/gqM/+tfRsi+iw0LbYimKZtkYiIjz17Mot+zc83V4aEqThq\nim3lY2AAuPXWwqXQc5FKSUrse99bfFutMKooiuIMNx6OtwL4To7l30ODN0+rFaYtfVub1N9IpZoz\nJdZgMkKc+DimpoDnny9t/08/LZknTv0b4XBzHX9FURQ3uBEcUQBn5Vh+FmRqRfGYeFzu0nOlxKbT\njd2WPhdOK46edpqkyJY6rTI0JKLmpJOKb2ta0iuKoiiFcdMt9p8B3EBEAwD+b2HZHwG4HMDnvRqY\nYhGPW89HRkR4rFwpr5uhS2wuursLezgAEQ0nnywC4q1vdb7v4WFgwwYRK8Vgbi7/jKIoiltKFhzM\n/EUieh7ARwBcsrD4KQCXMfOtXg5OEebmLA/C6CiwYoV1MWymGhx2TMXR+fnCxs6BAeAnPxFh4KTP\nyfy8CI5LLim+rTGMqn9DURSlOK7qcDDzrcx8FjP3LzzOUrFROWZmLEGRnRKbSMg600W2WXBScRSQ\nwl2HDklkyAm/+52kIDst+KUVRhVFUZzhuvAXEQWJ6CgiWmN/eDk4xUqJzdeWPplszhoQHR0SWSgm\nOE4/XaJDTsucDw/LsT711OLbmgqjzRZdUhRFcUPJgoOI1hPRryDm0RcBvLDw2LXwU/EQe5dY5txF\nv5oxpO+04mhXlzRzcyo4BgdFbDgREWoYVRRFcY4b0+jNAFIA/gzSxM1RBVLFHaYGR2+vTA1Eo5mC\ng7l5e3iYuiTF2LQJ+MUvim/HLBGON7/Z2fun02oYVRRFcYobwbERwGZmftrrwSiLicetbrAmJdYI\nDmOEbNaQvqk46sQ4+v3vA3v3Wtk9udi1C5icdFZ/w3wm6t9QFEVxhhsPx5MAlno9ECU38biVXZEt\nOFIp8Rs0q+AIh511jt24UX4Wm1YZHBThsmFD8ffWCqOKoiil4UZwfALAPxHRq4loCRF12x9eD7DZ\nsafEjoxIS3ozhWKqjzar4Ghvd1ZxtLcXOPbY4gXAhoel0ZuTqIUxjDZDh15FURQvcDOl8rOFn/dn\nLSeIn6NJepZWh5mZzC6x2RkqwWDzXvSMcfTQoeLbDgwADz2Uf73xb1xwgbP3jsWAtWudbasoiqK4\nExznej4KJSfp9OKU2HXrrPWJBLB0qbOCVo1KJCJioRgDA8BttwFjY3LMstm9GzhwwJl/A9AKo4qi\nKKXiptLoLysxEGUxJkPF+ARGR4FzzrHWmw6yzUw47Mw4agp5DQ8Dr3vd4vVDQyLcjN+jEMYwqv4N\nRVEU55RT+CtERCcS0Qb7w8vBNTtGcLS1AdPT0vnUPqXCLMbFZsZUHC3WyG3pUmDNmvzG0eFhYP16\nZ5gq6qkAACAASURBVAIuGtUKo4qiKKVScoSDiJYBuAnA6/Nsoh4Oj4jF5M49V0qsoVkNo4aODpna\nmJkpPsUxMJBfcAwNAa98pbP3jMXEiNqs3hlFURQ3uIlw/DOAXkiH2CiACwG8C8BzAN7g3dAUe5fY\nXCmxLS0qOABpVV8sUwWQaZXf/15qbdjZt088HE76pwDyuSxZUvo4FUVRmhk3guM1AK5h5ocBpAG8\nyMzfA/BxAH/j5eCanWjUMoSOjAA9PdKWHWjeLrG5iESKt6oHgM2b5efOnZnLzWunhtF0Wv0biqIo\npeJGcIQBHFh4PgFg2cLzxwA4PGUrTijWJbaZa3DYCYUk2pNKFd5uxQqpNJo9rTI4CBxzjERKimGE\nnvo3FEVRSsON4HgGwAkLzx8B8AEiOhLAByG9VRQPSKelTbo9JTa7aZu50DY7TiuOAjJtkl0AbHjY\n+XSKaUmvEQ5FUZTScCM4vgLAdKT4LMQ8+hKAqwB80qNxVYxEotYjcIbJUMlX9CuR0DoQhvZ2Z63q\nAZk2eeYZEXMAMD4uPVScTqdEo3LcjRBUFEVRnOGmDsf3bM8HiehoACcCeImZx7wcXCWYmKj1CJxh\nb0sfiwEHD2ZGOObn9S7bTn+/HKNiDAxI9OiRR4CzzrKmV0oxjGpLekVRlNIpOcJBRJ8moj/MYDPz\nYWYeAjBHRJ/2dHQVYP9+ZwbDWlOoS6xB/RsWXV3OKo6uXi0ZJmZaZXgYOPJIYPny0t5LURRFKQ03\nUyqfAZDrlBtaWOdrJifrI8oRj1sX0GzBkU43d1v6XITDzoyjRJn1OIaHnU+nJJMylaKGUUVRlNJx\nIzhMk7ZsTgcwXt5wKk86DezZU+tRFCcatbrEjo6KKdLUftAMlcWYiqNOfRxPPAHs38947rnS/Bta\nYVRRFMUdjgUHEU0Q0ThEbDxLROO2xxSA+wDcWqmBekUkAuzdK23f/cz0tGUYHRmR6IapyaE1OBbT\n3i5THcUEx9zcDB555DOYnz8Pb3nLG8F8Hh5++DOYm5sp+h6xmHx/1DCqKIpSOqWYRj8KiW7cCJk6\nmbKtSwDYxcy/8XBsFaGzUzIUDhyQ2gt+hFkEkT1DJbsGR2enXviy6e+XzzUfc3MzuOyyi7Fr1zUA\ntiEalWDd3Xffi6eeuhg33XQ7wuH8zVQSCTWMKoqiuMWx4GDmWwCAiF4A8CAzF5kt9ydEMt//0kti\nIGwtOU+n8piU2I4OeT06CrzmNdb6ZBI44ojajM3PdHUVNgRff/2XsWvXNUinL7QtJaTTF2LXLsYN\nN2zH1q3b8v6+VhhVFEVxTylTKq1E1M7MvzRig4iWE9FniOifiOjsyg3TW3p7xTx66FCtR5IbIzja\n28UEuW9fZoQjldJMiVyEQiIg8xlHH3jgQaTTF+Rcl05fiAceeDDvvk1NFPVvKIqiuKMU0+i3AHzV\nvCCiCIDfAvgQgAsA/IKI/sTb4VWG1lYxZO7eXeuR5MaeErt3r9TcyG5Lr/6NxRSqOMrMSKXCkFnB\nXBCSyRA4T26tVhhVFEUpj1IEx1kAbre9vhTSin49M58O4FoA/4+HY6sofX1Sk2Nqqvi21cZ+wRwZ\nkZ8mwmGuhyo4FhMM5jeOEhFaW+eQO8EKABitrXMgyi1IolFpnOfHKThFUZR6oBTBcSSkBb3htQBu\nZ2Zzyb4FwCleDazSmDvh/ftrPZLF2LvEjo7KRc4UpkqlNCW2EIVa1Z9zzlkIBO7NuS4QuAevelX+\nWcFEwllzN0VRFCU3pQiOGIBO2+szATyUtb6unAXd3RJBiMdrPZJM7E3bRkaAVausJm1ag6MwhSqO\nXnnlVqxdey0CgbthRToYgcDdWLv2OlxxxceK7ltRFEVxRymCYyeAvwQAInolgOUAfm5bfyyAOiip\nZdHdLfUuxnzUAYZZBIe9Lb3dv6E1OAoTDuc3jobDEdx00+1429sewqpV52PZsj/HqlXn421ve6hg\nSqwReWoYVRRFcU8pM9KfA3A3Eb0N0i32Zma2t6N/E4D8Nn8fEgjIhXtkBFi50qrsWUsSCYm42FNi\nX/7yzPVLl1pTLkompuJoNCpFurIJhyPYunUbtm4VI2k+z4YdrTCqKIpSPqXU4fglEW0GcD6AfQBu\ny9pkJ4D/83BsVaGvTyIcExNW6fBaEotJFKO7W+o+7N69uC19rgupIhjj6ORk8ePkRGwA8pkccYQa\nRhVFUcqhpFMoMz8F4Kk8677pyYiqTDAoaaf79vlDcJi29G1tMqZEIrMGB7MYXpX8LFnirRlYDaOK\noijl44NJhNrT0yORhMOHaz2STAOrtqV3RzhcuOKo230qiqIo7lHBAQnBz84CBw/WeiSZKZ2jo+LV\nWLVKXqdSkq2igqMwoZBEiJLJ8vcVj2uFUUVRFC9QwYHM/irz87Udy8xMZtO2FSus15qh4oxCFUdL\nRSuMKoqieINvBAcRfYiIXiCiKBH9LxG9rMC2NxFRmojmF36ax2Nu37+3Fxgfr22KLHOm4DBt6Q1a\ng8MZbW3OWtU7IRqVKTdTB0VRFEVxR1mCg4iuJ6Kl5Q6CiN4OYDuk7f0mAI8AuLfAvq8CsAKSnrsC\nwFEAxgHc6nYMra0S6dhTw0oiiYQlKoDFbemTSQnt68WvOP393giOZFINo4qiKF5QboTjEgDdHozj\nagDfYObvMPPTAD4I4DCAy3NtzMwzzHzAPAC8HEAvgJvLGURfn2SGTE+Xsxf3mC6xwaBEO7IFRyKh\noX2neFEV1FQs1WOuKIpSPuUKjrLLTxFRG4DNAO43y1hadv4MwCsc7uZyAD9j5pFyxhIKSQj9wIFy\n9uIee0rs5CQwN5dZg0Pb0jvHC+OotqRXFEXxDj94OJZCus5mV07YD5kuKQgRrQTwegDf8mIwPT1i\nHk0kvNhbaZiUWKLFXWLNcvVvOMNecdQtWmFUURTFOxwLDiJ6DRFluAeYOcLMz3s/rJJ4N4AJAHd4\nsTPTX6UWKbLZXWIB4Mgj5Wc6rYKjFNrapNJoOT6OWEzMxOqZURRFKZ9SKo1+G0AvEd0Dubjfzcxe\nuB3GAMxDmsHZWQ4poV6MywB8h5lztOtazPbtV6Orqydj2QUXbMGFF24BIP1U2tqsLq3V7FkyO2uV\nzx4dlYqZxj9gplpMBotSnP5+YO/e4tvlQw2jiqI0Izt27MCOHTsylk1NTZW931J6qawjog0A3gDg\nYwBuJqJfA7gTwB3M/JKbATBzkogGAbx2YV8gaXLxWgBfLfS7RPRqSJfaf3P6fh/72HU48cSBgtvY\n+6v09zvdc3nkSok10Q1Aa3C4oZyKo8YwqtMpiqI0G1u2bMGWLVsylg0NDWHz5s1l7bckDwczP8rM\nf8fML4dc6G+H+CeeIaKdRPQ5IjrDxTiuBfA+IrqUiE4E8HUAISxknRDRF4jolhy/9x4ADy30ePGM\n9nYxaO5zEl/xiGTSMikCuZu2BYMa4SiFUEiOlxs/Tjwu3wMVHIqiKN7g2jTKzHuY+evM/CcQ4+fn\nAawFcA8RfbLEfd0KYCuAzwEYBrABwAXMbJwUKwCstv8OEXUDeBNkqsdzenur218lHrfKaAO5i35p\nl9jSCIfF9OnGx2EqjKrgUBRF8QZPGm4z8xwk2nH7grG05IkIZr4ewPV51l2WY9k0gIoliXZ1SbbK\nwYPA0UdX6l0sYjGJqrS1iZdjYkJTYsultVVMwGNj8rMUYjHx8KhhVFEUxRvKrTR6FhFluAqYed4W\nmahbTH+VkZHq9FeJx8U3QJS7Syyz3HErpdHXl9mB1ymJhES5FEVRFG8otw7H3QCOLLpVndLbCxw6\nJI9Kk90lFtC29F7gJirELNlKWmFUURTFO2peadTPVLO/ytxcZg+Vri4pQgZYKbEqOErHVBwtxTiq\nLekVRVG8xw+VRn1Nb69kq8zMVPZ9pqcz29KvXm3VANEuse5xU3FUDaOKoijeU5JplIg+nbUoCOAq\nIho3C5j5c14MzC+EwzKlsn9/5bJEEonCGSpag8M9ra0SKTpwwIoYFSMWkxooAZXjiqIonlFqlsox\nWa8J0hrenMq57BH5kEhEog5r1lSmDobpEmvuqEdHgQ0brPWJBLB0aXWrnjYSfX2WL8YJyaQaRhVF\nUbymJMGRnZ5KRG8B8HEf9FOpKN3dUpNjbExSJb3GdIkNBuX5gQOLa3BoSqx7SjF/aoVRRVGUyqBB\nYwe0tIgYGB21LkheEo9bzdn27JH3sNfgSKf1AlgOxjjqJD02Hlf/hqIoSiVQweGQ3l4pAjY56f2+\n43FruiRXW3pA/RvlEA4DnZ3OKo6qYVRRFKUylCs4PgBgvxcD8TsdHTLtUU730XzMzGSmxLa3i2cD\nkKJjLS0qOMqhpUUMo04ERzQqng81jCqKonhLWadVZv7+QlnzpqCnR6Y8SkmxdIJdcJguseaCpxkq\n3tDX56wWRzLpPJtFURRFcY7ex5VAJCL1Mg56WLg9mcxMid29e7FhVGtwlI8xjhby4GiFUUVRlMqh\ngqMEiGRu/6WXvOuvYlJis4t+GRIJ8R9oE7HycNKqXlvSK4qiVA4VHCXS1weMj8vDC4zgaGuTjrDZ\nEY5kUlNivcBJxdFoVMRdZ2f1xqUoitIsqOAokdaFyiW7d3uzv1jMCuXv3y+RE21L7z0tLZJpVMg4\nGovJNmoYVRRF8Z6ST61EtK4SA6knentFHHjRX8VeG0JTYitLX59EjPKRSmmFUUVRlErh5l7ud0T0\nCyK6hIg6PB9RhfnoRz+IL33pM5ibc68WwmHp7nrgQPnjmZ21oiajo3InvmKFvGYW34gKDm8w3oxc\nxlFTeE39G4qiKJXBjeAYAPAogGsB7COibxDRy70dVuUYG7sBt932Clx22cVliY5IRCIShe6YnTA7\nm1mDY+VKS4Bohoq3GONoroqjWmFUURSlspQsOJh5JzN/BMAqAJcDWAng10T0OBFdQ0TLvB6ktxDS\n6Quxa9fVuOGG7a730tMjVUfHxtyPJJUSo6IRFNkZKlqDw1tCofwVR7XCqKIoSmVxbY9j5hQz/wjA\nWwF8AsBxAL4MYISIvkNEKz0aY0VIpy/EAw886Pr3W1ok+lBOf5VYzIpiAIvb0pt0WbNeKY9CxlFT\nYVQ78iqKolQG14KDiM4gousB7AVwDURsHAvgdZDoxx2ejLBiEJLJELiMbmy9veLjcNtfxV6Dg1nE\nS7bgiET0Iuglvb25a3GkUlphVFEUpZKU1J4eAIjoGgCXATgBwF0ALgVwFzOnFzZ5gYjeDWCXR2Os\nEIzW1jlQGVdz019l/365Oy6VeNxKiT14UF5rDY7KEg7L8TaGXEAMo1phVFEUpbK4iXBcAeD7AI5m\n5jcy83/ZxIbhAID3lD26ChII3INXverssvfT3S2RCSeNwbIxggOQfQCZHg5mETWKd+QyjqphVFEU\npfKUHOFg5vUOtkkAuMXViCoOA7gba9dehyuuuL3svXV3S6nzgwczxYIT7BkqpgbHqlXWek2J9R5T\ncdSYRAHxb3R0aIVRRVGUSuKm8NdlRPTWHMvfSkTv8mZYlaOr60oAD+ETn7gd4XCk7P0RyYVqZERC\n86WQ3ZZ++XLrIphKSXqsCg5vCQRk+ssekYrFgP5+9cooiqJUEjdTKn8DYH+O5QcAfLK84VSef/mX\nG3Dssdtw/fUR19kl2fT1SXrsoUPOf8ekxJqmbaYtvUFrcFSO3t7M+inz82oYVRRFqTRuBMcaAC/l\nWP7iwjpf09oKfOxjwCOPAD/9qTf7bGsTv8WePc5/Jx636mwAudvSB4PWesU77BVHtcKooihKdXAj\nOA4A2JBj+ekASrjHrx0vfznwqlcBX/2qO7NnLnp7gX37xJfhBHuXWEAiHNlFv0IhbSRWCUIhiRzF\n41rwS1EUpVq4uZztAPBVIjqXiFoWHq8B8BUAP/B2eJXjox+VKZDvfteb/XV1ldZfJR6Xu+uWFmBq\nSvwcuWpwKN5jrzgai2lLekVRlGrgRnD8LYCHANwPILrw+CmAn6MOPByG1auBLVuAW26ROhpe0NXl\nvL+KPbKSKyU2nda77kphN45Go2oYVRRFqQZueqkkmPntAE4E8E4AbwZwLDNfvpAOWze85z1yUf+X\nf/Fmf729zvurzM1JdAPQtvS1oKdHokjz85LarCiKolSWcnqpPMvMty0U/nrRy0FVi64u4Morgbvv\nBh57rPz9tbTIY/fu4v1VZmctQ+joqIgVU1V0fl7uwlVwVA5TcVQrjCqKolSHkgt/AQARHQXgDZCs\nlIw8Cma+xoNxVY2LLgJuvRXYvh248cbyTZp9fTJFMzUlIiIX8/PA4cOZNTiyS5prl9jKYoyjmqGi\nKIpSHdwU/notgGcgJc4/BuBcSG+VywFs9HR0VaClBdi6FXj8ceCee8rfX0eHhOoL+UJMhkq+tvRa\ng6PyGKOoqTyqKIqiVBY39/NfAPBlZj4NQAzAxQBWA/glgNs8HFvVGBgAXvta8XJEo+Xvr1h/FSdt\n6Ts7pWaIUhkCAYlAaUt6RVGU6uBGcJwE4DsLz1MAOpl5FsCnAXzCq4FVm6uuEsPnLR50gOnuBqan\npb9KLuwpsdGopOdql9jqc8wxwBrfl6pTFEVpDNwIjjlYvo29AI61rVta9ohqxJFHAu98p9Tl2Lu3\nvH0FAhKmHx3N3V/F3qnUpMTaBUcqpYKjGnR3a4aKoihKtXAjOP4XgOnrfheA7UT0KQA3LqyrW979\nbrnQf/Wr5e+rt1ciHOPji9fNzVnm1Hxt6dW/oSiKojQSbgTHNZDCXwDwGUgBsLcD2AXgPd4MqzaE\nw8Bf/RVw333Azp3l7SsYFOGQK1oyO2sJipERMS729clrZm1LryiKojQeJQkOImoBcBQWmrcx8xwz\nf5CZNzDzxfVaj8POn/4pcPLJkiZbarv5bHp7paHb3Jy1bH5eXmenxBrjomaoKIqiKI1ISYKDmech\nZcz7KjOc2hMIANdcAzz1FPBf/1Xevkx/FXuKbHaXWK3BoSiKojQDbqZUHgewzuuB+ImNG4Hzzwf+\n9V8zoxNuMP1VUil5nd0lNrsGhxEcZr2iKIqiNAJuBMf/C+DLRPRnRLSSiLrtD68HWCuuukq8Fjfd\nVN5+enoy+6vE4zKt0toq4mLfvsU1OLq6tDaEoiiK0li4ERx3ATgdwJ0ARgFMLDwmF342BCtWAJde\nCvz7v1uZJG5obZVpGtNfxZ4Su2eP+ESyp1S0Lb2iKIrSaLipZXmu56PwKZdeCtxxB/CVrwBf+pL7\n/Zj+KtPTmSmxpktsdkqsltpWFEVRGo2SBQcz/7ISA/EjnZ3Ahz8M/O3fAg8/DJxxhvv9HDjw/7d3\n5/Fy1fX9x1/vm31nCQSCRELKKptQiuxVkCBiXeAhIghCxQVUZClLbUGhVYpsRQsCRSj+agRardSi\nIQIpEkCWQCEEQSFAyMIqIQQCN7mf3x/fM2TuMHNzZzJn7snM+/l4zCN3zjlzzvvOTTKf+z3fJd0+\nWbq0d4fRIUNggw16H+8Oo2Zm1m7qLjgk7dPX/oi4o/E4xXPggWk12YsuSrOQDhrU2HnGjUsFRlfX\nqg6hCxakGU5L51yxIt2CccFhZmbtppFbKjOrbIuyrxv8SC4mCU45Jc1CetNN8MlPNnaesWPTLZRR\no1Yth15t0TbPwWFmZu2okU6j61Y8NgQOBO4DDmhetOLYbjs46CC47LI0cqURpfVVXnut9y2VymXp\nPQeHmZm1o7oLjohYUvF4KSJmkFaKPb/5EYvhq19NK7tefXXj51h/fVhvvXTbZOXKVbdUSrq7U+tH\nVyNloJmZWYE186PteWCrJp6vUDbcMN1WmTYNnn22sXMMHpymO4e0sFt397tbODwk1szM2lHdBYek\nHSoeO0o6EPgh0PCSZ5JOkDRP0puS7pG062qOHyrpHyU9LWm5pKckfb7R6/fHkUemESWXXLLm5yoN\niS3vw9HTs6p/h5mZWTtppNPoQ6ROopVzYd4DHNtICEmHARcCXwTuBU4CpkvaMiJeqvGyG4ENgGOA\nJ4GNaW6LzbsMH55mID3zTPjd72C33Ro/V2nEysSJvbe7/4aZmbWjRgqOyRXPe4AXI2L5GuQ4Cbgi\nIq4DkPRl4KOkAuZd/UKyFpW9gc0j4tVsc4M3Ouqz//5w/fVpNdmf/CTdJmnE/PlpNtPSENmVK1MB\n4oLDzMzaUSOdRp+peMxfk2JD0hBgF+DWsmsE8Btg9xov+xhwP3C6pOckPS7pe5Jyn6OzNEx23jz4\n+c8bP0+1VWI9JNbMzNpVI304LpX01Srbvyqpkd4N40lzdzxfsf15YKMar9mc1MLxPuATwInAocC/\nNHD9um2zDRx8MPzwh2mYayMqCw4PiTUzs3bWSJ+HQ4A7q2y/i/Sh3wpdpFs5n42I+yPi18DJwNGS\nWvKRfcIJqVXiqqvqf21E9Tk4hg9v/BaNmZlZkTXy8bY+sLTK9tdIrRX1eglYCUyo2D4BWFzjNYuA\nBRFRPg3XY6SOrO8hdSKt6sILT2L06HG9tk2dejgHHnh4XaHHj4djj4XLL4dDDoHNNuv/a195Bd54\n4923VEaPriuCmZlZ002bNo1p06b12rZkyZI1Pm8jBccfgY8AP6jY/hHgqXpPFhHdkh4A9iMteY8k\nZc8vrfGyWcChkkZGxBvZtq1IrR59LiZ/yikXs/XWO9cbs6rDD0/9OC66CC6tlbSK0nL35QXHihUu\nOMzMbOAdfvjhHH5471/CZ8+ezS677LJG523klspFwPmSvi1p3+xxDnAecHGDOS4CjpN0lKStSXN6\njASuBZD0XUn/Vnb8T4CXgWskbZMtKHc+cHVEvNVghroNGwYnngh33QWzZvX/ddXm4Cidz8zMrB01\nsjz9j7J+Et8E/j7b/DTwldKw1gbOeYOk8cA5pFspDwFTI+LF7JCNgE3Ljl8m6cPA90lruLwMXF+W\np2U++EHYZRe4+OI0L0d/+mAsWJCmOR8xIj2PSKNfXHCYmVm7aqiLYkRcDlwuaQPgzYq+FA2JiMuA\ny2rsO6bKtieAqWt63TVVGiZ75JFw443pNsvqzJ/fu8Nod7eXpTczs/bWyLDYyZK2AIiIF0vFhqQt\nJG3W3Hhrhy23hI9/HK68El59dfXHe0ismZl1mkb6cFwLVJvUe7dsX0f6ylfSWihXXLH6Y6tN+jV0\n6Kpl683MzNpNIwXH+4G7q2y/B9hpzeKsvdZbD447Dn72M3iy5qBceP311ApS2cIxenS6PWNmZtaO\nGik4AhhbZfs40oyhHeuww2CTTdIw2Yjqx5SGxFb24fCQWDMza2eNFBx3AGdKeqe4yL4+k+ozkHaM\nIUPgG99IK8n+9rfVj6k2JDZi1YgVMzOzdtTIKJXTSUXH45JKH6t7k1o9PtSsYGurvfdOw2MvuQR2\n333VarAlzz0HY8fCuN6TnbrDqJmZtbVGVoudC+wA3ABsCIwBrgO2jog5zY239pHg5JPTXBvXX//u\n/fPnv3uGUQ+JNTOzdtfoPBwLgb+t3C5pOxcdMGUKfOpTaWG3gw5KHUpLqg2J9bL0ZmbW7hrpw9GL\npDGSvijpXuD/mpCpLXzpSzBoUFrcrZzn4DAzs07UcMEhaZ9sfZNFwKnAbcAHmhUsL2+1aKWVddaB\nL34RfvELeOKJtG35cnjhhXePUBk5ErrWuPQzMzMrrro+5iRtJOkMSX8AbiQtST8M+EREnBER9+UR\nspleeSW1KrTCoYfCpElw4YVpJMqCBWl7tTk4zMzM2lm/Cw5J/w08Tuow+g1gYkR8La9geZk4ERYt\nSp018zZ4MJx0EjzwANx+e2kOjujVwrFyJYwalX8WMzOzgVRPp9GPAJcCl0fEH3LKk7spU9Lti9Jo\nkUE5T1W2556w225L+fa3L6CraxYwimOOWcY+++zJ8cefCoxx/w0zM2t79dxS2Ys0BPYBSb+T9NVs\nSfm1ypAhsP32qaVjwYK0/kmeli1bysKFh7Bs2e4sXToD+AWLFs3gxht355hjDuGtt5Z6DRUzM2t7\n/S44IuKeiDgO2Bi4AvgMsDA7x4cljcknYvMNH56Kjg02gIULa09D3gyXXXYBCxacDBwIlBZLET09\nB/L00ycxbdqFbuEwM7O218jEX8si4kcRsRewPXAhcAbwgqSbmh0wL6NGwY47ptEkeRYdd9wxi56e\nqVX39fQcyL33znLBYWZmbW+NBmNGxOMRcRrwHuDw5kRqnTFjUtExejQsXtz880cEK1aMYlXLRiWx\nYsVIBg/OsYnFzMysAJoy+0NErIyI/4qIv2rG+VppnXVS0TFsWJojo5kkMXjwMtICu9UEQ4cuQ16X\n3szM2pynmwLWXx922CGtg/Lyy8099z777ElX1/Sq+7q6fs3+++/V3AuamZkVkAuOzIQJqejo7oZX\nX23eeY8//lQ22+wiurp+xaqWjqCr61dsssnFnHnmKc27mJmZWUE1tHhbu5o4MU0I9tBDaX6OMU0Y\ndzNq1BiuueY/ufzyC7njjovo7h7JkCFvsPfee/KJT/wn66+/1gzuMTMza5gLjgqbbpqKjkceSbdY\nmjHt+KhRYzj11G9x6qmpI6kk3n47TbPuESpmZtYJXHBUkGDy5HRrZe7c1NIxYkQzz586iHqVWDMz\n6yTuw1GFBFtsAVttBS++mFZ5bbbu7lRweJZRMzPrBC44aujqSgXHlCnw/POpQGim0iqxHhFrZmad\nwAVHHwYNgm22SbdYFi5s7gqz3d1elt7MzDqHC47VGDIEtt02dSZdsCAtJ98MPT3N7RtiZmZWZC44\n+mHYMNhuu+avMOsOo2Zm1ilccPTTiBHNW2F2xQoYPNgFh5mZdQ4XHHUYNSrNRrrOOrBoUePnKY1Q\nccFhZmadwgVHncaOTUXHyJGNrzD79tupb4iHxJqZWadwwdGAdddNK8wOHZrm6ahXd3cqWAYNan42\nMzOzInLB0aDx41NLB9S/wmxpDg4zM7NO4YJjDUyYkDqS1rvC7MqVqT+ImZlZp/BaKmtok03SQpiQ\nyQAAGDBJREFUqJOHH65vhVl3GDUzs07igqMJJk1KRcecOWlK9L5aL3p60nTmLjjMzKyTuOBoAgk2\n3zwVHaUVZocPr36sV4k1M7NO5D4cTVJaYXbLLdNib2+9Vf04z8FhZmadyAVHE5WvMLt4cfUVZt9+\nOxUbQ4a0Pp+ZmdlAccHRZIMHp8XeJk9O665UrjDb3d3/jqVmZmbtwgVHDkorzE6alNZdKV9htrvb\nQ2LNzKzzuODISWmF2Y026r3CbETtDqVmZmbtygVHjkaMSLORllaY9ZBYMzPrVC44cla+wuxzz6Xb\nLS44zMys07jgaIHSCrNjx7rgMDOzzuSJv1qktMLs4sVelt7MzDqPC44WGj8+PczMzDqNb6mYmZlZ\n7lxwmJmZWe5ccJiZmVnuXHCYmZlZ7gpTcEg6QdI8SW9KukfSrn0cu6+knorHSkkbtjJzI6ZNmzbQ\nEZyhQBmgGDmcoTgZoBg5nMEZmq0QBYekw4ALgbOB9wP/B0yX1NeYjgC2ADbKHhtHxAt5Z11TRfiL\n4wzFyQDFyOEMxckAxcjhDM7QbIUoOICTgCsi4rqI+D3wZeAN4NjVvO7FiHih9Mg9pZmZmTVkwAsO\nSUOAXYBbS9siIoDfALv39VLgIUkLJd0iaY98k5qZmVmjBrzgAMYDg4DnK7Y/T7pVUs0i4EvAIcCn\ngPnATEk75RXSzMzMGrdWzjQaEU8AT5RtukfSFNKtmaNrvGw4wGOPPZZzur4tWbKE2bNnO4MzFCqH\nMxQnQ1FyOIMzlCv77Bze6DmU7l4MnOyWyhvAIRFxU9n2a4FxEfHJfp7nfGDPiNizxv7PAv++5onN\nzMw61hER8ZNGXjjgLRwR0S3pAWA/4CYAScqeX1rHqXYi3WqpZTpwBPA0sLyhsGZmZp1pOLAZ6bO0\nIQNecGQuAq7NCo97SbdGRgLXAkj6LjAxIo7Onp8IzAMeJb0JxwEfBD5c6wIR8TLQUFVmZmZm3LUm\nLy5EwRERN2RzbpwDTAAeAqZGxIvZIRsBm5a9ZChp3o6JpNsxDwP7RcQdrUttZmZm/TXgfTjMzMys\n/RVhWKyZmZm1ORccZmZmlrtC9OEwa4VsCPZGpA7JL0bEK52awxmKk6FIOcxKJA0DdgPeS/b3Engw\nIuY1fE734bB2JmkMcCTwGeAvSB2ORVr87zngFuDKiLiv3XM4Q3EyFCzHOsAngb2p+HABpkfEGo1M\ncIa1LsOewInAx4AhwBLgTWA9YBjwFHAl8MOIWFrPuX1LxdqWpJNJ864cQ1qb5xOk+Vq2JK3T821S\nK98tkn4taYt2zeEMxclQlBySJkr6V9L8RX8HjCCNELyVVPB8EJghaW62onfTOUNxMmQ5bgKuJ/3d\nPAAYExHrR8R7ImIkaYX2fyDNk/WEpJpTUVQVEW35ALYh/aO9DXiS9IN8GPg34LPAMGdoTYaBygFM\nA97Xj+OGkVYoPjan733AczhDcTIUJQdpvarzgW37OGYEcDhwN3CqM7RvhuwaXwKG9PPYbUnTUfT7\n/G13S0XSzqQf3F7ALNJEYgtZ1SS0Ham5amx23CUR8ZYzND9DkXKYWW+S1o80IWIuxzvD2pWhFdqx\n4JgHfA/4SUS82sdxu5PuUz0cEd9xhuZnKFIOMzNrXLbkSFdErGz4HG1YcAyJiO68jneGtTNHH9eb\nAlwVER9qwbU2Jt37fAX4TUS8XbZvFHBKRJyTc4YPk1qb/jcibpO0D3Amqen+xxFxTZ7XzzL4fShe\njq6I6Km2HXhPRDyb8/VFWqdjfkSskDSU1HlyGHBzRLyU5/WdoVeGwcC3SC3PMyPibEl/k20bDPwU\nOK78322/5XEfyA8/1pYHsCOwsgXX2RX4E6nH9xvAHyi7h0+a0j/XHKQREd3AA8BS4PNZpquAq4G3\ngEP9PuT/PhQlB+lW5g2kW5zPk5aXGNTin8dWpE6KK7O/D5OB+4HXgWWkURpbOEP+GbIc5wKLScuH\nPApcDjxLWvz0KFIn1tMaOnfe4Yv6yN64Kc4w8BnyzAF8fTWPf8r7P9QsxwzgR6SRYWOAy4CXgPdn\n+1vxH/uDwNezr/fLPvBPKtt/CnCn34f834ei5AD+GXgcOBT4QvaB90tgaNnPoyfnDP8F/ALYHrgY\nmJttG0L6zf4mUmuPM+ScIcvxJHBw9vWfkQqgw8r2fxp4pKFz5x2+qA+gh/QbxPedYWAz5JkjO+8C\n0urC1R4L8v6Ay3K8AmxZse2MbPuuLfqgfR2YXPb8bWCHsudbAy/5fcj/fShKDuAZ4C/Lno8Hfkda\ngnxYi34eLwA7ZV+Pyv7N7lW2fw/gGWfIP0N2nTeBTSueb132fDLwWiPn7th5OCKii/QP+jFnGNgM\nOed4hvRb4+RqD+CjTb5eX4aXP4mI84DvkCZ42qMF1+8mTS5V8hbpQ6/8+YgW5PD7UJwcG5D+jQAQ\nqY/A/qTWp5tJE0/lbTSp4CQilpFuHywq2z+fVPg4Q/4ZIN3uXKfs+WzSLb+SYaTJ6erWsQUHQETM\ni4jLnGHgM+SY4wFgl74uS5rdMW9zqPJhGhEXAN8lzcuQtz+SirqSTUitPCVTSPdn8+T3oVg5niXN\nkfOOSLNHHkAqdn6e8/UhDZOfVPb8NNJv+yUbkPq2OEP+GSDdytm59CQi9oyIBWX7tyf1MalbWxcc\nkgZL2lHS1OyxY7ZmwYDLsk1a/ZHtS9KEFrwHZwE39rF/LqmJMG/XAXtW2xER5wNnk/7zz9N3KPsP\nKyJei6yNNPPnpA6EefL7UKwct5BmO+0lIl4HpgLLc74+pJlW3ym8IuLy6D1l9gGk37KdIf8MkCaa\nu6OP/UNIcybVre2GxcI7Q7nOAU4AxlXsXgL8ADg7qgwDaxVJOwKzI2JQztc5HvgUqanuioi4tWzf\neODeiNg85wxjSD2d9wZmAseROkV9hdTCcCfwsYh4Lc8cZtabpHWBiRHxaI39Y4CdI+J/W5usV4bJ\nwPKIWLTag52h0Nq1heM84IukzmibkzrgjMq+Pj3b990BS9cikr5OmnTr96T7wTdLOrPskEGkBYLy\n9h3SbY0LSE2GNwD7kAqQD5I6qp3eghxmViYi/lSr2Mj2Lx3IYiPLMG+gP2SdoTnatYVjMXB0REyv\nsX8qcF1E5NYBR9Lqmr5GkHrr59bCIelR4B8j4ifZ8z1Iw6x+GBFnSZoALGxBK8uzpJ/H7ZImku5L\n/1VE/DLb/1HgwojYuq/zmJnZ2mvwQAfIyRhSB5xaFpFaPPK0LWlGtnk19m9MWhkyT5OBd5Yzjoi7\nJH0I+E3Wl+WSnK9fsiGpgxwRsVDSm8ATZfvnAJu2KIuZmQ2Adi04ZgIXSDoiKqaCzfot/FN2TJ7m\nAL+LiMur7ZS0E6kvQ55eIn2QP13aEBFzsqLjNmBiztcveZnUw3p+9vwXQPm6KqNJt3zMzKxNtWvB\n8WXSGPJFkh4hTdkLaQzz9qSRCQfnnGEWaaraWpbSd0/gZriT1GH0t+UbI2KupP2A23O+fsnDpEmd\nZmfX/2zF/l0Z4HlAzMwsX23ZhwPeGakyFfgAsFG2eTFwN3DLQI5QaRVJOwC7RI0FoCRtBxwSEd/O\nOcd6pOmRq64WK+kjwJsRMTPPHLVIOgqYFRFPDsT1i5TDGYqToUg5zMpJ+hFwe0T8uK7XtVvBIWlS\n1LGyoaRNKiY1cYY2zLGaa/aQZn28MiK+1sprFy2HMxQnQ1FyZBlmAn8TEQ84Q2dnyHLMJK1q+2pE\n7NTf17XjsNj7JF0haddaB0gaJ+k4SXOAQ5whtwxFylFTB0zv7gxrYYYC5TiWdPv3X5zBGQAi4i8j\nYjOg8vZ4n9qxhWN94JukH8xy0tTWC7Ov1yWNHnkfqT/BuRFxszPkk6FIOczMbGC1XcFRImkEaWGu\nvUiTW40gjdp4EJgeEXOcoTUZipBD0mBSYVPen2duRHTned0i5ihChlqybBPruQ3XjhnMBpqkrmp9\nHbP+ke9p6N9H5LzUrR9+DOSDdNvwH0hrVvRUPP4EnAt0dUKOImToR8YdyXk59CJlAI4nraFxA7Bf\nxb7xwFMD/F5MAW7rhAykuZGOBA4ChlbsGwWc1SEZxmZ/H98kjfA8BxhUtn9Co/8+2rEPh1m5okxz\nX4QcRchgmQItPdCX0cC+7Z4h62M2l9Q34j+ARyW9ryLD2e2eIXMuqej+HOl2+FHALyQNLY/byInb\n9paKGRRjmvui5ChIhiJM+T/gGbIcA770QFb09GUT4NQOyDCDNDHhF0hF+D8BnwY+HBEPtuhnMeAZ\nshzPkP6fmJk9Hw/8D2myxr8C1mk0R7tO/GVWUoRp7ouSowgZijDlfxEyQDGWHriE9HN/u8b+oTW2\nt1uGXYATIvVZWAocn60BdWtWiLeiP08RMkCaFfqZ0pOIeEnS/sB00oSaX2j0xC44rN3NZOCnuS9K\njiJkKMKU/0XIAMVYeuAZ4PSIuKHazuy9yHu+hyJkABhe/iQizpO0AriFNMquFYqQ4VlgG8oK8ohY\nKumALMfPGz2xCw5rd0WY5r4oOYqQoQhT/hchAxRj6YEHSL9ZV/2wB4IG79evZRnmAHuQlmFYdeGI\nC7JRGdNyvn5RMkAqKo4h/V9RnuP1rKVlRqMndh8Oa3tFmea+CDmKkMGSIiw9IGlbYGRE3F9j/xDS\nEOFnqu1vowxfAPaNiM/V2H868OWImNzOGbLrrEt6vx+tsX8MsHNE/G/d53bBYWZmZnnzsFhrW5Im\n1Xn8Ju2awxmKk6FIOcxayQWHtbOirONShBzOUJwMRcph1jLuNGrtbFvSxDUzJK1uHZfTIr91XIqQ\nwxmKk6FIOcxaxn04rO0N9DouRcrhDMXJUKQcZq3ggsPMzMxy5z4cZmZWk6SjJE1xBmcoy9Ej6TZJ\nu9T1OrdwmJlZLZJ6gG7gyoj4mjN0doYsx+eBzYADI+ID/X2dWzjMzKymiOgCtgYecwZnyHJcGxHf\nqqfYALdwmJmZWQt4WKyZWYeTNJg0DLd8uvu5EdHtDK3NUEuWbWJEtGrV2Fo5pgBXRcSH6n2tCw4z\nsw6Vra1zDnACMK5i9xJJPwDOznONHWfot9K8LIMGMAPAaGDfRl7ogsPMrHOdB3weOAOYTu8VhA8A\nzgWGAqc7Q+4ZCkHS11dzSMPT7LsPh5lZh5K0GDg6IqbX2D8VuC4iJjhD7hlmr+aQEcCWEZFrC0c2\nEmYR8HaNQ4YCGzWSwy0cZmadawxpSvVaFgGjnKElGbYFfgrMq7F/Y2DLnDMAPAOcHhE3VNspaSfS\nVPx1cwuHmVmHkvQ/pF88j4iIlyr2jQd+DKyMiIOdIfcM9wNXR8TlNfbvBDzQghaO/wCejIiqt48k\n7Qg8mA3RrYtbOMzMOteXgZuBRZIeoXffhe2BuUBuH7LO0MssYKs+9i8F7sg5A8BZwMg+9s8FJjdy\nYrdwmJl1sGyExlTgA/QeDno3cEsrRmY4Q2dwwWFmZma589TmZmYdSNKkOo9veDikMxQ/Qyu44DAz\n60z3SbpC0q61DpA0TtJxkuYAhzhDW2fInTuNmpl1pm2BbwIzJC0nDXVcCCwH1s32l2a3PC0ibnaG\nts6QO/fhMDPrYJJGAB8F9gLeS5pg6iXgQWB6RMxxhs7JkCcXHGZmZtZvko4CZkXEk3W9zgWHmZmZ\n9Vc2/Xk3cGVEfK2/r3OnUTMzM+u3bJbRrYHH6nmdWzjMzMwsdx6lYmZmZr1IGkwaGVM+6+rciOhu\n+Jxu4TAzMzN4Z4r3c4ATgHEVu5cAPwDObmSqd7dwmJmZWcl5wOeBM4Dp9F7I7gDgXGAoUHU12b64\nhcPMzMwAkLQYODoiptfYPxW4LiIm1Htuj1IxMzOzkjGkWU5rWQSMauTEbuEwMzMzACT9D6m7xRER\n8VLFvvHAj4GVEXFw3ed2wWFmZmYAkjYFbibNs/EIvftwbA/MBQ6OiPl1n9sFh5mZmZVkI1WmAh+g\n97DYu4FbGhmhAi44zMzMrAXcadTMzMyQNKnO4zep53gXHGZmZgZwn6QrJO1a6wBJ4yQdJ2kOcEg9\nJ/fEX2ZmZgawLfBNYIak5cADpCGyy4F1s/3vA2YDp0XEzfWc3H04zMzM7B2SRgAfBfYC3guMAF4C\nHgSmR8Schs7rgsPMzMzy5j4cZmZmljsXHGZmZpY7FxxmZmaWOxccZmZmljsXHGZmZpY7FxxmZmaW\nOxccZh1K0nsl9UjaYaCzlEjaStLdkt6UNHug85hZ87jgMBsgkq7NPvBPq9j+cUkNrcbYgKJNxPNt\n4HVgC2C/agdIuiZ731Zmf5a+3rxZIbJr/KxZ5zMzFxxmAymAN4HTJY2rsq8V1PQTSkPW4OVTgDsj\n4rmI+FMfx/2KtGx26bExMG8NrpsLSV2Smv4em62NXHCYDazfAIuBv611gKSzJT1Yse1ESfPKnl8j\n6eeSzpS0WNKfJP2dpEGSzpf0sqT5kj5f5RLbSJqV3cZ4RNI+FdfaTtLNkpZm575O0vpl+2+X9H1J\nF0t6Efh1je9Dks7KciyX9KCkqWX7e4CdgbOzFouz+njf3oqIFyPihbJHlF3nTElPSXoju847i0xl\nRcC/lu3/vaSvl7/fwNHAx8taT/aRtG/2fGzZsTtm2yZlz4/O3vuPSXqUtAbFptm+L0iam73PcyV9\npew8QyT9QNLCbP88Saf38f2brXVccJgNrJWkYuNrkib2cVy1Fo/KbR8i/aa/N3AScA7wS+AV4C+A\nHwJXVLnO+cD3gJ2Au4H/lrQupJUhgVtJizjtDEwFNgRuqDjHUcBbwB7Al2t8D9/Icp0MbA9MB26S\nNCXbvxEwF7gg+z4uqHGe1flb4Ejgi6TFpi4Gfixp72x/FzCftNLlNqTbOP8o6dBs/wXZ9/drYEKW\n5a5sX39+DiOB04C/Ji109YKkI4BvAWcCW2cZz5H0uew1JwIHA4cCWwJHAE/X/Z2bFVlE+OGHHwPw\nAK4BfpZ9fRdwVfb1x4GVZcedDcyueO2JwFMV53qq4pjHgJllz7uApcCns+fvBXqAU8uOGQQ8W9pG\nWjnyVxXnfU/2uj/Lnt8O3N+P7/c54PSKbb8Dvl/2/EHgrH68b93Z91J6XJ/tG0rqA7JbxWuuAv5f\nH+f8PnBDtZ9N2bZ9SQXi2LJtO2bbJmXPj86eb1fx2j8Ah1Vs+ybp9hHAPwMzBvrvpB9+5Pnw8vRm\nxXA6cKukRn+rB3i04vnzwCOlJxHRI+llUgtFuXvKjlkp6X7Sb/6QPlA/JGlpxWuC1N/ij9nzB/oK\nJmkMMJFVLQUls4BGRsncRmpJKfWPWJb9+WekFoYZFX0nhpCKmVKeE4BjgEmklTCHlu9fQ29H2Wqa\nkkaS3qurJf1r2XGDgFezr6/NMj9Oaln5ZUTMaFIes0JwwWFWABHxW0nTgfNIHz7lenh3585qHTO7\nK09bY1s9t1JHAzeRbhFUZlhU9vUyWmtZRFTrJDo6+/MgYGHFvrcAJH2GdAvpJFKxtZT0/f3Faq5Z\nGjlUWchUerNGpi8A91bsWwkQEQ9K2gz4CLA/cIOkGRHx6dVkMltruOAwK44zgYeAxyu2v0jq31Du\n/U287geAOwEkDQJ2AS7N9s0GPgU8ExEND9WNiKWSFgJ7Ar8t27Un6bZKs8wlFRbvjYg7axyzBzAr\nIq4obSjrR1LyNqkFotyLpGJjY2BJtm21P4eIeCH73qdExE/7OO514EbgRkn/CfxK0joR8Wqt15it\nTVxwmBVERMyR9O/A1yt2zQR+oDRfx3+Qfgs+kFUfemvqBEl/JPX5OBlYh9SHAeBfSL+Z/1TS+aQO\nqFsAhwF/HRH1DN/9HvAtSU+RCqtjSbdsPtuU74L0oZ3dlro4K57uBMaRCpslEfFjUn+Kz0k6gDSU\n9nPArsBTZad6GjhA0pbAy6T3+o+kzqbfkvR3wFak96s/zgb+WdJrpFsmw4A/B9aJiEsknURqMXqQ\n1Ar1aWCxiw1rJx6lYlYsZ5H+Xb7zQR4RvweOzx4PkT6ovtePc/VnREUAZ2SPh0i//X8sIl7Jrr2I\n9GHdRRpV8jBwEfCnsmKjv0XHpdlrL8jOc0B2rSdXk7kuEfH3wLmk72kuac6Og1g1T8cVwM+An5Ju\nqaxHKqzKXUVqabofeAHYIyJWAJ8hjTL5P+BvSB0/+5PpalLhdgzpe59J6mBaylS6rXMfqcVnUpbZ\nrG2ovl9QzMzMzOrnFg4zMzPLnQsOMzMzy50LDjMzM8udCw4zMzPLnQsOMzMzy50LDjMzM8udCw4z\nMzPLnQsOMzMzy50LDjMzM8udCw4zMzPLnQsOMzMzy50LDjMzM8vd/wdnWJKaBDbBoQAAAABJRU5E\nrkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -706,7 +717,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "[Parallel(n_jobs=1)]: Done 6 out of 6 | elapsed: 2.7s finished\n" + "[Parallel(n_jobs=1)]: Done 6 out of 6 | elapsed: 3.1s finished\n" ] } ], @@ -792,7 +803,7 @@ "gs = GridSearchCV(estimator=pipe, \n", " param_grid=param_grid, \n", " scoring='accuracy', \n", - " n_jobs=2, \n", + " n_jobs=1, \n", " cv=2, \n", " verbose=1, \n", " refit=True)" @@ -821,619 +832,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "/Users/Sebastian/miniconda3/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py:540: UserWarning: Multiprocessing-backed parallel loops cannot be nested, setting n_jobs=1\n", - " **self._backend_args)\n", - "[Parallel(n_jobs=2)]: Done 6 out of 6 | elapsed: 3.8s finished\n" + "[Parallel(n_jobs=1)]: Done 6 out of 6 | elapsed: 2.6s finished\n" ] }, { @@ -1567,7 +966,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -1662,6 +1061,11 @@ " 'cv_scores' (list individual cross-validation scores)\n", " 'avg_score' (average cross-validation score)\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/feature_selection/ExhaustiveFeatureSelector/](http://rasbt.github.io/mlxtend/user_guide/feature_selection/ExhaustiveFeatureSelector/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -1800,15 +1204,6 @@ "with open('../../api_modules/mlxtend.feature_selection/ExhaustiveFeatureSelector.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -1827,7 +1222,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/feature_selection/ExhaustiveFeatureSelector_files/ExhaustiveFeatureSelector_15_0.png b/docs/sources/user_guide/feature_selection/ExhaustiveFeatureSelector_files/ExhaustiveFeatureSelector_15_0.png index 35b62bbb99a90a4d1bcc9a7602c7c3a52c22058a..1704224f30b1e1513c67ff233648f80ed4293310 100644 GIT binary patch literal 19528 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 diff --git a/docs/sources/user_guide/feature_selection/SequentialFeatureSelector.ipynb b/docs/sources/user_guide/feature_selection/SequentialFeatureSelector.ipynb index 61528a92d..97feeb98e 100644 --- a/docs/sources/user_guide/feature_selection/SequentialFeatureSelector.ipynb +++ b/docs/sources/user_guide/feature_selection/SequentialFeatureSelector.ipynb @@ -1551,6 +1551,11 @@ " 'cv_scores' (list individual cross-validation scores)\n", " 'avg_score' (average cross-validation score)\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/feature_selection/SequentialFeatureSelector/](http://rasbt.github.io/mlxtend/user_guide/feature_selection/SequentialFeatureSelector/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -1690,15 +1695,6 @@ " s = f.read()\n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -1718,7 +1714,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/file_io/find_filegroups.ipynb b/docs/sources/user_guide/file_io/find_filegroups.ipynb index 678e2f9d6..a1b9ce68b 100644 --- a/docs/sources/user_guide/file_io/find_filegroups.ipynb +++ b/docs/sources/user_guide/file_io/find_filegroups.ipynb @@ -188,6 +188,11 @@ " found in the first directory listed\n", " in `paths` (without file extension).\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/file_io/find_filegroups/](http://rasbt.github.io/mlxtend/user_guide/file_io/find_filegroups/)\n", + "\n", "\n" ] } @@ -196,15 +201,6 @@ "with open('../../api_modules/mlxtend.file_io/find_filegroups.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -224,7 +220,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/file_io/find_files.ipynb b/docs/sources/user_guide/file_io/find_files.ipynb index e70136055..0df52a85e 100644 --- a/docs/sources/user_guide/file_io/find_files.ipynb +++ b/docs/sources/user_guide/file_io/find_files.ipynb @@ -153,6 +153,11 @@ "\n", " List of the matched files.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/file_io/find_files/](http://rasbt.github.io/mlxtend/user_guide/file_io/find_files/)\n", + "\n", "\n" ] } @@ -161,15 +166,6 @@ "with open('../../api_modules/mlxtend.file_io/find_files.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -189,7 +185,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/frequent_patterns/apriori.ipynb b/docs/sources/user_guide/frequent_patterns/apriori.ipynb index 9cd0f6f2e..7ceb8525f 100644 --- a/docs/sources/user_guide/frequent_patterns/apriori.ipynb +++ b/docs/sources/user_guide/frequent_patterns/apriori.ipynb @@ -955,7 +955,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -1010,6 +1010,11 @@ " that are >= `min_support` and < than `max_len`\n", " (if `max_len` is not None).\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/apriori/](http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/apriori/)\n", + "\n", "\n" ] } @@ -1018,13 +1023,6 @@ "with open('../../api_modules/mlxtend.frequent_patterns/apriori.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/sources/user_guide/frequent_patterns/association_rules.ipynb b/docs/sources/user_guide/frequent_patterns/association_rules.ipynb index 2159774a8..5f174c454 100644 --- a/docs/sources/user_guide/frequent_patterns/association_rules.ipynb +++ b/docs/sources/user_guide/frequent_patterns/association_rules.ipynb @@ -914,7 +914,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -930,7 +930,6 @@ "\n", "**Parameters**\n", "\n", - "\n", "- `df` : pandas DataFrame\n", "\n", " pandas DataFrame of frequent itemsets\n", @@ -963,13 +962,18 @@ "\n", "**Returns**\n", "\n", - " pandas DataFrame with columns \"antecedent support\",\n", + "pandas DataFrame with columns \"antecedent support\",\n", " \"consequent support\",\n", " \"support\", \"confidence\", \"lift\",\n", " \"leverage\", \"conviction\"\n", " of all rules for which\n", " metric(rule) >= min_threshold.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/association_rules/](http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/association_rules/)\n", + "\n", "\n" ] } @@ -978,13 +982,6 @@ "with open('../../api_modules/mlxtend.frequent_patterns/association_rules.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/sources/user_guide/math/num_combinations.ipynb b/docs/sources/user_guide/math/num_combinations.ipynb index a5c4e4d53..78bf5607b 100644 --- a/docs/sources/user_guide/math/num_combinations.ipynb +++ b/docs/sources/user_guide/math/num_combinations.ipynb @@ -104,9 +104,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -127,9 +125,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -164,9 +160,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -202,10 +196,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -237,6 +229,11 @@ "\n", " Number of possible combinations.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/math/num_combinations/](http://rasbt.github.io/mlxtend/user_guide/math/num_combinations/)\n", + "\n", "\n" ] } @@ -264,9 +261,21 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.2" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/sources/user_guide/math/num_permutations.ipynb b/docs/sources/user_guide/math/num_permutations.ipynb index e176c19b1..2b014dc81 100644 --- a/docs/sources/user_guide/math/num_permutations.ipynb +++ b/docs/sources/user_guide/math/num_permutations.ipynb @@ -90,9 +90,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -113,9 +111,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -150,9 +146,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -188,10 +182,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -223,6 +215,11 @@ "\n", " Number of possible permutations.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/math/num_permutations/](http://rasbt.github.io/mlxtend/user_guide/math/num_permutations/)\n", + "\n", "\n" ] } @@ -250,9 +247,21 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.2" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 } diff --git a/docs/sources/user_guide/plotting/category_scatter.ipynb b/docs/sources/user_guide/plotting/category_scatter.ipynb index f432f231f..35aef1cba 100644 --- a/docs/sources/user_guide/plotting/category_scatter.ipynb +++ b/docs/sources/user_guide/plotting/category_scatter.ipynb @@ -312,6 +312,11 @@ "- `fig` : matplotlig.pyplot figure object\n", "\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/category_scatter/](http://rasbt.github.io/mlxtend/user_guide/plotting/category_scatter/)\n", + "\n", "\n" ] } @@ -320,15 +325,6 @@ "with open('../../api_modules/mlxtend.plotting/category_scatter.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -348,7 +344,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/checkerboard_plot.ipynb b/docs/sources/user_guide/plotting/checkerboard_plot.ipynb index 64b5373bb..e633b3a72 100644 --- a/docs/sources/user_guide/plotting/checkerboard_plot.ipynb +++ b/docs/sources/user_guide/plotting/checkerboard_plot.ipynb @@ -193,6 +193,11 @@ "- `fig` : matplotlib Figure object.\n", "\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/checkerboard_plot/](http://rasbt.github.io/mlxtend/user_guide/plotting/checkerboard_plot/)\n", + "\n", "\n" ] } @@ -202,15 +207,6 @@ " s = f.read() \n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -230,7 +226,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/ecdf.ipynb b/docs/sources/user_guide/plotting/ecdf.ipynb index ec6d3f475..cf2babb8f 100644 --- a/docs/sources/user_guide/plotting/ecdf.ipynb +++ b/docs/sources/user_guide/plotting/ecdf.ipynb @@ -257,6 +257,11 @@ " the feature threshold at a percentile threshold\n", " or None if `percentile=None`\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/ecdf/](http://rasbt.github.io/mlxtend/user_guide/plotting/ecdf/)\n", + "\n", "\n" ] } @@ -265,15 +270,6 @@ "with open('../../api_modules/mlxtend.plotting/ecdf.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -293,7 +289,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/enrichment_plot.ipynb b/docs/sources/user_guide/plotting/enrichment_plot.ipynb index 220cf9175..5598f220d 100644 --- a/docs/sources/user_guide/plotting/enrichment_plot.ipynb +++ b/docs/sources/user_guide/plotting/enrichment_plot.ipynb @@ -244,6 +244,11 @@ "- `ax` : matplotlib axis\n", "\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/enrichment_plot/](http://rasbt.github.io/mlxtend/user_guide/plotting/enrichment_plot/)\n", + "\n", "\n" ] } @@ -252,15 +257,6 @@ "with open('../../api_modules/mlxtend.plotting/enrichment_plot.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -280,7 +276,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/plot_confusion_matrix.ipynb b/docs/sources/user_guide/plotting/plot_confusion_matrix.ipynb index 58fa675a0..d6f15471d 100644 --- a/docs/sources/user_guide/plotting/plot_confusion_matrix.ipynb +++ b/docs/sources/user_guide/plotting/plot_confusion_matrix.ipynb @@ -173,6 +173,11 @@ "\n", " Figure and axis elements of the subplot.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/plot_confusion_matrix/](http://rasbt.github.io/mlxtend/user_guide/plotting/plot_confusion_matrix/)\n", + "\n", "\n" ] } @@ -182,15 +187,6 @@ " s = f.read() \n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -210,7 +206,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/plot_decision_regions.ipynb b/docs/sources/user_guide/plotting/plot_decision_regions.ipynb index f7aee3a52..fb4287880 100644 --- a/docs/sources/user_guide/plotting/plot_decision_regions.ipynb +++ b/docs/sources/user_guide/plotting/plot_decision_regions.ipynb @@ -681,7 +681,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -784,6 +784,11 @@ "- `ax` : matplotlib.axes.Axes object\n", "\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/plot_decision_regions/](http://rasbt.github.io/mlxtend/user_guide/plotting/plot_decision_regions/)\n", + "\n", "\n" ] } @@ -812,6 +817,18 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/plot_learning_curves.ipynb b/docs/sources/user_guide/plotting/plot_learning_curves.ipynb index 0e7798db3..65f15cf18 100644 --- a/docs/sources/user_guide/plotting/plot_learning_curves.ipynb +++ b/docs/sources/user_guide/plotting/plot_learning_curves.ipynb @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -167,6 +167,11 @@ "- `errors` : (training_error, test_error): tuple of lists\n", "\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/plotting/learning_curves/](http://rasbt.github.io/mlxtend/user_guide/plotting/learning_curves/)\n", + "\n", "\n" ] } @@ -175,20 +180,6 @@ "with open('../../api_modules/mlxtend.plotting/plot_learning_curves.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -208,7 +199,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/plotting/plot_learning_curves_files/plot_learning_curves_6_0.png b/docs/sources/user_guide/plotting/plot_learning_curves_files/plot_learning_curves_6_0.png index f872f03cb0c5aca0d3896951570d166111ad5ce3..3d7ada78065a3927f8c752047ef7ca2f5572b98e 100644 GIT binary patch literal 58177 zcmdSBc{rDC8#Ssl(p(}Xr6fb<44I`8$~;Cwk}^ajGnFJ|3Z)3~Gh~X)b4r);cJje6IZ@BO4KCkm!Yn|)7d{i!;+e*VoLq$ck^}M{C z8Wq*r1uCjFv70vFC(^e)Yw@3Tw`I?3Y{DOxO;;b`@0)MQ>)xiKqTNOQT~pugwnRmB zi0ZtYjKm7GHfXSN#Whpee<(bfa#N> z2da8ptgRuY8}9EjzUrH<`QvXV^TD~5{IL`5axwGb%-j9Fzex+D}5Ki5UtD8kdMKjGC9{xzV6honuKVwsVIb#>i>J12^q=i<&kJJy)2 z`)tEjM&7#y=P-MW1{M)& z2UWiP?}x8nAAI=mq097F;kFWYL!*c)+nJa*Z?JZ``T0S?!Jme{$MEs<%bq*u{VhUl z_pV)UGF{l&*>ejD8e-4ywzIRl-ki!LwLG&s$GY<@OW+kVGwp=syMy1DLb-Hh^KAPk zW@j}S`>0>MdbRuDLGDE{cJ}jHR;ICwZ1^9eePUu_2gUDt`1;afSx+{-)jV?i_#>={ zdd%6aEAxZQl;3T|u421<*75N0FDaJmbkg% z!F-w?tQB?n$NTZ&){mW?kyy&=0oUn)t*#3*-BbP5h`QdszE8gNJUUr7=xl6kIQ~@Q z$p(dm`P{!x{q>bF&#jI!t7>m?_m%M163%ZZ6tAKp30+-XjTF6*!>1pZ`3FXN7>kJcbBcdckkZNuN>=i zix@0g{C_r+0%dg6;;i3+^EYmAczSy3=;%~PI{%wEtfi%uo0s=JNt@?J)7$l>&4%t@ zBi&cdBN+RC*yBm(JB)wB0)%W>@INT=#-{i40kJzz9@BAhoKU`dS7hhToq|?vIzoSb zS(o&8eYn4Fq;emSHcM=2Qbsy)hI0BBv0U`y0}YK5nQAU0!Vn2@KqM`SRs| z|Nb3cx8URB6E5Mr7klK%lP6S7zh!YtD=RB6Uc9(9)ptH`e8b&^nPIlJ8!|f{^c+!h zSSNEl%45w4+pZ_V!_d=DVyri&+mHk`^+!bm`LJijBOyyitZFZf&_X z_X`}xIhKpDhX?ofQ9ogpy3Ad%kwMh1@o{_&YR`xqE_T^H=~%&~ZlDVMa3B#MiR z6A}}ium%;4nXQTD2Mjnxn5ByKaYXl86b{07Jn^uRi zyKpnn4Im5IHq?fT-p|PqHmiNzKiT``>eZ_iuCK$xlPBIK$Hfh7Y|z!qwn*f?U}(s! zV!1AQ;Oi^St&+2|v*+dI1C}E~LqGrdmGix+iGoK#Gd=j+Br>wC&4D^I5q~n#OJ{{8!>PoDx_zfOJU_wwXTH(n|&q0~abE4AOgaW@L}=Nuf) zx3#ss>RxhpQdUdIGxQ8JX@VhmwNmA&lEY$O5T}9-I5d~^+<)| zJavyj!5zAV50wgJ#u211{1<8dPh&Cn< zg_!ELe0$%sPZ`Ja+ z;6qCtH zPq}YK=C-@fcf0-maRNo*(5ui_uc}v9=A>4ZrfZci5A+D3xY^#mt($u*T3@gB{>JSS zfB$Nk8*JFHp(aA?c}b(WuampyYLcuzAD@D*WKlXllZhy=LrUlG+O1?;;Q+sxcm&U9sNk?ws|PvlJtT3 zM>dtwvzO5GuDR>zs9NM?|97(#Rq&LckH3RI?|YU)zmcIZdlD}W=ICm#k@WLq~=?V?%{^`qeqY4njO*f zQZwz^be?X$ilmD@5_sG>F?ehI&~_);+M$PiX8*Bk+t;{#WnNk(-Z_t zyqdw?iLN!k8c{|cA7)y#>~eK=yXynuQAQAQz)Sr^NodR}-X)ZN>A zdVZ=O8^9D1jqTp&OFP4#@IC#2Wl%SymuOZyWk zv9W!jc89T_9@O3({1%}U#_xqC7jR!$3gY$ys+`#T=l}xxff|>nsIE~f>h{0MFU)Ib zBxs(J-}diJ6a#3b`~;G6M9DvKDO>K+rB`AOW4D(6*<3Dh`-ZUi4G z%bsoWWg7~*GAa_#mPUe#ClYP<=x9yA;nNEFcky{;Z2u<&><4`LA7~sb%Th=GUr_x( zP5%EQjwYWIy=Rx_|6f0xgU-`ULu1b_p9iRlt~2>Bg{}SMSX9mTA!?=vzDg|=to{L0 z(C843RK(vyRyH6V-o1PGim|cmQ^u1(!QcmUHzU}&q@<);=G?bvYil3fwfX${^W_>D zJ?|}A_(O8|*x5Jx$lZ&GXlLUJQ`x1^BU1glF;N}6+vNK7f0e&qBz%;;e8!x%M5CN; z|7d$bj@&Qbo}-qF`UVEHCs*T>dAw+5Sa+Q-mg$-U7 zJpE+M37vOT*4EY|KT@i3K{gH!UrI~6-aqd}739*--NDJpdCGodrlq9h=(6@&NAuGL zyXdc!x3{PS{Zi8p3JPN2zq$!H#I&o_6L4R^Zm2GZ`$tLDc**LwPd>YmP@>2;ztyBQ zF)zXxz6cA8PD=8Pjy_DiaobTz$rSKtO;r zl8sc0L$FYEbo3J@vC!b)JzKVJMXrn1O3^EHnGXVh&TyK&@gvnh@%r`S*lAqDJ#KY@ zN6rOblyX}VK@Au{QVr(Rz9>|L4HcR7&7wU&WN~i%J>sKw%9Yg=*luRLGZG6EY^VBQ zH5c`{quABApg;__wAk1A99Q8*Lnk>uwt<0j9EQC^R*u85$1H^!1Taa)iF`<6w#afPlrX z?5zM+$g`5w4xzy#O-a7AR^5h&MMd{{=w;n-4IN+HRV(xD+qWnCg)bU80ZF4!l-Abz z^O=0Ei$1-v#msvfQyECjHl|ZMcI=QwYG1=3;UxIu#}A~+^@@s$Z#5F9TC#gPhe{gv zf+*+2`c9OSJCzq*04U$W!0Q3x0lf9xI$%4m`-%&S;m3RHX)CI#IA$DT3!wsw;MN#y$$( z&|I&P0G32}310fh&(CjE%g)K^)P7;BPxbY?uxua-d_qFkNuQ-^ zU9EY+CurSq02c>v#48{GLb4BQP&L3gD&%SGS8V6rKQLem$wGG_EHgea>XdqL{@}<+ z6~JF5Vw-SvmcU!X^{iB7A3x?f&vE0T73ShlXvwuX($dnh zer&Z6VEHHh2CQ}tg&WwY3*ZtUv^XdF_U+p(=_VTqkx5kFC?O%i#l@uqWV~%H@&4hdGp7oj~}U3Y6RK}9C(f$J4OYJUg74w^mn--UO9~4lmDJt7peO;^TKnch_v0yJG zO@W%XwYNK>=<-=vb|>0~C)R%}bhl6r7g5bt*7)jv;lc$|1TP?$8iHwNcGmp+oAn>P zw`=P(FAkg6+wPeeU!JZ7P@b5Wh{9JRP*l<`OB^_G;L)Q;Dv51gtXu0l<5Nf=&RhlcI{fpe2aR!%;!9Y{LX(Z5StHiGkf>$UAKPy zn(=Q9QcDx}E!?v#S~5xt;s7JJ929>64MFAowF`)vFg}wFAlgA+k6bue=scI2d|*6M zN_sY%H|>?MHNR=q9wjBEy6@kkao2Xge>`P&Uz&`WyJXb&)E%40>*>?23kwT^*Xsx_ z4G0QaTWVdh{JGSVI#E0AAbx}I(lI|3nQ>sb(9%v#Z5M9$b4A4_vR43L<>lq0t6v2M zegMEF5>ak$Kv)?2;^_C7b08!}sG2EySqXTUU{Z4D&Q+&Cci1m~bXW2G!2Y~pe`cxB z<>GO(*LR(rj|9s9d~fD&(TaTVLfnxb?~~Qmeol%QHs7&};m4B%)>nT08bV1CJ9Vn6 zr${+0Ce7A=CG^B4viwL)qn#y@C<}W;+@Br0z#!=&0z`Fn@$Vl6=j|PHT_32y@IL}f z6PSte2&njSH`_(t8;!>i1Yyu}Ha733qbrAaggo;G5SL-!J{w?YyzM@PV(MA#w)iLK zQ+YY5sYqb5s3*Uh(*{AJarK-vk&tE}!2m9hasgQiPZd(z5k9^^u!icdCD*^RAkxo3 z)3UL%BY+QFFx|ME1}s?Q&M1SPo*qr7z|9|Akn4tnr7gRg&;-xN05Js*Eh)acPPY+HPRU8zy zIsl>_b>~m(7N%3dgn5qszkZt+!s80w`~KQj1|bUu_vKl7 zpop2V_E+HK4dB{08WUtzSC-FTy!aW#%#(VfE!3&nAG9ZL4=5oK9j!KVTbN;IyBJ>D z)D(gOfJ(K*lJ={#l*+-u!OLk|g#p*nR5g!Mq+|pQ9Y|5h;t$@x7XYx} zL_Qe+J{Z(}T5i1T#C}5``k$_3{ zj*Wc-AC*^Be73kXq$#p2+e-~Hk%*WWmSlgv-7vXN%(THix1L0WZc6j z?EvRQhe0-_wKylh&;NqgXe~sht3TfvB^wlI4bNxgCeCcF?`o{83&4_o2Y{A6A&iT} zqJM%642gE3i<&z%HI+y;P!;$96k297GXvLZx3FKQwmeNvJcq(k-z`*5PRTCsJLB&gWh;p*af!JQn*i`7Go0=(+}z1-WySc zP4O^9kYd*s0nd_@g$*p~ICa#?$*Hu!`GwBhl6BH$qxDg=jzPCVqOOdi z#KrZDkNf-hY-Uq_t&t#t#R*xK;^yAwfl@=Kxc-^^Q3$#Fu#9=bps{3QA{J4~j#e8$ zWn`6*h-fcxsAf{3;<;QXjqB>SRJ(@7qT(_vK45A2N7jHr_WSP+u%Q={uKD#*7ZyD9 ze*Z`baf^?PjFcTwy?AjOH#axbFFv=Wy9grfD|rY{f>zF+J^R4hyL#l$()={?Z!m?g z&wipyX4?S~X(RvxB^MPKDJx=<)w2O(uJ7dHKTbA}cfaq{oq z&!weNrJddWQY%+bNC>Dzm8Ie}DqC0c^((Z7i2BmQ$BvPH4pBQ=GNJxejj0g{4N6cI zqdn-+UY^S}sD%Av$B(kIrUUP-&FOa?Z@v$`le4`zH&?`~Qy7auByiw&AikJeOMA2+ zG`^5YE9^tUTA&biO1ZUV-*&Dj{QTQTbOxZ91;XKsb9aFw_|s8wSP=ONjZA* zWJqbLbe?aQ_jYDuQ&X>3ulD0Qf+#G|LEf1+91F>=EGv^8F0Ukj6IG`2+qVJy?_oi~ zU@!~pFm~-P*6sOc?%WYVizdTFkjGqUV#UDYjl#u?aR_Oo!s>5ZfhJv0Uy%wLGR@UV zI5J&^1{Vi3mkhy?yADBR)LrJ4d9&FM5U!&95Ck36#xA53)G%O=n%5GqP`Cm^L;rs0 zje2K!xKPac=|PE?=tJ3dm99ZkBK2KrA=(_dP)j#9ziM9WKXH8?xgI?%7O@hfzdDK{ zJ-&IL$gM+{vMmB5;wkjSh~qx!G+u7oj+{EB*S+r>>Hra9e}Fn&iE$ZFf zVfbwQA2pD|UX(*f1{GtmR4#Mv4tC=mOv1v#XssQqcFxJn`~-m%wX}M~9tn+(Q!Dn2 z?_OIOcPtN{5im#Py*YH^(5TZvHxURWm{ZZoDZee^;T#s6*X7@>H!(3`CvWb(Jy0`W zmr6~uvP`2$k+(((3_fuw6l=EkRE4*LXb|8EXeu*E}lP+Gb@BHWLB-;K7v-(w)uC z^mm&l`crZk85wI{3Hw9FWam1P;td)cP~aR3aUQ}aw2LdCjtbPvfGB$wtyQqGz+w8_ z#<58o(oN188yjO0y<|JmfDvTx|He`Px>QtF8X=|H4y&Qc7^7IyJRO8)vu7;d^^vEi zjHhKla7L%Ly85$plP|lNm@a^RoPM}Pb+|yYdvNgF*|QsvtjJ z)$87#ei8Mo2=;C3vot}vARAxkx3_A^@IoD{!{rEBcW@=W0`xcpcnREoyluF?smT;; zi@*ctE=4``Tvg^&3(1gPg(eVm>3Lk-F~v|WBdm?>G=)N0bG+zRxPw#2o*MrwuxZ_Z z?Ok169!W`@NB~$S<-L6$3ku?}VM$vJY+UzJ&v2$G_5bt&{P}YMeJ4;et)c4&#P9L~ z{*Y}FOQG}^Sk9|bP6S^TCoNd~XHm};h))nHB?ciR(F(^cNPO}_f zg|-nkxXCSO`Jr8I3&th8aRIy=z{$YsC5kDSQh%8j?L4=`{FEt*g&caX2q@sE(__=n zYS2i&h#E!rqcd4o;H>|_uMfBG|5@TLC2*~Vs$;fh@!!84J9i$YA95J|xfA4-KtYdnTX9C)>cbpAJNJ0K6071(~&!eJm*gJuS;y^Fw|pv(Q}byCpu z^tybf=aUaXci?1R&^`K`ofTUb=h3rpxqWv{s$t3HuDSEmF#xr6l4v@{psZq#Rh@kq z`1*S6{7uJ@6PL8iZ#Rvl#%{h=#im6`6mC)A4VjgBLH{E(j4Mn0&;}&+*en? zOav@`@&ft#qC*ZcuYEV*LWm^?H?#U2nB%lWMWlrDLs%P%7ne|ak}u`>A>#y~%a2Ff zC#n5o|7!8Q5oZWmXj3H1F8F00ji#y>mc&*HGz_gfC$nf0S&{KHCYQqz?iU7|KSpicZ-LN#mZUzgqIh z-@3(n@ZdqxlOQceE2er^TV!U+Vjr{|k0nV^*~{roEg-;9NoB8HJBD76384L5C#PLI zcYZ))Ug|{|yJp)Uy^q|R0B-d-rF}PkBv;~+gC(oqpiPLCbDS9pOqN7P! zC%K`y8R%PPm>((E2=#)9`B71aC?!5K;mz3Gd9*T#+y?pY(8$i~ZZEJKUR#QMO1jS| zWdo@Eq)Qx)T{?yUW67QNUj5!7bhyA|BdZ( zpR9xXs+;c1mcdxHs1oZ=No^qx$|#vk={w}KBx+>b%(gVzW&6_%+)V`ObUa} ze@FLCjBzAIZ4Btx{;-41wKV!aUEWodJc?tF<9W`cjEzSTFsYgRiY11vyMyLd=R;(m z8ySUd4{-)&Pc|%hjiNpAak~_iN~*qSa!ShN)KpOW`hbH8Z)3}YA@^OZ!2ak#V+5e{9#%^?-^0^$4QiYz?u)}(-DdtpzP5@hhhecx z@phZ|*w{LtKj7Z$4RKouj=-ix59cAOTVYWVtqYa@+o*-hc+QZ_KTEAH9T7HYbq?ta z@Hlnq6tRc^VS7>O>z(secatz*&*V^b_HV$qv{3OCAHIBvS3xxYd+~Qb{dkp4+zm1H15hyUmy}3xYNvhzm-M2gUpwwJ4WURU z^SWxZvu$mpR4r0=;^m@Kpa&Yc`wz9Vo%1_T>5y>c--P4135vKM#7sizksc@UV4$O9 zbf2eux$b6vrgd9lE9dLTrL$v!2YaiE&n@V7n2_y^?x5?$whHV~P3{;D%jlVlUj}od zxVLEjQZ`-udz$7(GiBVssS}_Sj4TG+jrcN##m|^GgQ%Kg!=aN*3ZKkFSAngce^+(hY)*M%sM8Cc~SuN~3r>@Rk*IZY3 z1+kP7ycRnb$_Pz_;VDQFcovg$bG38jjP(lL{r%+*ov!f;lYR1>=59w63YlkIlH-*l ztJ*n&gWTLZs<@X|@u*^E9M_vWJBj4=I|>i;@~T9e-344yh)lLdbfA*pCW$}_eY7Rto)gk!Jj@D2 z_@ewbRnm-nK%DHwCMtAY)QV=ih5P~B&hAY=or zn(x}5tEy-~selnpJ&WOhF|7*j24hAju#1bae*LP=nl*R3uD+f{K;XSf%$o#-kZhG! zAvQL)>a#~U?~<(8mqr-0lHN3NigC2ZzF8 z(|+`I^$YGiMTYr~uvorZ@XX9G11Ya{cgI757aAl2RY`E{$jO zOlV=ovqkT}hL=Ivy8t^8u#-*NhLx^&#@a+FF=NDzv@m0ihetQX3>~Bj>|}lk`M7!-+8LWIRoW$f#<`*!f5C-N|yh=syA&!D7BXWPOaOpVHX`8C4fHs z^=t0mcI--Bss|q1hPx_>sq3RV2BGXzWu*^RdDp&uuy(zzFDOx~eJx>vmW8k7Z z`fOoINn)(?nqe}xUS2ep0*bzdmxN2YzD!6s4xz`C{w7iVj~;!%Bz9*45xtgq4+`}b ztYj2|5IvxVY|BevcYD^l-W8UXgBFSY=5zZ1_iqKK&M=-cG%$z&!{7%=hl+Rq>C>+p zZx2vFEYjbkf+}}j9;cKim=rInIvIp{IJ{R$m6v7e7oVyLRuMN54nA>!WXW zb~czVG57U3JM;iW+X8uuF1%fGmfG~h$4B+$t~vBcbl=u5ZlChsC$Qn}TmXQcwP^#7 zer_o=heXwwhh^oDXO_3K&VJS(rd|Xv(0rK<+yjI1S0v_~y-|8P|1h1N@c^ zU(C8R{(B5)OF@MJlp*C1c1-<*q<%!P4M>HHcNawS{mTopCIAf<9fe`oU8-3(G@(tF z5{U)n8jTWV&)yJ)&V^IZ10QZ@zDWFFy+hvK-VIQ5Wlx``mDoG#4LfYm>(_o^Vf&!^ z#>U6rhI{LvgwrRWsQ!bEmT(rJ)S00Y0>cb zOV@wCJ4}2khK7;Akf7Gzh%Koh-d~?54WEzNL>lEv;Ua-hH0l!7*$95dQ_pjm=SMyT zkaM4CnnZYni#zTDnrOMR^!Jx_2KDqZeLQJtLz^=(GV+8s00ySRAhpPR>d~_6TSU6v zTB+Nx`{mC`VyV!n*-T6O%z49_j`c&x4<;~np{>*qB|}Zv2zoKNrtOfbZ$=k?EGxT* z{RHa04ZULWbF{#T6O}{rZB%^x7c}zvLx(#{q<~9$p@ExcEr|k_d9&cPL5dv)45?e)_M|e9M+CI>j!c1cKld zKY#s#e0kc%g?Pb-e*b=tMu@DX|4izKFL5=APXFCwQY-)NV+%Auo_r}}`528Lpi;Dt z!@(p4(8ckxyH^OkKnb6Mjw&&SDe(Bk4jaN1Xo9p4rI+7sNCh$HiyDdkQV&E&*!g@w z>38hgryKj-Z3-Tf{$u^vD=jse434yHvqyFay8VU0i?Bz zZc$islLEL^^=IP}@N->|6UZ)6uzUfuQ$yZ`lcE~+#^>qNa%hZWtcuub{ZMF$JP%b* zt=Pp8W|gEFzuQKDr(_fM!b$;?9bQ-d>C*$mqRsMxJ?vVNB6c(GUy;ZYH4=9rcM?}A z7)`aBArx#cw6}m9&@&FgW~%)B-5s_otgj|Rr92vOD228wOO8}|mlx4zh>njx2NxxB z9L@bp2Sjdp0L2)AapUykqac zi-jT2#*)<)XBb+aKxrqYZaAHpU1*Bnkby#btaHf(jdO_N|12wl&~L(N4>gQ@s46T)(y3th?!CUrqrrKIKSYzlSKt*=);1;&Jnp! z;9AAQ)73Yj&1GKyeh+*07G7W9&_LR`0%qT?BB^i`Nw$@idO+&hK}UB+Nofl#jxv`n z?FUsyzkp>fh$Rt=KLvkwI*daQm^T5`6qQnN?L_632Z1tkZopMKEC* z#mgHyCY})s;0r{uhg!&Mvy{9+5+S!YCp0EbTA$bZI|WQW-fz#4WSKgZs^`^E!=;etz^%u!eK*1 z0&K(&@t>W$cHP5h0<=_OQ^~b4fmK7J&+Z%XMm|FloyJq#$;hYx(F0xJ()#)!sM99a z)@cFvQ-Q_+q*@9c1;Fr)P@5rw8DG2h8P@s`KS{Qt-P3$BQ(s;}cmU@5^y}9v^d*S- z7?}gs8xtsbG(10F!hHbE5WVGhcmC*QWMsh7y*gw$)KMe`?gpLUq@0`_i8G`YUVeU# znV%!8Cs8-!WW8uG-lDko(C^`4RoEtoltF?Cy>JL4(U?rYjEI2aRG&*jBl>nV=nR_< z-*qG$1QG`FRTA%wU!+@KQv);EYos2m5gCd>cfuHjl-b2I*^UVvZ8Ibrv_sLDO5+`! z^p=nO^)54$OM@mrPeI{vk88uK2Q=ZGaK+}`9+W&^`|ePmJv3*u4_^pdzb<=G64{Dc zXAY)_^fL&JHgdMWtG*YP1IR+gMzDjm>&tf*9~u}KAWU+gCd|0nf&RhjTQELeKrXUo zC^Awa?vs5fONvE~(`U`UwW2bh861xfW~rc;^u?zL!16{uEScw7uY@4cJo+0W9S}MBrXYhT<^H68$&~4t?M=Q$*rW1|MuNTc!bnx6zXTCj|V$*)?+1TD=LqT1Xs@%jzrX>~@j8TW-K0(oELB52%+K_L5 z)9;{!-VlA~e;lO~{hUpnZcy%DzkdDc^XH)O@EQQ!MBVqt;8=m(=|XqP`+F0tzK~j(VlfO|APLP$**X&W!}{P;c#8j{$GAUM#5Iv5zMDq0ugqaSg8j*K}ktB zqYaBL?+_C!FxK@~$w0*b!B*&8N_vaL0q=>19)^`LAvNv4VkL7t1p{O*s*i11cC3gY zN%_jL$gl)fbTCg8<4*DFckkaX)=+jAAH^deC=Vc`9?rM7+G%i;9_Hdoj`cmZ^yNHH z5aelWu^?{azzEUX8$iqvRs>5CXVlN1FEATZ*|CW;AJ9}0@(4?aov*X zC_Q|4Ms;BPQpi6}se%XYg^;CQ^yQ)z)`HuE+fe5=N&}L?qKEOL)!1Y@B0-Ts4M9~~7 zi1nR6GjDtI{-Hg@%3Z#BSc=#>+X@|@A>^S8ybj{Nml>r5e4i^g?xtcs-`A7=nb$_^~XV)$NU*elKK#c zH%cz6Mj4O4eEUufmapDu)3M_F;*j6TU>7t72$fWbaVRkTM*h0OC1AKGD|NHe6E3&QRa@8uX(FQyWQIDG7*K=*H3?L>FMs zBBc=wJPL@5L@MMxKr55LzafIpMPal=Z?UpN=hr)<(@3$gnGO>$4wyk*g%V5B7nyv6 z{~lerZmbiGaO#@4u(Lp2a1%5pX>W(aSV4h?N=8P8_&%}E)eG)eVinReGl`ma)y#}u zXAHMcpLg4AW@hGkTP`0y?68CclLy!g2G$h8J1}8$1(ihH`LB|Z>;Hp0aIbl%oBVi3 zk@>Ie6Zl4K)4fi4@CLvL>kE#HRz5<^8&CWF&1P=f+jQqxLJw|FGc37=b{2#W;*dlE zDo0?2a8r-F4Pr4HP+WlO&&Qm7N|ZjR-W*dxgCWAJ%g+tnKGf7~!Q+6lpR~Xp*U;i*9;~r!t4yy zM;-Ou*kF87@{2VcY6m)q7?eB>nFgSdc*ihSk!F_%H5W$yd+0cfioDCthE2!NsNrAbks%@FFtLzf34F;LL>K9I{rKCbeGP3|RJ(hq zAt-oP!7t_y-hbPuIc#kQV1tgYGPVe8I!18TmKNMG!Bf-G(=)z){Sorz=g*&scK{vp zzDon{?+XV*@tx3p&f&rnA(m2a*wTfFSv}e*h9L&8L(Eqy0uB?~9g?FhHk$HOJ0%2j zTN5t18`oT?DD$0ccqpzATjV)VOx-{IF#zU z;O~I*CM_AJxp{eXj_#Iixq;v*yLT7q zYyo7)V9_2te7Fnn4uD`!@ev4y_)?>5*B-)T1Q8dxV1ow)@;4Z5gQ%8hP#}co3k*T# zGPpta(Gv>}bw+~ExYAKm^90?ZberC@0IUyTWd!2+(%SkG25&TWJR>8S!Eky3Ju~bH zrNN8-Z_RF$oYzvJFJCf(Cq#o*kO`uRiCb{f(dZu&5O@Ysgf;!DZRlE#K4)b`#UTu) zB9-pmzuz|}C#TF7c?nc%YNGozoCX)MN}IQBy9UDoO3FhZ?TWACgM(ilY~Ed0S6BM^ z^9ER85Sr!Dr@aZ_!4?Htf1~r4*qkxnOYQ-xE@ZrN{6}6%3G+O$I>o1N5Z8@f)?=)1 z4~D6-vxNXYp(M}&e%*pY4$AYM&{q=9LQw8uE=80749r*ig)F*&>F}DU#Kg_P`UVU7 zlKs}Kmdc2S|I4uIkzZe^wjUHHz9!`S-DqBd6P2UviQ4q6!`?4zZj@(#ri z!t(ccWoA^UTr_h*bUxJAXOx;klDq_+kf1<9=-~wckeP;ym-6Kbpy=Pff6*!?r4Gyl z^r!Ue*QcL8$%XP5atphw{vLrq48u}9o&#d}8Fnl6xZ3sqhq2Z1jdR+nXnGO98nXCl z;0~nKSgcI>0uy+!88#T^1w&A$ZKnq=0MvuyfB3IOeb4VXI=NO~9*LaIUPmy9W{Mz0 zfeZyPY4J2OH7y67@kMMB%q=9O^<&dExNm_N(=k_&CoKgSj%X#*i|`U1nhQw5gd5uW z*j=by2U|Xdp#OE`#EC!m*; z4tPEtN;`_`C+zF14e^-b0yy5om|^HP?*+^VXdnbDUEBl{i2$JNCyXZ*x&<(mGSZyJ zBYc95Z6hXqmzI_oq};?o+|_lsQNv())AcKW?}Jzh(Etq>vAKu)1ZJR?h8=+@tXy1A zAWv1U)ig9T#KUPp=K)VO@X{(qDf+BR;{I#;+2g{}_dmS=lto@CAU`|O+cjf4Wk)7r z*R5Lzm)RE}2O9lmWI-Q4KjKORysWDF3j>LXrR7sB6h;D|aa5mp4qv11-V1abMQl|*jqg(&m#z~{}r1RtcAL?pE5)hOE%N5;SzL#iupemkMRz~}HBT>K1h&363x;|7Gs_(ylcUwe>k>r2( z=Ecj7{DeLQss1QJ?#}lfH2#o72~`7{$ncmk85sey@p2~N1eJiPYSsbvDQ=<*5VZOW`Dq1gwY_4M5FvEP!nl(=j zhz5-pFZz)>$)*6CH=QH0^V*+ka|3seor=s}^OahVR3LqIs}cHG4?J>4M9 zs+*=f{oQUk)J4hI$`ofpP5AQ>Vt?Ax-9DT0edLLcJ@tnw@Ufy794OF1^f0ptSIE>SSAlC8sLp<>pr0bGh4m ziEX(ZJ+33PGm81#t~Vm5au}uD3iUB4W7{W>n5;lHy6U+?dTwy1A`Xec2+A&SF0oSM z`R`!}2N`(?eQH0ldmf%yyXEq5d}J=lXmPc(lT%g1ZfK+rAoN4Q9YoPaInpx<1FWrX z4@*Fg8fD)M90k&+_TC|PC4&e-^B~!ah5v`A>yNqHs`wtvsZPB=IKFWK^1jkbK_5a9 zFuexzhc6@x;xEHyih-s{vsjdX3c?_8?MYiEH2Ck}Qs~|hdW`a3TCnk_ro*YMyMF!p$J1z%G+mB~{qia_^dWFkH?(`qTu9%!lU={kGomrq&1rp}b4+x@<>eV3 zVKh~cwbqak4G1Hc*m;QfOJpiU71K;zsTd(6i13IJM>F_GeEr&E&jB`JZz{utlI6WW zV`JO8G?^#g5Y09F<_mFi&ZQTSq}EWWs;b`j?KIW5*+X01Lrd;W+L&t$cj{D-)Lwf7 zehAp)HeS47pfu-)=g)b=lZ>CCNp1ji03}TRcN(QiE38)2{C8-H|d1SN@Xr5HWkFX#i43kFO&XL*`7`JNqoR4LFbBbFBBr zU%&Q47kd1o9{`A6j3FiWCOR=OfC6}o9@t_iL>QA<8?AyC`4&9A=%1&WBxw| zB8l0(7se1Bco&EdAGMk)P0t3n-wTb^w?%i(&;UF^Un16;D@f)y`~#&nmbae+=K_u6 zl+d;8O%=LdL`n zoU+@5z8#qws;~Ww-GZZ1G}D`pk4>(?n1|(65%U;BJ-@LrTT>8<1NwEl9UUEU9uMhV zkW*uT%S$n?0V4$!N19=l4%cVAoDTzs#Jc!`-}G@6-_&4K?%)Vq7?2q?7)1>BPW^^~ zS9`&NTQhNDSv@Bz!ezq=d!KWl_GE6js(;+S%#b5%S?}#|U#&9oK5C}cfKy*>*pevM z+c(We6uOyUdk_{fX+YmdFLA0Y&OQ^l+BSK;@L7 z{(efmu;8&{8!%eHXn5&ze7-I-rXNnGrinwJAd{ZuQq0WEcntD^;hNV-!Xo+lb+mhbqZ1 zrH9C+!Fg8pv1;tdTi;;;qu3&5yX7*()0*muhY$s|tGAaLM<|6$xgSIr@euGEWxOy% zkGd{~c~C5}s#gmAZCEn)?AeoG*BPjMN&jDmmIm`O9?lj*A2OaW6}53&HPNa)n$i}m7jpq zXNe_#>;5?Y9dq#Ls-60aCy9f&jyGiW+wV0H#;nd>2nMcUBaLzz8o{lSucox#mr?8V zFTXuGuiYx;!4kO1&~=t>YI=GSew8GNvmGge&;hka+=9cx5=G1)6j7YJ%3nah#{-*~ zAB;@;GZ-EjnKq?g*&LwKyr5$MY`B5yoo&AYWtQhE|GvFkIv!A!uJly|au{Cm)V@DO zTM{{q&&Qb@vd5koK}ml+H8Q2gQTb~^KO`1iIJ8$}Krw-|O|>Hu6w0=sR z5E;)r=QgN=aExvVi*h;Z2&)-wjzEV^L4xU`}A_)7^{iiyTbq@J2rdm}e0drpHL3G+MhD0Za~l5;~am z_8at~?*$IlSomlJGX`l$6L9C=y$?aqqTE+ku7lNhiC^q$O4|cXnVd@oI=%r^OB{1k z@ZS^G+?r$UpH{q}&@Vn8yN$BE_DD09kfdP|3{7=7k4uz`WBhGFr^qSmZ2MKkk2qln z))FF6^7HdIZlmF8ZI4g(|6?%u*Nsv2DLEwy!C?aQLT3Nac%gyji7CrX_=&pim7D0j zqZY|w)4458o|C7jLE;bQ{J!zB>x&3US4KkeP_k_XYWAIR@Owjh(7X!d5Q6qcOrYF? zj>*8tXbj(i&bup~^|eW|(K~Rfawt@ozVwT9Ti6Uiu?$oIQv@n;UgycgH8jmDP_jfE z#txtvj1%3wK^3>5^oG11TAZK%@afY!_!C6X?!|c&c*8nK2c!@5=LvfV`|;zO(Baqq zrIr{UPX{XTGLFO=XDcMhe+kwH@o@LqvjK{POoO{qX4Cv$h$aU?K8 z{GQJZo*2Jbm_bgmKw2$#UtKgrzjr^9$GeOSS?I*1J2rY~1(u8rWtcJa%nNS4S~msGBebSGO*78z;>WD zBRn*P>5}S@*{rvIaN?7l4ZjgN5(o#6u@mJ1vH)7P>gi5a@ZY8~!PMgik_+u)J(NXW zLBR)z7tB5YSspunVf&Usg$I!9x25ZBK~w2z>R?}A?2F2C#bvIzkjZj-!{7qWm{U_{ z{h)l%6|A-TJ|?-kG`-y;XVFzVY#sRNNVE5`H?}a}enHi<0Sa>{9_I;Z2mVP%YSS;g zn_hKo{CFif*8?tbY`@c{-ESNW?448Ja^f4I^Y+3gMAzDSVWj-?XNZDK*w~JV1)eML z^}IM`eNRgvc0u0&*GQvbVc{sLFHS|bk|a>{>Y@K8(6Ge3 z>4>Y1g1}{hlKJTIV_6(7gC55k5Npi)ZGi-+rE4Ghh+`w}JS6D;{nLqYvpC@BYTk1Z zwznKE1|<^z^mhivy}-KQPm}b4CyJ1|BhTqFw#{ULg4>Acnt;LSE`{Y56!H|5a31f5fxS+C#U~ zoI1YwC`Yb z8+(9nh!$$;Ei0$_z(;atQ3FE83t~b-FdoM~<8%gGjyA_C&Q`#kO;)l+9uJ}4v*!xr zBQ!)FV7tNQ`5j#hOls}|0pOUWZ$2l5$iP`6@3OMaAg^}g5KLgw;|tH8H+n&9UxyP- zq#<@+flP@FM|z2mm*HjE;amPV?`OGjdXHhZ4n_qhzn^0UR9^#z2c3yXbbPoZwG%%z zE>DU0Iww!r;7yx31~G?o@_*&%9xInXG16nRP$#c`1!_iJ&x0PyG&Q=u5}Ot!&M(F<2MjySxBnu_y`9>GD@3!xt@ zSPqjOr*D#nnG&z|jL#(y-x)i;ExHv8fI{2f>>^w!kU#1@HWi$qy68 zm=rtF-=5+Gg@-(PIEprGVeo((7rl=wn4-lo7$2~Hk0rF-+{wH=yg;a)nBS+P+H>Cq zgP?Ue)`pn>V1SA^F*zv%A#~+m?{;EZBy|-l8n5PnmM;F(Wtb{L&ITc(hIv8Z3%rjz zF$#SaP1nQED&Jupkj{6byaKk6VKi|G2@++{->#rJgg$O5nj8wQWF-9wXg$eGkaj7O z{*O8?D$OJ+;p`&_lQf>v9>^}uxskcU?cHNzet0RolAOC-9r-(P5JmVYdm0=*MJxqW zhgeu-ZCVbLqGxp=*Jv3_yZ}el%O9-{_A-WieOEfBtn5UaWuL^!HP4l`w zfVa*UL*8CqhsDJYVENU8=jZ2*h&vG0E>I@yE6lM!!WKCsAg~(@kz;nWHH#Kimz>sD zhdvI)6=e!OCv}VX`1qTJYm+ca2*45d6NXbk3>l@UGO>byxKDI@GxtEXR~O%odhCgZ z59^br@f)5JDfEo?!@7!9dTZ-{t@icPFaFE~8C+h zy(1{wN7T`GS3cY`PKyi=e*&@$SI(NdS!F5ca*#5MJ%qz;Y2xDI9{;uRS6fUJ1pN=(HdX3jo?tUa3fi3}R3ae`85Lai=XX*O$=PB${ zoGU6jH65lNNMNyW6RJy{b#*&HNy>p(;9K*9K~9<@gazMQsdK@1n@#m)_E#k z47J1IxDluuo-gIZF>k+bNe3g&Tza)8p)d`{3rzgU=?s0_QAWeIK=&2G29z&_+S35a zU2si;=R=MQnV%j;HiJj?G{jdv^i(OX<3)1^alpzWcvpLf+KY<)zcKb7;9U3p|2X_X zA!HPihLL0zMT3%TN+P3DHie4pWRI*el9ZAWWlM=D*+OM&5E5l2BP;X&cy(RZ|M=a< z@w@NiK9BQz9Ow6{^!dEsukn07)-z`2K3Yg88c`c~;x+QXq_07vfg5rwp+1yvu~1;x z9&AZv#2rQI^Xgr@?aVG;&T$h{()}aZ{A3-vHdE-t$gvN#T@xfkh(+Nc&5ER??=e9| zWF`UOy#m(_eA}C_qUHc$k&hE|jj9t_Eq=MVx!)JjW0E75^qoNF+l`1)m1qe?@8Gg9pbCp2pG`4a^BV?sX$}odww%r*X4ffe-P;pSgG5mMsF!`y?f) zC=E}vrov5g|e@wH`{a-S`&yY9TJucxM@>UUOjPj&CX#}bY% zv>6x}h?NQdzoCiqS6{+6RyzS^K{X=Oz%v|JQfc;{V&XqHshrlao6 z?Vbms#sIb3Wf|_o|Ga?c2LQ zWeflRfbQfc!c>%}nhjLDJ=0#MycV%q)>d6UyJ7Y$LXAbY7~GZTO?zD?#k*qG0fo4@ zDhdc+d|VNr*0$FBf;uA+Og+SP zM~sXfcI@1e3J#tTeKra8#%ee*^ajF!a|LuyRC+&-R(O61140L{!4~!v9GnCNR!%lP z?K$;hb{4Wbk%bhU^kha&y=d2LaH9GPXWw~GXn(qyQ5@;Yck&ZQaInqRhDTbdccP<7 zexE6*{SM~9G=+Q6C1F{-gnEY1TvlyJbqRuyhlrbBzdoq^eb$~0zWoP7D#I7h z9oEv+^fY(KK;wl|3zWjq)Z7)U)%t1MBifUBdxncYDl03ekGk%%%LXi7kbJCL)i~OF z*lJ$59uZHt2T1!5Troo^w$9>Iu@hh#ie3^}ETY!J!5%=UIqM$WPo!xeky;=vKWTWR z64O5YD(dR|BqiPFdCCbIBv2SfaP^GucK7>5uU_?GkCKO{G39F@z6=IJf3rawq!RX{ z9nz?aw&3UwLP0{*IN-`5uic8H-X9?!9p!fdNwyHGWkO>BpdtDc)D|Y7vj>rz1eHM6 z;76UUs54X{ZHAeR5nvz5I0Huw#G@JwJS!(BEjVBT&*OW7C#pdKk(irn{N3*yhc(!> zy9l5nrfKvgZ_v&O9#$ ziue`{V-tL#)rn{MGrrs%j8-8b^0-yNXyz)cV@@7M&vdR?!!W0 zRCsd%BB%|h?djL9twvG_eY!5;O;E8^G&ZupC58oEj$)rLO06kPdmH|DGXSAB=X=tb zwyE6kIVM;MjmcAp!vGf~whC|qD(!5S8CvXh zaV1qqXu#pA};QNjz9ygF$yHPouw*~`Y(Y>2KU=Cq2+b+fovghGG6ph=p%j!Ns3YUa4i z6@co2CHBWLLj=6&Bz$9IH$ahKY zRTJh9p&ZKKZ1Z$1L4s` zU0(L(%jtJfkZZA(ke^tCih9C(W!9T`3`OkF)F7|n2975i;oYPozJ+gQdFR$GKPZ!F zh}(pm+ds$$3RVlpb3TI%AOfDC2r~i9g@r?YNu#X%rLGN7IQ&#)FRwQRil`{~llS2s z=Dy`mWh0FcbbC#wfVpPd&HyQBhuS;Yz^|K zXiOf4|`Ce?@)U1EXkst-;ZBN*aL*+awFz$dGvT-D0gM=SFejbqT{=;-kQ6$rv~i41dm4{7B?`RHI^--7 z*fT(Z52#sAeh=awkvAB0CwUwBWCsfHJqXe;FhGYx?8WmjbpHTpv>Btw!__uDHl@Bz zC!HPjrm)KjmJTmFL#71zll(eCcpg>V-CJP}(0-*Q7)=~C_)6zERN+fkQc})~z^?=9 z^z!l|1SBqB3I(JfS!_fkN)Ac<->W;11d?5Sv7tes7gSOxWZVP-ffM55Lk4QMx6}wE%yILIY^3Y^_x{@D z(ZKxgrQ?Cv34;P5($+_gz2&l-NA)4|AH;G=~#`8cw zSJTk=GZcAQW(;0ap4w@atOYRY0|FbNz zxPR4-^8Nu;d-~%Qzhz?zDX}P0v5|=~Gq~Ce{{mDY8bkmn`;ohgz;XhSEutfY&hIUd z08&&Tet-*SJPG5{iC2F08wy4flD~H%?9R3qk6#gVjJGlD0nSlnK4_Y4*HKrLS<%@#bedbpPU{T>2AS?uo2jH!MRZW@? zc$MzB<>C&(iF*^mT}D_5ML}f-0Wv%y7%e=yfqoUC;Pd7#O`XA9C%`Ty2-r2Xce6-4q%DlIsef9`F^x1}G3&211S_w={J!%cz7K z*NGw$6mU;n2dA{*8hILIR{{>NhKLP+#1vegN8X7rIz=59dUc_nY!($W$kdo)C4fDAW^{Ls5P6fI=r z4T%oYp6PP!DM$MOcbji|x^>8GXs`x3MEW5$^97m?V+SJ^AvTwiu6e#)kC8Q)uuZ_= z#0h5(_zQ3`GNjj`JvIuNX7B2O^#33X(rp95O8f-xyh2Q{tJp6zU`t zjznccYK@5u*HJ?zL9j{j0h|vb!Umki1`oE`31FhkK+lF`h6<$wsma0SZIDV&DBcZD z^J`B(scO9tw(Ct9YWY0GhJuc(Koy$cF}Y@Pa#ADf$sn(hul#t8@tLDCs)Erm)~h=J zP(aSgqLPi5AQ#@^mL9!%l&~f z&s@cV)?w0kNBO)0m3~oMwM3`P_6Mh3;1#HCY~0nJM=Ee=Hj$4+PjQ1c1N}Q(35LRX z98chj{rtjq13G>7?0IzMsWP8{ielUj*}H_+L2;XmJp`qC6)qGMJ12h?#eEg!*NJ%k zJ5q(v&Y%xAq7wf|uEHO?-xo0BBLpgM;af!!8>SbPuA`%1HNXMI%g09rLAVh9nLz<> zNK_!GFl$ikNg{2p|L0HrGZ(8jBGD6f5XhhqC=b4&6gvecA%(rOB_T4B$jgZa2%AzB z8Eiy20jmZzp^idGpeP!E(8~w0P^$sau{&RIz#ce6ZZ14pYOEMCc?1UyfuPJdS04aG z2h;NfVH}Aqo2(3<=&WBz20Ov*?d=UBZyS1L$Wg1ezCv6N*5wwMAaDvo>iS6|*$&d939*Vy%}sb;249S0W*-%oaN_zP&jEGb<55=B zhM}XM^JoC-5aJY}SK%=6lB)O8EiI*Xy7i!-2y()PRugA=n^K<>tT2JvX z#g$da#qWSpNa`89hlIq&!zK3%5=xK`?}Hyq^jD~0-r|&!%5g;va{-PRz~lr=O-oBN zi_p~2@Pki)qAAh%cV7LPVl?%>&dlD6JsW1RSrJ z7H|Uxk|rJf3E9NZ5=lVKhg(FoHE6McE#*n_-x*8R6h~7j)OUp&NwJ0^e-i-myR zfJ|=JUz-~Ag$Z@{+w|Wum{t;iqUfoNEq8ge(%`OpRJ}``tdyp;hu`aCStJ*7(e>R@ zfu8T_)jw9`p2wLP`lHcu_eMmagy0hsF9e`UJoTTQ7u@^zwbj*KJr}u4x#1(vMA@sU#`BspIi+%;Ei+4Lu#mtNliJP| z>i%~!wLmdVKV#SnSAE9PwWLwyuHXzBRLN1R89Bd!{zR~-4Cl_X^f+25WdIQ-5Ih0A znAX^1BCuwz+W+lE4$yij&QOw6V^=(dd7LmvccGhx50B)dQp!+5klr}e5wd624I6?WJcXH! z2_y+Xfa_)}xWLB|iDL>JmoQ9(1p%y&e?&Yl+R=0cZ)3GM&-uz&zi=yWw4N!5#G{c9 zLpyrjr%ja)fX@ScR0WoXk24Jaay-A?1>FcRDb@et$sSY9szm1a;2LNys75Hjgm8=t z1F`_3G50y0uI#;2bw~xk8QY#9v_dNuW>|G569riVOyjs;XGao%@N5OAk+Ln z?7&P$P1!2vk>(J7|Ni}!8Nku-gZM&dLvfQXd5k$F9;YKWVWt=fA07T|^V&n$DPlQC zSHO9gR{QVokG>A|nXetw*nGG%1=Z*B}NvZT`7q2wb)KA|HqA&>x9Am2ei_?MJ;rspdD zyD3DpaS;Ow20=-I6c+#NW4n@Stax zjZka5^6$AXwGC>jU7fjON!`8Y-0GAP(#{f11+*9#=u-yFM*9uUnSa~Zb2=vZ7Z@c! zWI`-MMG6I2FAiQ(LW6#$qM$n0-YlBX@)>CR^vH(8_RIKHLKCCa~qo>3T|F5pZDYiTo$t-5Z@0T}3$5k;a3St5fVI zvVA`Joi^*iV!G4oM?{!!rTq*8FahxZ5YOaiyMQGjdJ76v25{!SD4vMG0z2`9z)~t~ z{6fekr`WA>CX$9J5yb{`ok=05dpoeEzJKU?}&Z|e?iO#{3Z z+%hOp(|<)b%5j1VM1{}?bqL;LB{4|h3bDz*td7J%va88fz-5UdN0lrc;G&6%i4^Px ztY_rC>&Zl%a|-S@B84b=H_`@3Ag1!gLIesdym6d-dRHt`(v!3Q{ypBsYdcrE>jE{^ zJ8z)i zlxxNPt`XV*N7S8!Tr)LIx@ED!3fmjUyT@eRj=Ou#Gkg90u>qD`P87P7M4en29MVKj zOT;$ln1~thC8lN|aDWjVJ;u)A;F-L_3Fd_*GC#*QSu3l7BcMmuUB3dC5tNxi@=s3=5RnvX_UwWt5p#H+sOCgUVD0}r1n=Y>8LNz3ZnRg`}4x!t1ozxs$Tl0&H8 z!D`nLuUDVKLJ16jPF~(r&{#5lY6}C2$$?_>C{P z6-`n4SQyVJ;Ck0B{6wwoT*2w-{)jMdkmv^hSH~HFwvZMJFx4FQ0c7EMBl-CbKIcCf zZ6^R0rFrb0R7#SIVcY=zQIdjogZpzJ)qbMuR)CfA6lx zv79Dj5+)a;j(}X?2T)u2QcJJtsf`-b=lNZz@cZas{MRSC0u!5QgF_PuWrL{JeMG~`e(b@ zJ9qobM0zyk>JHR%O9kXRvJ5^vlrGfD*cGx_5b7bNcFtF59*G_NSJ$fzSS0(M23etE z#`PEhrUmrGRs;{rTUewNRHh_PrZ&m0%hDAXl4EVkJvl5Qp#1a8hVFSfnSHssYHmuF z6OWw_rTy%)^+~h%AKnqnwhb~!AG|Rd3K2rG$j!-1^8CSu>psD#C*54Vr|IhCsXX!Z zLvP{^sM4&y^MTKKFirQdtA&B2>UzB#j3MGhihD@6>@mS;;^fB=sW;_*gXb!9WK*Ir ztjg*4qK$}3)L{ENjNUMKo(IkhR4^+9!iV66&3VC>bJ31|3eYN8s73uJM4w_yEiRupIo9OHe*v*fDGmXxwTo@-|G*TubS{8f&K_U>$T> zNa9k~XHK>4O^5Od&pMNRQf-d1S`BYMiRTHaX9%Iy!pz^_%0LsrsjR9yN=}VZrGZeNNW;VRi8$6QETb%R%a1 z()@05tF)c&>YRRPP@QGR>pV(xuX*H6v)_Y@gAZj+@j2rj)UGBp13dWEU^qj&4kKQ7 z^C9MR&^cyTde9u$FLMC zkH5SFh8!vW7!6`M`L&ExC4#S*Dy8u6+EBb>MwmnWU=Ve&JBOEW$bdvG!;%KChZ9T1 z%Rz=xW?cW);A8$l_C$B>8>in1z#D;D6cEcT3Kjx8=0}8_p0#jv?q2%0&2@6N@42+f z`pIt%OLt|fc|y>Pk_Yz}{XQ$EC=)R$p^b5Epm#>tkOgyEyh-LV`$kHIZ} z&!wxilpHoOIb|Jt+wHH&CB~JTfeoXXF)oJ)8nFfBIyW*I=}GwpRDuw!WtkifXgqNi zBeO9AywQaN^{%lJKbf3#wu%;5DzFKZ1nCY-GiLqb^~|MFGT0?jPimvs*3z7|5wghY zuqwD2>FMRcHI@`H}W4kv_F^jt1k8&AZd-_nTMrnT4E456o_Z#VN zZPlH3Cg->tI*#4QU8}*W6ivy2&bpTZC18w)2R`kP6_nzGNMS)-FcI6qQci?=0CRHR2k8j@ z7qHxFF`!8M4H&$Yl9dUFh?~RB;=AefJ90!VG_yo^Hr=9MCE_`)9HokzKRa#&yD^HP zVDMxJDd(^k&c3v#0;Nhop;gpJLI!XEgAyy!ogVn{gUsO;DP;zjP1D?Lnecc5nmIJd zw{%XUsG8_mSuT9iGb_-~=l zC2TTU(G&`G$SPcj+w9VeV``4zk>rvV0mfc=URL=5Z^zVkg`yfT$3XCEYLoFb;wxGZ z1Poc`?86+}v$= z@h;OV7oV6J4phl~wQk?I`h`ub{m0HDhPe^Lp|gq{V zv*I`GOOw0_)lWo5+CK8EZoR9N(w~-dv?)J4O;>V_PPD20sGrWgrUAvzFD_{RBtz8o z3KmSius^GG4mSJI!;k>GewPD~EA7iOaXC5=-ac+x= zZ?txL!>2<9bbgB-)hJ+h>Mkn3nI}Q)`AfiJHQR46a z@k6)(+5f(1x*0N!5h4S!zYRCuPwPbwLFw(-}3l{8&246J&4e^Kf{1sFh!VgOpp04 z6!|k}xVIh@x*G1}+-k;2+|oo-0`bhm%JMU@};=2-FK*Q3YU8@F~qLhv!7{(;jgJ{oWy3V0ZrKHo23bRyEs8 zm7OaUcxye=KkrO4WNFDM5fyLHk>pft$=)@!yr`(1vZ?rw-dT?QZ~XDmHENU+G}u{L zDZr|Uv7s!}Ym5}zOiW@EB*t3D7{+!wgvFeC<3X?(LUv$YOC?4fQpO=4jdA??_3P~d zz<3cE2EQg{jCOSnzUQAxk!I7lPE$DHlKhbjA=Kc;hcy!!oG-sD=}cdhz& zq%qP^UKhdVW0Y-nJWb}7TxHTG7Yg;4%sje^pb6HRc-1%N(+kRhIO86Jjoi)+@dJ|o zeIWD%7qbe)bO6XJ5S$`YGGKnk|C~I$whyh1UOi-3J*NhUod^kt4sZ4KRQB#WaeT_I zv~1BurAhcP$60n~YMG6V?48d#<|CbWP7GbSbNzjmWJ>(kq)ki33%4&19{*Qn>IH|$ zl|%t9Kx{n~g^1ZObC;+`x)N;?eLv36X*tO_tnAC#+j~{6Vf#Rmt)jH})at)YvXifL zqWb-p<>On{e#>UKg}CmJH-j~ngI|lnsXITOxdA$Mu&bOf=TLGB{*6&Odz7yG&b)>t z9?*$vS>rnFPPdFAq9fM?M!GR)x6MiEHDzs2nHdv}8QSti?|m~V4w`YQZokD+9K(|1 z*~)wNfF^BUi|v~N+Rqyj9(`WkCP&xf!l`Jio3;>+Ah zaLzfMi;TNeq6d4RLZYjp=#3ZBqOqpNBmig*UP;(N%z}h^L|1 z!2+LHnrFSINHauOXjc=V63*9*QB2uZCb5Yot7QJHcEO(+##ANaT~1G04(O`s1ZR7;!b&~;=#lF?{HP^AXfJb3 zDg&zW05C>yByg7}J>1#7=jzgy*YdQ#-YnRh$hjPK&t>wG;iE*$PLZ2h=KO2|p4Wvr zhL-=*jq5DQo1?(U;3CBu;E(5Ksb`9C-&R1e0ER~yjC3S&CQ=7&!lOQ{y{^Yc?5KXeag!VJI@5?FxhO9Z*h#& ziTd5#<)eG%{Ti}v{$Vcw5iq7R#%uusF?q!Dfn1_RCL<&0RY`DN$<_3>w2m}n6>W{T_(mh*QJ4{Q7Z?gz)ND%2IIu{WZf~G^1Sj}{h zVh@1~UF8YGNq4U$YV-AK=MKW}aj))%CQ9f` z-N&1X86)fR+3^gtKj4s(B9o^OJ3&JsK~+FShz2}#3Adxhxoc^^=FbdQp3d0Q}6w~b_1iH-bfDale}1p72Z29Na6z~$B~lQ0uhlYqYslg5x5ueocJ;nwuuzIYP1R8Ee%ee9zp-`epG`GpeUtGyT{;r`S8m zxN80*@I%*5Osssoc4LKMZ#)k?ugh7*$Z2 zu05p?v!S-bvU~NW1TGulxX^9F9U0zyoBb@_xL^;6tV7$S1{WQqjvSp3;()FrJQ4Au zppHb^q+S@?$IWP&<=qx|QlE{9&GX4@XK~%r^ZW0>pH3GAuU4zjOTJl@;07fuaT+j*Q&DjKHL0j^sPdk$ zZvS+Xe)aCwumisMcv96^2}H*R`%1M79FUMK`r`*BqevyHwT6Vlxn#|j_pJ(E4%Zbi zG;P+JSUFc{ocK*V!P}^#h>l_So^ZkHTL*ztd+kuU;3zJE8k9Nqx58i+A6X zfB1;nda`4|3c%y20+GAd(zF2~IH2Iv`Bmz@B1h)rRMYo(`JLC|3q6>ld#A@v;B_|B z?RuAPuXnG;D3LF(DO!!Y+voAht}kX&&FA{J1-oGgvoF5Vnoa%zQKpuq)com~?H}M@QSJhs`IPwQJKz z*;!+{x&yhl7Q{lBl4gy~(r)?|$8~d~3QM{+Q|-pc8$xa(=9#FFB)Qzt76=UzIWv7mIkWzx-(= z9~X6@C?+n{Ha*4a&CfSUckZ0t`OwH$3?Pc zL*z0~DD*r(TvfV7>P3im_u3L~-ZF`UDk}7R0d00t&OxlU+FAZ{gL0Q!-&ImV+MHf3 zPQ?!{D9;r(o!HUaF4*N0W%5p7x}r3i_qBWY+hF{$$oYtMo@RN2gBJ+#t95uu>bA!A z2l4Tui`(w3k6&6%{i5FKeoXC&ujlCp9-MzrJvb<~w`=dSvN!WaCwV9%&6}_PF4=$S zdxGm9_O*NgtSu5JlC{Jfz=aU84D<_cM{-MP1O=rD$C^wyjQtbQaK%ufhk}^M}oaLc#GBM6{ux9baPQgNGC^ZUhiS%vkUh5}hE@PuSSm0|13RAAt6kxG0H6 z8^RZ&P9%aU$Yu7$KgT#FGSdjGAfb}bI}k@8(o%XScs#_{8HERaTRzu%NuO8#N-3LF z<68GK%%=C!M?ST=pKTDy8D+JNZ+>-%>5`0NN7WA(I>7)|1-0pBv$JMVfK|Si%y#>$ z3HY55T6JQ#J2M3m0=JRu!l#g~f$z|B-nSXl?`r7C!{7v@P~cD^a|(EIq=CK5wO@v- z3N*YgtYnn!Vg4(yixEi|*X|UHjH9rM&CiZSP|?s*C}5X-@gLv59vFErD<1M)FyFmY z{%MZZy+fZgcPjNf*4bQQU}4i4uN&N;p`KlHYJ(Gvs-oAQTSEmxzcC@}EJc=X*{_8? z+4H@2qQPPLn!bwjntWB>i_9N>>6zSjo7_N$<>u~><;DiBchOm93RtVvl@fraCAQds zDi!IO)GN;sf1c?QJ(rG5}HPI#j z0|jifX+P4bv5-!Veja9sp4hd@HOH|dlrXFmo@|!=GTGLd= za{aLp>vA*`#e||3p)}4NU6*vuLzO~#dRlUAV5X~&p3qdMRgQ!Uw`hCm99o9@CgdLvT_E|M2(?Fz{*h9Z8kMUnsEVeY4qsC)O;P%s;F zFTx5}gFzy$KIow!do2g!oVmsDoawm)zn@FFWegf`_)Is_W|_A$#?eW|RvyubYs<`6 zS)7b0(C^DyPfZp2?nC>Ivo{`7o=H3U`W<|uh<#`FEQ&!OIedeA&IM9$cb;fBomy|ImcSD$`7Vj@-cWAgOp8wuJ!rf#G& zE6+^~v^YF?@=V!&`XY1SR9$J>QB1*kaahUy_jfaWUZpGFSmgzCU&-fl2YYw1)SN2T z@_kW7MR5^Ucl%lE+SG7%P4Mtc>Vw9CpclzlT@|wyj&X5P#nNk{V2Xgro040e*$3wal*6(Ypfqvd$Y<1n{f!Xd>@> zmge`RPO5^lXS1ljFUcm}Kk+w?`tZIrXF3?K?8p_MYTM|`Gj@UX>&Jqt@!nc;#@^O!y4yh^6#o9cjK@?c-x*woZW_9(me|SCD3y18v3COoy=) zAq2pNkOc}2iVt81Gk^h){{RRlsTw#7zoEJ!zm-Vh0oZ+VIu0vK9!@-f#O$EBs_~VG zrT-gr5!rv<&I(ne*qYS0&z_%hr;pCjzq+MT!pe5|lWRmL&rRX*XI1CJ6`zeTCQ|)M zm8a)Rv68fT5!by%jf~sAJR!|g`3+u(!oj$wPbG*n36sARLD~}Q5Gi{oK9DO?QO>ik zm~L4?30emIHndMQhIS>EG7q77z}g`LxcxLz$-P2^_7KxS3x9g?ZkC?I!>#9LQm=G0 ztaS`3?2Gn1t!n(r@$^Y=iQ!|l1`R&EeR5AqE_^l=+G^%?=8Wd^$IDMS+jg97;|VxL zr!l1-0}a-xAIYa2xvrOkp4;llpUy_(-B5NfzeV}wAKA{nlFM59t`ECYin6i~-AAt(2Sc^g0TIx3?}<>IrSSvh~)Qr%PVd)4SG9zXGurlFF9e4UGOtDIk7xQjz@ zItgct1+F**VmYL~MP7pz^oNh}6DSfL_YFPIuWVV%F#XX$<96FY#q-|mn#{fVk}~4` zn>ZEi$C$OW*%avWXm1a$4+Da^5mbN7R`1_M0~h#qvKZO$2L`>KYCK@v$UmHO=WVds zxt3YCjmmvi_8oWq&ekey@Tr@NeUgTPW&9>CkSN4_sOtCD!K(D=Laib{l|S#;b%T=$ zy2cZtz-M;*whEree zua~dylMD1bPPtkEIgKZd-{&3OYB9n|9p|T!!;iw|gf{l~Zs@re=SOmhUJj?d<|tvp z5sXEwP_O^~ynj&TvzxO$=cDN7pPf2usju0!rg=T8kZ3BATwnd8-j-oZP~naBnncm> z!V)M-JQB(C1jX$J!w$(yC2b!3&jjp+JAgQK;bkY`ryfCHF5JAVcV(XWUCTqao1yYP z$%V1-XJxm(f1q@ZiNGT6ArJno|EyBTVzvEdn7O0 zck68n5@XONhmA?79msLuo8KGVdqKmxI=)LiaPT{SucSx?WBTT}qD;OO3&DUDf%|dQ zlB#7L2jus;bIZTlv0g#VUu7E#Fz%bQA~B(@k9E>XCocw-I5fL`!n-G%?mC1y%yxZD z{H(U^<;`31H2HrNO`Wa`NF5DVl3)CD`Jo@)fsTPt^A1j+i^M;3x%k|P6F%Srh-7N+ z*YieV@BemzUk3_HQ!({U5I?1O)(5NE1SL5J-*JL)_DD zp*LpT^>pYq|D4NR4u z9^>F*J!ut?Amza1pB&zWlM*be;>BA6PZN_!H?_vQC2AjqKvu=;Q%}SzdeG!)N*T8orcnoY=b7uz~7z3w|6+eUdUB$rza-{6#|4xbb^aPX~kERkdw9 z3Vp4*Z9aP(T<_<-vR69HJA&GFfWE7?@G4U{K1*LB-ysF={YgIMwUc2E*7MAgZ;hxv z_&H0+IL=l?DvkQh4IDbS8gH@xN^`K>RWafhgk-SIM*7qqy|WvFR02+l()^%-fyEiElg0D_6w29YRfQ;Xm;5pBzkAQB%0ERZ0| z!fy94$K#-_{;-G~+f)-$`~9>XvYbj(h!Cf!dkv`PZ1!_d+8_lt;K9GV>OGp_w97 z1zMW>9nha&2d+Z=OdJguQhNYVy}`(>x!*w)e#E1Io0CF}1jMWW3)F?1)u($bFECx0 z^%R-1T>k#Z*iqSFgL;#KZmZeNgsXLxZR4NcMaBHV zeO`esAK#jAEZ&*E^uCeJ@jn$2uGsHLfV+2WW^jF``jggP#QGo(h4#rI2?>%@VwH=? zT{1uQNjBo&5x}=EG>iyo!Bz*t@XU*x4D4(_y!e_3o(M!INp-MYG$>;AykBQ8plnN; z*9&`_cl7gBKHrrry~^szt))Rrk-T`>RGQe`UYxdtm^oN<_4 z=@O^Si(-}EyO1qH>z`C{n;YhAq@><25j=FL>(^iR65_0-Xgr=J)?2c+V2JQ>?Y>IK z<2A?KabxQtZb(Y}$dmEDL-hNklR{PvX{<=lBfPF`n>RC25KAWV__%mH59q=h zz?F#E0s}6ph*lj=_ty)*Up;nQ{*$mmJVr2ZRN`F|6CD|ig`3jhgOk#snXF8%Zsye1 z?9iKKEQQuj&gw{;wn$63A9`}Ld4%s+u?lNt91(^@flUA|% z?^i7|c-!C@RRDNR&Q_@H0XUOPdWy)gLJY-LfDW42RS~)b)WZb#{$uWWdG)Kfyj{tl z2iWYP|?iV)sg=^*BM4q?lbj)Op?));r#gXR{7g2F+W#HNwl`p4EniOY# zFa$5}x3*c=T}1We{FtKbc@Eyk89D)xHDSZ}YJF8wn-m>(!hMj?Iw(*mF_Ku6++>bN=I`s8yxS5o<%3`mhVII84UuIP7HH$MH6 zmJVO{*za0%-GGCFA?zLZMEQ*O&{fFp)BKPe(8JgDW{vXt0qUDhD@+P%eJZ5ca&vn* zw1N~yiEGSo=~Uj;-}^vmWxJwtu(rBCh^Om3kwwGF$PN(~YxVlQp)dc$vriZW231_c7dX-k^BlXs}uM zIH~8xfy(Km?nr-nvbFuH+J{Z8_17I2$~v%mRMivLt*}| zFAl0GseO=;>%x5{S{_>Uc<+DiD&Ch@qDYCF@*5yZhLrQLF1gPUT}r4O4AUbH1Kxf6 z06f4uPjpoz=Lu&$e#fa-F5<9))|mIF$OKT+ZcF$XKHNIBrR4;d%t6Lc*)d;Bjh^AV z-_2_Gi3fhW%pVbjmZmFFX1+fPf`B~7f#W1}86^w#pG1)`d0xu9XC_~6Jz;(KjCiHG zJ^pAC;WgsnJ+5nJ47s~VK3oy*a=K4t|Lwq9_d~6rrHNTg?W+bd?3VcEM_Da8U&fT( zU_Ra?w#1aB`kedk#_4P=n@!Vnd>?)5ZEvX(2?oZ;NLbdhL)OTGzGDvX__20poR!U( zCjlb?;?&}Uho5OmZ(x*$##~LYXdoib6D~#({RrCd? zj=$B=fXO?(Aynnp{Zyvb@Xd|A@DK}qC)`?*d@q~+-K)-RwXY_;_B@}}r_z7$uCj#s zP~4Z$r&&?6ZxyE<^6yykefh&7@T2}Bcbxl?=N5ZTmu#wsX{Z1?R~IP7&Y+8?4#E3ap+(C#C0lbf2_eQ)oI`AD@8&g27CpQv#S1O5<>2_ za#QE7IiP0CIWqHQx4iNDlP2h_WO4NbP$>B^7q8jpCQgh7JzcV*(pCOByZ*wBrRGF> z<)-EH8<{T2I>sp*tmEx^#vsumw+@d3t6G7cl6Wus9^VpOLkefRslcM?X-?Z+Kg~XF zbWR<3SwCd?ygOPg>E5&?llV)=+UhH%3X@${KB=j;_~X9adGve~pC4VLd>eLibeyK- z@|^5#>bia?=!=PkZ7@U5b-_FoG7aA*t9jbD!IzwpyY$jLBvUY2?vn0Dq+*tec%cMZk=dpV%c^j{?Xc!?FO9V$R+g3XCZ} zh>p7A@?rb*(a1va<;_FBa}T*+_uMqR+*C{L*pQL;(=5k2I{!Ma>iMeiK9S8YGk@fZ z3NSIRwLen7Npt*J*h9x(eSeDP3L}3G?^~5MafS;&oD;#h4t4lIT8H`u& zy6&aBPAlQL{Y8_{ks!VO@fm&j`(ChpujMtEdv%nG;&_I$GUcj!wwf=dh zk6!qhLn|6}r6bielkYYAJJPpL_LExVG!lrBJ{t;R1MWh56&GkEiIo?2sy|$O>FRxk zoo43~_gMV+ICQ;7tgNc%Sz`OA9*e`mPq=cGEWb61T~@CyU| z*L|C#T&3owAr_~kEblHDrT`N$2~6Eovxk<(B4Jn1w_MSGd|L#e&7$B-Fau3bjw!;K zZJtFWA3VlgbSgF`sg2Gm2CM$oRI@I6hLLl! ze}aI`w;*mOsxbGnA~DH{KAa+ZrM!OYY~I)(`grfxq@~t$877$r+POb7S0*DkbGK;o zJ^xB~+v|hnTwcPu<2rwKg(*<^-)t1!FH7Iku*am2qeDKEuX$niNb~*Y2QD2ml>_?a zqh8wh?}59K2ab8=xeis!@O)wvlycWE!HM|L3>jMK)wQD;8BKORs?bFOzlus8on z|E8v08i9@*i#2lkd(M0RG##$Hcss#*Pj2)Uxsi0Aw8e}*jn|((P+hj%`=Mo{@87%w zYctldQH9c#uIYMLdEk=YjfKc;Lwfe6!u{y@eaWi@CZ2>SKg69AOJKPK6Uko#Kx76( z87VB$SysE=P2oJCzM4GHr8q~?+ZLP~Cpy?Tj(>fgvpPfNPW8f?18#?X4QFDgp4K$7 zjk&r?d7jE<4%GFDNO0`WUqUAw<;p#C-RvfFrTjh@nb3r>ch;PbzxsK!u1l;femH^VOrP3XvgJeS?9HHo&ED#O}g}Ru;h;2Y*)f$TQ2XidOBvg-N?@RWL-=|jRe!j zLu2&n_Y9h(ZnB9swpv|T8?Lr$bc)4f{Oa{i4`I$0yN?u=d3#m*JR<@Fzg|NZ$z`4*w_S2{DqDZ% zWaiT{$t72Wc!%yE&Dl-GJmY#qK6=NB{BWO8O;-5VF5S{1ZJ#iak#kSvw?^yIet4iK zAvOC`Dy(sHkj1ABl{fK$R`<&yFkHX?m@53CiUefa;vD(eo>h4%MbV7S3L)SiTG zCT|#Yg&Fu2js{INwKCXpNM34~8ULMo9o@`$b5~SeQhocA`Io%V&=LC$U9YaXPleT& zUF9fTcl_uzzVNjU${RMQZ#Ot|`SOlyZeL>WY?gjj_Tc$2ZJw=!@Y|1DJO0|5I$f%; zzO#9S>O0L!pRf>sj5F2eOzG1}ni@D%gP{p1!#TjZJR6iNMOZqifz}Hiqfjsy?>mMm zl0Z7xKa6@8u|dnhz$7IlQGAe${SE9(8GM-GKoagYysN7t<<9t*^9iO9GPMS87>^vklYWkSWBAMt zFKSsaE|BlDMv-)Nc|3_D`}}72pHb#nwZ~5SRN$@B{q%fTQt#m7!^eNr(uY13b1$-I zmWG^UkS)zd=5yxL(bDqo+}ZF;8UsV2IPK4$2AGQ|IF&0`B&)vP>N<+0e-q!7Oc!0Z zB(ttbDO8c>EUVMO^+T4oMva$+E52XJsM=D6DBdEB1C0CjCX5qE#J$E$~LYc=Y! zc$tMO6Wvyr2L<2v%CakPOUD%}iovq%2aSV)`y!S+qAaqe+^zzckl6jh6LAFWMqPf(vTpPIUE)gbb8 z-OwYg%PCxU0_WP;I!tb`J_I_LR|{pr4Ro!2$jJ{vs=>hL%D>|{*>n4c>tk}w8=hT^ zdGX;x{L0fqh(9JOEGT99qIA9GTp%)A&9=`&tAoe*1&x()Os~oj>sy|ppM2yNPUaQ) zb7qg)SZ!TkSqXjm^A6X=q90|C?z5X8k5>3va&AvZ&7*m94M(=U-NK%4MoY4f_0#}ceS5xcI`P-3v7;YM^}ELHRdM9LeTGN} z0v{qFSBV&QV2YDq@+Sff*i135yYK@0xpZ9xA$EPP5`%PI4wX?JOeWZK?G3aWhy^7< zc*IN&+U#*3tv?lFqR2kNpiq|d{O@X;ON4K096RRmeR-V9{`CtsyXCmRp5L+hrFCLf z5~CSwU1qeCKb?#?%wPXZOyBr@Wt<_$J2$VUE~@7;9jBp8)XQk)Ia+f1L2X@GOje6> z+5P2$%Aw1bBN;a7i=0~D7;)X_iZktu=jy?u-UDLWeBM0g;mxUR_BzL=6x&z!G?hmr zn~&MIoD%!)yy+eP?( zsAV-W2oe02mVOAo9f9+EuaWtAh|=1B3BNMf@j?`FQN*%}q%?fpi5s{E5*=91nw$B&&Tb=kDWB;h?*UxP{7B&>#&Wxl&L22?J zVs!o6%feAU1XfdsU2HW4YIAcyF>t9KvA37N4kSno6ctnyc81mXci{Zz z&!5Zc>egV@dw&hm+#0P^YhvrO{%b$AhjX^mL~;ZDu^SB)#RFR;(=Sbn23(jD6I^*1 zm{$7YflEbM67}`vr$aM9Qo7?)~iYe2S)a{@qosiTt$>T@qtEudCd3T6?Uh z>&nKGtraPm>~s-VSQRvyWm&FX1dk(AQnL=u8by75P6&gdkoFJk35rl^$Q>y@(5YT& znEk(jIuBans*35kXcOjSDk@cie|X>iz4aY6so$-+w{g1WdG`k?J4dmZd(~Bak^22u z_qYyi&#Yd>r<*I)QU6b4?;THd|NoDlmbOtwq&OrE5|QkcQD~8jl-=<{oK1fQw@@-_mLyLk8`C20u398lR8M8S^j7t=n6U^;XAc5ACBVTK%B(5c>-_T&Qon z#9@fP?y@9yvN7oSsnDxU1zR>A?0?PXc_U47tKJub&Z!OFtG_?&{j-MV!I2m5MMQ3u zr9Vrdmw6j=bi2nJt-dvUV*ygfJV=^M82R!fOz?I5K=Y$l3_RDFPDfrl?Lu$3gFt4! z5j|n_FFwEn!|CzdQ?6B-ue=phbc~#=q93gn6cpe1T@h^VAbp0*cUG?~Ddy1V7V*7qZ z^C2fM)49y0{)y=Y0b4d)J|_QH z*^`z#z>F)|Tkl0vxB5LPC)N6_-J41c7N<76O_$kGPWOH(x54}5fp3P{7t84?33ALj zz37&TVJnfefRpd>$?C0+b?W!HSLrvt`fC37v+xd@rLeoWZtSX!hT{w*qRZN_Iu8#T zh8$Z`ux2#;Xzy82W&dG%<@uVHvp3d|FQ4^lRzFxf9$K@q$*s~0N9B{E{p26Sx}9%4 zQL=br;<;{s*~|;WZ$4^_zw#c=SLWuFEU(;uVk|=mu!z#;)ZcCog4TSGI9+P+DpECe zrfZ*UrMKo>MOC997n9>vCdmaZtm@wWgBJh2SSZ(AJWwu4hQX?gyj zZY?+W$0!bT7cymm;_2I^g(2eT>@GjrveEO>L72HjaP687lHVu$ZU2F%za5#Km%jWJ zRobxLExz+tcZJ5{^AF=m37foXBva|?2gv^JO?8ST!*vtw$K~(eu$$*uMn?;#&yAno zdGGCzvzripOMudVh>s#pdZz;|5N=RBax+)4?oAes=&E{e^2aHwavSAyiTcptsI?KV zWkv^vdS{KqH`J&pu;C7Jxp*_xXWSwrzsg(3EHgtUZ*s5W=dGc_3l@5sCxU$!+~|j7 z$u=Eht3HXg9uV3F`!;%a?aw z3=s>}a^G8Q7P{#4DEo-?+T=SswmW5>Tu1%nNm?GSg4Qi(^d8^Jt^C+57RL7H2Gz}^ zbHw4nuj<0)F4}^J8?N&g+$>E)f9lQJN8{6wzs0yPs61cQLECX}{jjdjWKogUc+ahG zvenX5cWnmU2de8b_Q`eSw0~`8sI~Smpa|zO8QPqzye&g_p3fkC!eR9N*Ww$$=Z5R= zL~scS@LUXN^M9GXU|7DZI4^~=^Tvv8=}cXchc8rDcBneoGV^Af(0t}YKO~ReZb*y< zh(0-5AflbE#GP9qR(g;C2N5qkIjg?pbn(u7pUYDfEXv+&_b4%c>+QWPrIC+IKSV4) z>0hj7`zRUi$F5&~>F+Ix_TI%&+Q1F0*fYu}|9)@jbtvk9%_zndfg84c9Mvo?cA^HD z-8!?vG+ax;Z1t%ZLR(#F=4aJZoc^5x)>6RbixSaDNH(FKw|8*pO-zU&X6jbf)*yb+ z6_xHPvv5MLt`XYqbb0f;_u3-bkBjryttnR`Ut@iv4pZUNBwzx_=Qye*z>|10}l! z5`uE_@+*mEH-#sA8hRD?P+s*Tkd^?0YwsUSKQzF%)v(;=t59_1C{u5bzVqRjg0Mt| zF*nw*tE@YJebK!ClzQbyv!>}xN9uts!;XsUzuX9Y!tY;SlCxddB$jHV!#wd*@#&-^ zbHwM+`zH@*7De=*_RU*Q&GsTU5th~lfbpH$!$`mGc!V@v!YHPim)^Utp97g;ep3*A zvS?0-y2s}C%#{P2Y3E9=9=R+*U%b+7iOFUq#rVsv}0#ECC$ zZIcsbTGLxzR!$Ge=>Gm1>2EZ9e;>PJX(dhZW;;c*__B{7XNNj9Jx2<|sRyP~4UO+6 z@@8G<)S22v-5Qb3=ljFu^)?%>tpK(4Hp@(5TjlKRpX)}SyvROrIlzl4tDQze&^K`5 z!Lkrt+=ZXGO^MzyQENj6!I==-Mxrr;Pa-_v2&vGqgX23+X5c^2O{M1p& zkK65hlGO7H`r@m61L_8!^AG;yyfl89ZVfv5siQKnE;eFC>#r$|U)8aHv-#fLHMq7^q zTKCA^1HosbGH-^4p=l7`30xK-_J7cz*rpTD^M7B^s(j_E>04#(7mp_tmz(_y@s zjRnCTh3+n*E#>P9F1VsvsA@ZRVa;*srGrJ;{9Ull*ND(rg1*M8J#=hHh9+!{C$@6*F%E{%GslTHj^BG+-bM#*Q*vau! z_)>d_w(D})OEGIi)xxwr6ZgDYVj|6Ikqh75w{duLE=u{39>ZhX+_ZBVXMZa(duhCG zzgle$zjH4R%Ui9#CSR|s_NH>7J*Mi^8K*(2-`(<;{m;Db zD6W^8U5FeWD?IDUn$X(7=IXWmXzh^{&!9C**_orp7vn_?DldAhD?WY7WL}kF)h6q` zm5*|A#%&+ECid<%0TxIR_q;ZI#z5-{3=7+oo!_S*3j(_a45Uu@qdLo9*%Go#FL6{)s8F z^;|#fchAh;k~_!pfn`zGmoH_7P2D$1l}S~E(H0F0tNdWPt7{qVuq%$+F_u)yxoi1z z?TH-Md(LYst>DGqHpSqetP$OJMhDsC-j@zTc}qR}_EQdO^1t?zNsTkG+c5rJubaXQ z)NM`fuX%Cx#5xh6fGY@vi1Kome={L`!>3QQ7Qzc=?&FIL}_u4dc}wU-u1W zTs$`&M&T9)g}GRpVcpId8(J9R~&d- zZj#tN#&YR;7+c%NUE{4G`ej_WjB}et$9z^ad_CcaSu~qTT8rt087bf}mlsj`54j9vaLqZZ?%KdrJv>JoCY%Dw8vKXsU2x8)zUqDzS=uh<_yAaz!k z+mrot@8F8mal6-Dxv}3QrMga5m6Q~8C`bN9(r_8vK7OlcMRC{Qf%_pFStUm}`Q|C7 zzJGDmqUG9Cqh4aD!<=x&w*9sg$7vT!^^ky%6PYZAm`A_uHPYkN$XiFXt-pOy$LH*? zuX%?w_qE2J+~qF$n5ka8XRui0MV!8oLB^f~YaJK%?GHK1=jAoEy-Yp6 z7dHI9dLV83X|mg;ZG1zc6kOMHZO8l7o3{zhd2cwqO8-@=rjc9*!}hdq{aG?or;JSt zlfu1A_SeRF*YBy2F-aPI`&G?9?!43%o8Kxmdk-%z+ocx04_o@xuuc1X?WcZ=oSl@} zQcqts3WqYoYJ=-MssUg7lv$dFkgfNQ3^(K^GRi-XP*8C*)lW+*`;~%10AvV-vU_z}VJz z536ShZ;^ikYsvhz$&=A56#QS(i@aM?J3Qy2hpYJKie>uW0QRo}!ZHIUuXEWyMB0{V z&@H^VBUWvu&tv~7q@caMD)Y@bgLf%m!DTXn=PphzpO+dP*gk$FI~Av>*>S%)yT&H) zpgr>3!;W^H>0Dm-z~_oCBV}9=G_2%}ymJq-4lz)kB-(fG@>hf~f2Upn2eW1FUo3=N6nHU_S%;9yNuUAt}%@i$MvW3dN1+@N*dJIYm(RWI!e z1<_a_JReIL$lH%sxc!v4{xg34SA&=nivPs|#Jpi&EgbY-tBeyli;T4n*67RtE`GEwI>f6{Mx;?{n1s@g`BMex(y z-tn-|0VcQAn^v8aU;vijN9Q9)wOF(366XSN+`%_~t9;yBk+QZM&tO1tr@EuZI*pFc z)G9q%2|@LGYFx&@o(O9XBLAlSSP`57Kec`zcu=XRtb>dY9eD8=Hc%n?jcqan2^~D9 z9zJ|12&;AC{s}U!9QK5S9T|Vd2ct^Lo_WrLP@yGUdcF_OrNcn#FRA`HVfk?D8J5** z)$hN$uKM}nm)PuvP1=tGeO)$g4y(=HX>nPgOms!vkM9JV0+hoDDVM&49|45OMIZVxZC4CGF|qc`ce<`&4ih=?%bOsa<*iaI5|8+lBxc z1K=y`SJoNWnELqqo#{%)39-4q7E9dq+ei47e@ty?Z)^0nR-g9js_IMW&b$`&m8*^R z1Q$D7k1p@Vqqa26dZ~j(Bju7=Q(wwg_Q;Hkki91RE=XNe+LRd>2c0pH?N(qlP5y-r zr>{mOK-}*q^*=d!*1n7jSiq-8t{eLC%wul~_u8Wb!1jL;ZE4q>Bc+|L^}b)j$P${y z5FQyx7u&ebL;f`PbsUR)eun}z^^WkT3m*-Jd{4|RC=QCNPFe=5yyN71$BO3k$jG^@ z>1}pu9$`tI$(HYY9RF34vs-S|?w-fX^b##QIHU))O@ixLqFwJkDO`uXk5eGG4ZwN> zomu54COq!KR-a~T6km0a2Lu!DPwk6v*m-Yo5P~Kl&7-gd`~CZ7RvUr5NnK29<34n# zd02!>r4oRevKvxp<0+ z`-k@K$@`YlpNm6cD_{2SdvGMer!4Hg?=$3-_SwuWm>_-f^+^8TmXT+A&f0^tk8)j1 zqQbk}g%5mM-k|jAIKWBJaA?RdQU(LAwSDn%q(Tiw$5Y2^!>^|9ppXR&FqQBzjC=pS zHxokU{Oj{dVwZaQl4UaQf7|oSy7sJ<@#(PJYkd-JIkujfTAaAFkuyQ|zKvMCOY8)z z_$IMybdh#@?!BUUF+4bQcbrksuA4=!UTauGkLsH%mV0QI{D`!ZMVmb#xu|aSUd2ad+c_UczIEPLcl

!3pPhXk#-ZM5h_0f2Ciu|N*7n-zZuwQxbKGmY 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 F{{ynkwWa_7 literal 58337 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\n", @@ -225,15 +228,6 @@ "with open('../../api_modules/mlxtend.preprocessing/CopyTransformer.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -253,7 +247,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/DenseTransformer.ipynb b/docs/sources/user_guide/preprocessing/DenseTransformer.ipynb index f3b908ef9..0b88fde81 100644 --- a/docs/sources/user_guide/preprocessing/DenseTransformer.ipynb +++ b/docs/sources/user_guide/preprocessing/DenseTransformer.ipynb @@ -119,6 +119,9 @@ "\n", "Convert a sparse array into a dense array.\n", "\n", + "For usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/preprocessing/DenseTransformer/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/DenseTransformer/)\n", + "\n", "### Methods\n", "\n", "


\n", @@ -225,15 +228,6 @@ "with open('../../api_modules/mlxtend.preprocessing/DenseTransformer.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -252,7 +246,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/MeanCenterer.ipynb b/docs/sources/user_guide/preprocessing/MeanCenterer.ipynb index 3c3420057..f1233c9db 100644 --- a/docs/sources/user_guide/preprocessing/MeanCenterer.ipynb +++ b/docs/sources/user_guide/preprocessing/MeanCenterer.ipynb @@ -73,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -93,6 +93,11 @@ " NumPy array storing the mean values for centering after fitting\n", " the MeanCenterer object.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/preprocessing/MeanCenterer/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/MeanCenterer/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -186,7 +191,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/TransactionEncoder.ipynb b/docs/sources/user_guide/preprocessing/TransactionEncoder.ipynb index 770a20fac..d91b5feff 100644 --- a/docs/sources/user_guide/preprocessing/TransactionEncoder.ipynb +++ b/docs/sources/user_guide/preprocessing/TransactionEncoder.ipynb @@ -347,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -369,6 +369,11 @@ "columns_: list\n", "List of unique names in the `X` input list of lists\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/preprocessing/TransactionEncoder/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/TransactionEncoder/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -435,7 +440,7 @@ " array in alphabetic order\n", "\n", " For example,\n", - " ```\n", + "```\n", " array([[True , False, True , True , False, True ],\n", " [True , False, True , False, False, True ],\n", " [True , False, True , False, False, False],\n", @@ -444,7 +449,7 @@ " [False, False, True , False, True , True ],\n", " [False, False, True , False, True , False],\n", " [True , True , False, False, False, False]])\n", - " ```\n", + "```\n", " The corresponding column labels are available as self.columns_,\n", " e.g., ['Apple', 'Bananas', 'Beer', 'Chicken', 'Milk', 'Rice']\n", "\n", @@ -457,7 +462,7 @@ " transaction.\n", "\n", " For example,\n", - " ```\n", + "```\n", " [['Apple', 'Beer', 'Rice', 'Chicken'],\n", " ['Apple', 'Beer', 'Rice'],\n", " ['Apple', 'Beer'],\n", @@ -466,7 +471,7 @@ " ['Milk', 'Beer', 'Rice'],\n", " ['Milk', 'Beer'],\n", " ['Apple', 'Bananas']]\n", - " ```\n", + "```\n", "\n", "
\n", "\n", @@ -542,6 +547,13 @@ "with open('../../api_modules/mlxtend.preprocessing/TransactionEncoder.md', 'r') as f:\n", " print(f.read())" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -562,6 +574,18 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/minmax_scaling.ipynb b/docs/sources/user_guide/preprocessing/minmax_scaling.ipynb index 413c2cf0a..d5c373e5c 100644 --- a/docs/sources/user_guide/preprocessing/minmax_scaling.ipynb +++ b/docs/sources/user_guide/preprocessing/minmax_scaling.ipynb @@ -289,7 +289,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -326,6 +326,11 @@ "\n", " Copy of the array or DataFrame with rescaled columns.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/preprocessing/minmax_scaling/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/minmax_scaling/)\n", + "\n", "\n" ] } @@ -334,15 +339,6 @@ "with open('../../api_modules/mlxtend.preprocessing/minmax_scaling.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -362,7 +358,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/one-hot_encoding.ipynb b/docs/sources/user_guide/preprocessing/one-hot_encoding.ipynb index 7d5b829d5..d3b5768e0 100644 --- a/docs/sources/user_guide/preprocessing/one-hot_encoding.ipynb +++ b/docs/sources/user_guide/preprocessing/one-hot_encoding.ipynb @@ -200,7 +200,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -235,6 +235,11 @@ " One-hot encoded array, where each sample is represented as\n", " a row vector in the returned array.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/preprocessing/one_hot/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/one_hot/)\n", + "\n", "\n" ] } @@ -243,15 +248,6 @@ "with open('../../api_modules/mlxtend.preprocessing/one_hot.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -271,7 +267,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/shuffle_arrays_unison.ipynb b/docs/sources/user_guide/preprocessing/shuffle_arrays_unison.ipynb index 787f7f912..077cabd75 100644 --- a/docs/sources/user_guide/preprocessing/shuffle_arrays_unison.ipynb +++ b/docs/sources/user_guide/preprocessing/shuffle_arrays_unison.ipynb @@ -127,6 +127,9 @@ " >>> assert(y2.all() == np.array([2, 1, 3]).all())\n", " >>>\n", "\n", + "For more usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/preprocessing/shuffle_arrays_unison/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/shuffle_arrays_unison/)\n", + "\n", "\n" ] } @@ -135,15 +138,6 @@ "with open('../../api_modules/mlxtend.preprocessing/shuffle_arrays_unison.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -163,7 +157,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/preprocessing/standardize.ipynb b/docs/sources/user_guide/preprocessing/standardize.ipynb index 8868550c4..ecf7459fe 100644 --- a/docs/sources/user_guide/preprocessing/standardize.ipynb +++ b/docs/sources/user_guide/preprocessing/standardize.ipynb @@ -442,6 +442,11 @@ "\n", " Copy of the array or DataFrame with standardized columns.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/preprocessing/standardize/](http://rasbt.github.io/mlxtend/user_guide/preprocessing/standardize/)\n", + "\n", "\n" ] } @@ -450,15 +455,6 @@ "with open('../../api_modules/mlxtend.preprocessing/standardize.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -478,7 +474,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/regressor/LinearRegression.ipynb b/docs/sources/user_guide/regressor/LinearRegression.ipynb index b4f40e0e4..8666bdc84 100644 --- a/docs/sources/user_guide/regressor/LinearRegression.ipynb +++ b/docs/sources/user_guide/regressor/LinearRegression.ipynb @@ -506,6 +506,11 @@ " Sum of squared errors after each epoch;\n", " ignored if solver='normal equation'\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/regressor/LinearRegression/](http://rasbt.github.io/mlxtend/user_guide/regressor/LinearRegression/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -563,15 +568,6 @@ "with open('../../api_modules/mlxtend.regressor/LinearRegression.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -591,7 +587,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/regressor/StackingCVRegressor.ipynb b/docs/sources/user_guide/regressor/StackingCVRegressor.ipynb index 137cb2453..a79f9c378 100644 --- a/docs/sources/user_guide/regressor/StackingCVRegressor.ipynb +++ b/docs/sources/user_guide/regressor/StackingCVRegressor.ipynb @@ -389,6 +389,11 @@ " number of samples\n", " in training data and len(self.regressors) is the number of regressors.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/regressor/StackingCVRegressor/](http://rasbt.github.io/mlxtend/user_guide/regressor/StackingCVRegressor/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -566,15 +571,6 @@ "with open('../../api_modules/mlxtend.regressor/StackingCVRegressor.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -594,7 +590,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/regressor/StackingRegressor.ipynb b/docs/sources/user_guide/regressor/StackingRegressor.ipynb index 0532f4756..606c8577c 100644 --- a/docs/sources/user_guide/regressor/StackingRegressor.ipynb +++ b/docs/sources/user_guide/regressor/StackingRegressor.ipynb @@ -704,6 +704,11 @@ " the scikit-learn fit/predict API interface but are not compatible\n", " to scikit-learn's `clone` function.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/regressor/StackingRegressor/](http://rasbt.github.io/mlxtend/user_guide/regressor/StackingRegressor/)\n", + "\n", "### Methods\n", "\n", "
\n", @@ -875,15 +880,6 @@ "with open('../../api_modules/mlxtend.regressor/StackingRegressor.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -903,7 +899,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/text/generalize_names.ipynb b/docs/sources/user_guide/text/generalize_names.ipynb index f073dc51c..e9d5212da 100644 --- a/docs/sources/user_guide/text/generalize_names.ipynb +++ b/docs/sources/user_guide/text/generalize_names.ipynb @@ -246,6 +246,11 @@ "\n", " The generalized name.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/text/generalize_names/](http://rasbt.github.io/mlxtend/user_guide/text/generalize_names/)\n", + "\n", "\n" ] } @@ -254,15 +259,6 @@ "with open('../../api_modules/mlxtend.text/generalize_names.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -282,7 +278,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/text/generalize_names_duplcheck.ipynb b/docs/sources/user_guide/text/generalize_names_duplcheck.ipynb index d3534ff5a..b43f3b67b 100644 --- a/docs/sources/user_guide/text/generalize_names_duplcheck.ipynb +++ b/docs/sources/user_guide/text/generalize_names_duplcheck.ipynb @@ -238,6 +238,11 @@ " New DataFrame object where generalize_names function has\n", " been applied without duplicates.\n", "\n", + "**Examples**\n", + "\n", + "For usage examples, please see\n", + " [http://rasbt.github.io/mlxtend/user_guide/text/generalize_names_duplcheck/](http://rasbt.github.io/mlxtend/user_guide/text/generalize_names_duplcheck/)\n", + "\n", "\n" ] } @@ -246,15 +251,6 @@ "with open('../../api_modules/mlxtend.text/generalize_names_duplcheck.md', 'r') as f:\n", " print(f.read())" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -274,7 +270,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/text/tokenizer.ipynb b/docs/sources/user_guide/text/tokenizer.ipynb index 68c4111e5..b7f78f8bb 100644 --- a/docs/sources/user_guide/text/tokenizer.ipynb +++ b/docs/sources/user_guide/text/tokenizer.ipynb @@ -138,19 +138,29 @@ "\n", "Return emoticons from text\n", "\n", - "Example:\n", + "**Examples**\n", + "\n", + "\n", " >>> tokenizer_emoticons('
This :) is :( a test :-)!')\n", "[':)', ':(', ':-)']\n", "\n", + "For usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/text/tokenizer_emoticons/](http://rasbt.github.io/mlxtend/user_guide/text/tokenizer_emoticons/)\n", + "\n", "

\n", "*tokenizer_words_and_emoticons(text)*\n", "\n", "Convert text to lowercase words and emoticons.\n", "\n", - "Example:\n", + "**Examples**\n", + "\n", + "\n", " >>> tokenizer_words_and_emoticons('This :) is :( a test :-)!')\n", "['this', 'is', 'a', 'test', ':)', ':(', ':-)']\n", "\n", + "For more usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/text/tokenizer_words_and_emoticons/](http://rasbt.github.io/mlxtend/user_guide/text/tokenizer_words_and_emoticons/)\n", + "\n", "\n" ] } @@ -164,15 +174,6 @@ " s += ''.join(s2[1:])\n", "print(s)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { @@ -192,7 +193,19 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.6.4" + }, + "toc": { + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false } }, "nbformat": 4, diff --git a/docs/sources/user_guide/utils/Counter.ipynb b/docs/sources/user_guide/utils/Counter.ipynb index fb5016917..04aeb122e 100644 --- a/docs/sources/user_guide/utils/Counter.ipynb +++ b/docs/sources/user_guide/utils/Counter.ipynb @@ -100,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -162,6 +162,9 @@ " ' %d seconds ago.' % (time.time() - cnt.end_time))\n", " The counter was last updated 0 seconds ago.\n", "\n", + "For more usage examples, please see\n", + "[http://rasbt.github.io/mlxtend/user_guide/utils/Counter/](http://rasbt.github.io/mlxtend/user_guide/utils/Counter/)\n", + "\n", "### Methods\n", "\n", "
\n", diff --git a/mlxtend/classifier/adaline.py b/mlxtend/classifier/adaline.py index f9db61324..32ab71a15 100644 --- a/mlxtend/classifier/adaline.py +++ b/mlxtend/classifier/adaline.py @@ -52,7 +52,9 @@ class Adaline(_BaseModel, _IterativeModel, _Classifier): cost_ : list Sum of squared errors after each epoch. - For more examples, please see + Examples + ----------- + For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/Adaline/ """ diff --git a/mlxtend/classifier/logistic_regression.py b/mlxtend/classifier/logistic_regression.py index c82563885..940a5512b 100644 --- a/mlxtend/classifier/logistic_regression.py +++ b/mlxtend/classifier/logistic_regression.py @@ -55,6 +55,8 @@ class LogisticRegression(_BaseModel, _IterativeModel, _Classifier): List of floats with cross_entropy cost (sgd or gd) for every epoch. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/LogisticRegression/ diff --git a/mlxtend/classifier/multilayerperceptron.py b/mlxtend/classifier/multilayerperceptron.py index e38e6c8e2..9d9225b66 100644 --- a/mlxtend/classifier/multilayerperceptron.py +++ b/mlxtend/classifier/multilayerperceptron.py @@ -72,6 +72,8 @@ class MultiLayerPerceptron(_BaseModel, _IterativeModel, List of floats; the mean categorical cross entropy cost after each epoch. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/MultiLayerPerceptron/ diff --git a/mlxtend/classifier/perceptron.py b/mlxtend/classifier/perceptron.py index 2b76fefb2..637579ead 100644 --- a/mlxtend/classifier/perceptron.py +++ b/mlxtend/classifier/perceptron.py @@ -45,6 +45,8 @@ class Perceptron(_BaseModel, _IterativeModel, _Classifier): cost_ : list Number of misclassifications in every epoch. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/Perceptron/ diff --git a/mlxtend/classifier/softmax_regression.py b/mlxtend/classifier/softmax_regression.py index b04980d79..1d19c3908 100644 --- a/mlxtend/classifier/softmax_regression.py +++ b/mlxtend/classifier/softmax_regression.py @@ -58,6 +58,8 @@ class SoftmaxRegression(_BaseModel, _IterativeModel, _Classifier, _MultiClass): cost_ : list List of floats, the average cross_entropy for each epoch. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/SoftmaxRegression/ diff --git a/mlxtend/classifier/stacking_classification.py b/mlxtend/classifier/stacking_classification.py index aebb3289e..21cc566a3 100644 --- a/mlxtend/classifier/stacking_classification.py +++ b/mlxtend/classifier/stacking_classification.py @@ -78,6 +78,8 @@ class StackingClassifier(BaseEstimator, ClassifierMixin, TransformerMixin): number of samples in training data and n_classifiers is the number of classfiers. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/StackingClassifier/ diff --git a/mlxtend/classifier/stacking_cv_classification.py b/mlxtend/classifier/stacking_cv_classification.py index ca903652e..f3fbaf509 100644 --- a/mlxtend/classifier/stacking_cv_classification.py +++ b/mlxtend/classifier/stacking_cv_classification.py @@ -109,6 +109,8 @@ class StackingCVClassifier(BaseEstimator, ClassifierMixin, TransformerMixin): number of samples in training data and n_classifiers is the number of classfiers. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/StackingCVClassifier/ diff --git a/mlxtend/cluster/kmeans.py b/mlxtend/cluster/kmeans.py index 7d3339ec8..8d1ce8049 100644 --- a/mlxtend/cluster/kmeans.py +++ b/mlxtend/cluster/kmeans.py @@ -52,6 +52,8 @@ class Kmeans(_BaseModel, _Cluster, _IterativeModel): iterations_ : int Number of iterations until convergence. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/classifier/Kmeans/ diff --git a/mlxtend/data/autompg.py b/mlxtend/data/autompg.py index a0d042d44..a171cd46f 100644 --- a/mlxtend/data/autompg.py +++ b/mlxtend/data/autompg.py @@ -39,6 +39,8 @@ def autompg_data(): and 8 feature columns (6 rows with NaNs removed). y is a 1-dimensional array of the target MPG values. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/autompg_data/ diff --git a/mlxtend/data/boston_housing.py b/mlxtend/data/boston_housing.py index 984ab45b6..e76792444 100644 --- a/mlxtend/data/boston_housing.py +++ b/mlxtend/data/boston_housing.py @@ -47,6 +47,8 @@ def boston_housing_data(): and 13 feature columns. y is a 1-dimensional array of the continuous target variable MEDV + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/boston_housing_data/ diff --git a/mlxtend/data/iris.py b/mlxtend/data/iris.py index c47f0c4e1..de3d42457 100644 --- a/mlxtend/data/iris.py +++ b/mlxtend/data/iris.py @@ -36,6 +36,8 @@ def iris_data(): petal length, and petal width. y is a 1-dimensional array of the class labels {0, 1, 2} + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/iris_data/ diff --git a/mlxtend/data/local_mnist.py b/mlxtend/data/local_mnist.py index 748fe7be8..e5d2433e6 100644 --- a/mlxtend/data/local_mnist.py +++ b/mlxtend/data/local_mnist.py @@ -27,6 +27,8 @@ def loadlocal_mnist(images_path, labels_path): labels : [n_samples] numpy array Target class labels + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/loadlocal_mnist/ diff --git a/mlxtend/data/mnist.py b/mlxtend/data/mnist.py index 35b4c0bcc..0b5602baf 100644 --- a/mlxtend/data/mnist.py +++ b/mlxtend/data/mnist.py @@ -26,6 +26,8 @@ def mnist_data(): 784 pixel feature vectors. y contains the 10 unique class labels 0-9. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/mnist_data/ diff --git a/mlxtend/data/multiplexer.py b/mlxtend/data/multiplexer.py index 21be33797..0a9daf1e9 100644 --- a/mlxtend/data/multiplexer.py +++ b/mlxtend/data/multiplexer.py @@ -60,6 +60,8 @@ def make_multiplexer_dataset(address_bits=2, sample_size=100, All features are binary (values in {0, 1}). y is a 1-dimensional array of class labels in {0, 1}. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/make_multiplexer_dataset diff --git a/mlxtend/data/three_blobs.py b/mlxtend/data/three_blobs.py index 3972d9bb1..7862e0553 100644 --- a/mlxtend/data/three_blobs.py +++ b/mlxtend/data/three_blobs.py @@ -26,6 +26,8 @@ def three_blobs_data(): and 2 feature columns. y is a 1-dimensional array of the 3 suggested cluster labels 0, 1, 2 + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/three_blobs_data diff --git a/mlxtend/data/wine.py b/mlxtend/data/wine.py index a24e30665..f407f0de4 100644 --- a/mlxtend/data/wine.py +++ b/mlxtend/data/wine.py @@ -43,6 +43,8 @@ def wine_data(): and 13 feature columns. y is a 1-dimensional array of the 3 class labels 0, 1, 2 + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/data/wine_data diff --git a/mlxtend/evaluate/bootstrap.py b/mlxtend/evaluate/bootstrap.py index c9d86dc68..29256da81 100644 --- a/mlxtend/evaluate/bootstrap.py +++ b/mlxtend/evaluate/bootstrap.py @@ -48,7 +48,7 @@ def bootstrap(x, func, num_rounds=1000, ci=0.95, ddof=1, seed=None): Returns ------- - original, standard_error, (lower_ci, upper_ci) + original, standard_error, (lower_ci, upper_ci) : tuple Returns the statistic of the original sample (`original`), the standard error of the estimate, and the respective confidence interval bounds. diff --git a/mlxtend/evaluate/bootstrap_outofbag.py b/mlxtend/evaluate/bootstrap_outofbag.py index 709904af9..7c0d2fef9 100644 --- a/mlxtend/evaluate/bootstrap_outofbag.py +++ b/mlxtend/evaluate/bootstrap_outofbag.py @@ -31,6 +31,8 @@ class BootstrapOutOfBag(object): test_idx : ndarray The testing set indices for that split. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/BootstrapOutOfBag/ diff --git a/mlxtend/evaluate/cochrans_q.py b/mlxtend/evaluate/cochrans_q.py index 33467d65a..f9c336261 100644 --- a/mlxtend/evaluate/cochrans_q.py +++ b/mlxtend/evaluate/cochrans_q.py @@ -30,6 +30,8 @@ def cochrans_q(y_target, *y_model_predictions): q, p : float or None, float Returns the Q (chi-squared) value and the p-value + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/cochrans_q/ diff --git a/mlxtend/evaluate/confusion_matrix.py b/mlxtend/evaluate/confusion_matrix.py index b730cef07..5bde2369d 100644 --- a/mlxtend/evaluate/confusion_matrix.py +++ b/mlxtend/evaluate/confusion_matrix.py @@ -31,6 +31,8 @@ def confusion_matrix(y_target, y_predicted, binary=False, positive_label=1): ---------- mat : array-like, shape=[n_classes, n_classes] + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/confusion_matrix/ diff --git a/mlxtend/evaluate/feature_importance.py b/mlxtend/evaluate/feature_importance.py index 3c1cf67ca..ea5fff785 100644 --- a/mlxtend/evaluate/feature_importance.py +++ b/mlxtend/evaluate/feature_importance.py @@ -53,6 +53,8 @@ def feature_importance_permutation(X, y, predict_method, the feature importance for each repetition. If num_rounds=1, it contains the same values as the first array, mean_importance_vals. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/feature_importance_permutation/ diff --git a/mlxtend/evaluate/lift_score.py b/mlxtend/evaluate/lift_score.py index d8e64a524..eb003b4b5 100644 --- a/mlxtend/evaluate/lift_score.py +++ b/mlxtend/evaluate/lift_score.py @@ -38,6 +38,8 @@ def lift_score(y_target, y_predicted, binary=True, positive_label=1): score : float Lift score in the range [0, $\infty$] + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/lift_score/ diff --git a/mlxtend/evaluate/mcnemar.py b/mlxtend/evaluate/mcnemar.py index 34016bf8e..4cc8ea5ec 100644 --- a/mlxtend/evaluate/mcnemar.py +++ b/mlxtend/evaluate/mcnemar.py @@ -32,6 +32,8 @@ def mcnemar_table(y_target, y_model1, y_model2): c: tb[1, 0]: # of samples that model 2 got right and model 1 got wrong d: tb[1, 1]: # of samples that both models predicted incorrectly + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_table/ @@ -112,6 +114,9 @@ def mcnemar_tables(y_target, *y_model_predictions): - tb[1, 0]: # of samples that model b got right and model a got wrong - tb[1, 1]: # of samples that both models predicted incorrectly + Examples + ----------- + For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar_tables/ @@ -181,6 +186,9 @@ def mcnemar(ary, corrected=True, exact=False): Returns the chi-squared value and the p-value; if `exact=True` (default: `False`), `chi2` is `None` + Examples + ----------- + For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/mcnemar/ diff --git a/mlxtend/evaluate/permutation.py b/mlxtend/evaluate/permutation.py index 3f2489e05..28908a51b 100644 --- a/mlxtend/evaluate/permutation.py +++ b/mlxtend/evaluate/permutation.py @@ -60,6 +60,8 @@ def permutation_test(x, y, func='x_mean != y_mean', method='exact', ---------- p-value under the null hypothesis + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/permutation_test/ diff --git a/mlxtend/evaluate/scoring.py b/mlxtend/evaluate/scoring.py index 2fc660a73..8ac8f0fc1 100644 --- a/mlxtend/evaluate/scoring.py +++ b/mlxtend/evaluate/scoring.py @@ -66,6 +66,8 @@ def scoring(y_target, y_predicted, metric='error', ------------ score : float + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/scoring/ diff --git a/mlxtend/evaluate/ttest.py b/mlxtend/evaluate/ttest.py index 0f33dbc3c..73d1bf2c6 100644 --- a/mlxtend/evaluate/ttest.py +++ b/mlxtend/evaluate/ttest.py @@ -71,6 +71,8 @@ def paired_ttest_resampled(estimator1, estimator2, X, y, and accept that there are significant differences in the two compared models. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/paired_ttest_resampled/ @@ -180,6 +182,8 @@ def paired_ttest_kfold_cv(estimator1, estimator2, X, y, and accept that there are significant differences in the two compared models. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/paired_ttest_kfold_cv/ @@ -272,6 +276,8 @@ def paired_ttest_5x2cv(estimator1, estimator2, X, y, and accept that there are significant differences in the two compared models. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/evaluate/paired_ttest_5x2cv/ diff --git a/mlxtend/feature_extraction/linear_discriminant_analysis.py b/mlxtend/feature_extraction/linear_discriminant_analysis.py index dde645e61..dc668ab5a 100644 --- a/mlxtend/feature_extraction/linear_discriminant_analysis.py +++ b/mlxtend/feature_extraction/linear_discriminant_analysis.py @@ -29,6 +29,8 @@ class LinearDiscriminantAnalysis(_BaseModel): e_vecs_ : array-like, shape=[n_features] Eigenvectors in sorted order. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/feature_extraction/LinearDiscriminantAnalysis/ diff --git a/mlxtend/feature_extraction/principal_component_analysis.py b/mlxtend/feature_extraction/principal_component_analysis.py index a02843882..6f1c3cf71 100644 --- a/mlxtend/feature_extraction/principal_component_analysis.py +++ b/mlxtend/feature_extraction/principal_component_analysis.py @@ -41,6 +41,8 @@ class PrincipalComponentAnalysis(_BaseModel): 'svd' solver; this does not affect the interpretation of the loadings though. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/feature_extraction/PrincipalComponentAnalysis/ diff --git a/mlxtend/feature_extraction/rbf_kernel_pca.py b/mlxtend/feature_extraction/rbf_kernel_pca.py index e770b7240..425be2d72 100644 --- a/mlxtend/feature_extraction/rbf_kernel_pca.py +++ b/mlxtend/feature_extraction/rbf_kernel_pca.py @@ -35,6 +35,8 @@ class RBFKernelPCA(_BaseModel): X_projected_ : array-like, shape=[n_samples, n_components] Training samples projected along the component axes. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/feature_extraction/RBFKernelPCA/ diff --git a/mlxtend/feature_selection/column_selector.py b/mlxtend/feature_selection/column_selector.py index 446823fde..fe11fb58d 100644 --- a/mlxtend/feature_selection/column_selector.py +++ b/mlxtend/feature_selection/column_selector.py @@ -12,29 +12,31 @@ class ColumnSelector(BaseEstimator): + """Object for selecting specific columns from a data set. + + Parameters + ---------- + cols : array-like (default: None) + A list specifying the feature indices to be selected. For example, + [1, 4, 5] to select the 2nd, 5th, and 6th feature columns. + If None, returns all columns in the array. + + drop_axis : bool (default=False) + Drops last axis if True and the only one column is selected. This + is useful, e.g., when the ColumnSelector is used for selecting + only one column and the resulting array should be fed to e.g., + a scikit-learn column selector. E.g., instead of returning an + array with shape (n_samples, 1), drop_axis=True will return an + aray with shape (n_samples,). + + Examples + ----------- + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/feature_selection/ColumnSelector/ + + """ def __init__(self, cols=None, drop_axis=False): - """Object for selecting specific columns from a data set. - - Parameters - ---------- - cols : array-like (default: None) - A list specifying the feature indices to be selected. For example, - [1, 4, 5] to select the 2nd, 5th, and 6th feature columns. - If None, returns all columns in the array. - - drop_axis : bool (default=False) - Drops last axis if True and the only one column is selected. This - is useful, e.g., when the ColumnSelector is used for selecting - only one column and the resulting array should be fed to e.g., - a scikit-learn column selector. E.g., instead of returning an - array with shape (n_samples, 1), drop_axis=True will return an - aray with shape (n_samples,). - - For usage examples, please see - http://rasbt.github.io/mlxtend/user_guide/feature_selection/ColumnSelector/ - - """ self.cols = cols self.drop_axis = drop_axis diff --git a/mlxtend/feature_selection/exhaustive_feature_selector.py b/mlxtend/feature_selection/exhaustive_feature_selector.py index 83398b853..aa08513ec 100644 --- a/mlxtend/feature_selection/exhaustive_feature_selector.py +++ b/mlxtend/feature_selection/exhaustive_feature_selector.py @@ -104,6 +104,8 @@ class ExhaustiveFeatureSelector(BaseEstimator, MetaEstimatorMixin): 'cv_scores' (list individual cross-validation scores) 'avg_score' (average cross-validation score) + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/feature_selection/ExhaustiveFeatureSelector/ diff --git a/mlxtend/feature_selection/sequential_feature_selector.py b/mlxtend/feature_selection/sequential_feature_selector.py index 3fb1af33f..bce6d3e16 100644 --- a/mlxtend/feature_selection/sequential_feature_selector.py +++ b/mlxtend/feature_selection/sequential_feature_selector.py @@ -120,6 +120,8 @@ class SequentialFeatureSelector(BaseEstimator, MetaEstimatorMixin): 'cv_scores' (list individual cross-validation scores) 'avg_score' (average cross-validation score) + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/feature_selection/SequentialFeatureSelector/ diff --git a/mlxtend/file_io/find_filegroups.py b/mlxtend/file_io/find_filegroups.py index dc76bc9a1..43c788fb4 100644 --- a/mlxtend/file_io/find_filegroups.py +++ b/mlxtend/file_io/find_filegroups.py @@ -48,6 +48,8 @@ def find_filegroups(paths, substring='', extensions=None, validity_check=True, found in the first directory listed in `paths` (without file extension). + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/file_io/find_filegroups/ diff --git a/mlxtend/file_io/find_files.py b/mlxtend/file_io/find_files.py index 544d4110a..2f53b5ff1 100644 --- a/mlxtend/file_io/find_files.py +++ b/mlxtend/file_io/find_files.py @@ -36,6 +36,8 @@ def find_files(substring, path, recursive=False, results : `list` List of the matched files. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/file_io/find_files/ diff --git a/mlxtend/frequent_patterns/apriori.py b/mlxtend/frequent_patterns/apriori.py index 5bad59c59..8aa087a47 100644 --- a/mlxtend/frequent_patterns/apriori.py +++ b/mlxtend/frequent_patterns/apriori.py @@ -35,6 +35,8 @@ def generate_new_combinations(old_combinations): No combination other than generated do not have a chance to get enough support + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/generate_new_combinations/ @@ -87,6 +89,8 @@ def apriori(df, min_support=0.5, use_colnames=False, max_len=None): that are >= `min_support` and < than `max_len` (if `max_len` is not None). + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/apriori/ diff --git a/mlxtend/frequent_patterns/association_rules.py b/mlxtend/frequent_patterns/association_rules.py index dc6f2fbc9..d6cd17c14 100644 --- a/mlxtend/frequent_patterns/association_rules.py +++ b/mlxtend/frequent_patterns/association_rules.py @@ -48,6 +48,8 @@ def association_rules(df, metric="confidence", min_threshold=0.8): of all rules for which metric(rule) >= min_threshold. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/association_rules/ diff --git a/mlxtend/math/counting.py b/mlxtend/math/counting.py index a62e9ca82..c9b751065 100644 --- a/mlxtend/math/counting.py +++ b/mlxtend/math/counting.py @@ -32,6 +32,8 @@ def num_combinations(n, k, with_replacement=False): comb : `int` Number of possible combinations. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/math/num_combinations/ @@ -64,6 +66,8 @@ def num_permutations(n, k, with_replacement=False): permut : `int` Number of possible permutations. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/math/num_permutations/ diff --git a/mlxtend/plotting/checkerboard.py b/mlxtend/plotting/checkerboard.py index 67567c59b..b7cdd820a 100644 --- a/mlxtend/plotting/checkerboard.py +++ b/mlxtend/plotting/checkerboard.py @@ -53,6 +53,8 @@ def checkerboard_plot(ary, ----------- fig : matplotlib Figure object. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/checkerboard_plot/ diff --git a/mlxtend/plotting/decision_regions.py b/mlxtend/plotting/decision_regions.py index 77a730d96..1b51b9c3e 100644 --- a/mlxtend/plotting/decision_regions.py +++ b/mlxtend/plotting/decision_regions.py @@ -119,6 +119,8 @@ def plot_decision_regions(X, y, clf, --------- ax : matplotlib.axes.Axes object + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/plot_decision_regions/ diff --git a/mlxtend/plotting/ecdf.py b/mlxtend/plotting/ecdf.py index 3aa1f5f06..c8d5f808c 100644 --- a/mlxtend/plotting/ecdf.py +++ b/mlxtend/plotting/ecdf.py @@ -49,6 +49,8 @@ def ecdf(x, y_label='ECDF', x_label=None, ax=None, percentile=None, the feature threshold at a percentile threshold or None if `percentile=None` + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/ecdf/ diff --git a/mlxtend/plotting/enrichment_plot.py b/mlxtend/plotting/enrichment_plot.py index 3ba1972f7..57c8e4094 100644 --- a/mlxtend/plotting/enrichment_plot.py +++ b/mlxtend/plotting/enrichment_plot.py @@ -60,6 +60,8 @@ def enrichment_plot(df, colors='bgrkcy', markers=' ', linestyles='-', ---------- ax : matplotlib axis + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/enrichment_plot/ diff --git a/mlxtend/plotting/learning_curves.py b/mlxtend/plotting/learning_curves.py index 4aa2bf47f..3b22f62e3 100644 --- a/mlxtend/plotting/learning_curves.py +++ b/mlxtend/plotting/learning_curves.py @@ -59,6 +59,8 @@ def plot_learning_curves(X_train, y_train, --------- errors : (training_error, test_error): tuple of lists + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/learning_curves/ diff --git a/mlxtend/plotting/plot_confusion_matrix.py b/mlxtend/plotting/plot_confusion_matrix.py index 4321e20aa..02068575f 100644 --- a/mlxtend/plotting/plot_confusion_matrix.py +++ b/mlxtend/plotting/plot_confusion_matrix.py @@ -32,6 +32,8 @@ def plot_confusion_matrix(conf_mat, fig, ax : matplotlib.pyplot subplot objects Figure and axis elements of the subplot. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/plot_confusion_matrix/ diff --git a/mlxtend/plotting/plot_linear_regression.py b/mlxtend/plotting/plot_linear_regression.py index 1eca4974a..abadd6546 100644 --- a/mlxtend/plotting/plot_linear_regression.py +++ b/mlxtend/plotting/plot_linear_regression.py @@ -49,6 +49,8 @@ def plot_linear_regression(X, y, model=LinearRegression(), regression_fit : tuple intercept, slope, corr_coeff (float, float, float) + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/plot_linear_regression/ diff --git a/mlxtend/plotting/plot_sequential_feature_selection.py b/mlxtend/plotting/plot_sequential_feature_selection.py index 14f0b5bf1..f256d67be 100644 --- a/mlxtend/plotting/plot_sequential_feature_selection.py +++ b/mlxtend/plotting/plot_sequential_feature_selection.py @@ -44,6 +44,8 @@ def plot_sequential_feature_selection(metric_dict, ---------- fig : matplotlib.pyplot.figure() object + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/plot_sequential_feature_selection/ diff --git a/mlxtend/plotting/remove_chartjunk.py b/mlxtend/plotting/remove_chartjunk.py index 15dca1ac1..0e0542dd6 100644 --- a/mlxtend/plotting/remove_chartjunk.py +++ b/mlxtend/plotting/remove_chartjunk.py @@ -24,6 +24,8 @@ def remove_borders(axes, left=False, bottom=False, right=True, top=True): top : bool (default: `True`) Hide top axis spine if True. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/remove_chartjunk/ diff --git a/mlxtend/plotting/scatter.py b/mlxtend/plotting/scatter.py index e6e7747e6..b3e17c075 100644 --- a/mlxtend/plotting/scatter.py +++ b/mlxtend/plotting/scatter.py @@ -45,6 +45,8 @@ def category_scatter(x, y, label_col, data, --------- fig : matplotlig.pyplot figure object + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/category_scatter/ diff --git a/mlxtend/plotting/stacked_barplot.py b/mlxtend/plotting/stacked_barplot.py index 10d9ae2be..0034a7a91 100644 --- a/mlxtend/plotting/stacked_barplot.py +++ b/mlxtend/plotting/stacked_barplot.py @@ -43,6 +43,8 @@ def stacked_barplot(df, bar_width='auto', colors='bgrcky', --------- fig : matplotlib.pyplot figure object + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/plotting/stacked_barplot/ diff --git a/mlxtend/preprocessing/mean_centering.py b/mlxtend/preprocessing/mean_centering.py index 228d3ae83..4f2ac8a2c 100644 --- a/mlxtend/preprocessing/mean_centering.py +++ b/mlxtend/preprocessing/mean_centering.py @@ -19,6 +19,8 @@ class MeanCenterer(object): NumPy array storing the mean values for centering after fitting the MeanCenterer object. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/preprocessing/MeanCenterer/ diff --git a/mlxtend/preprocessing/onehot.py b/mlxtend/preprocessing/onehot.py index fa559a4bf..5e8a5577e 100644 --- a/mlxtend/preprocessing/onehot.py +++ b/mlxtend/preprocessing/onehot.py @@ -28,6 +28,8 @@ def one_hot(y, num_labels='auto', dtype='float'): One-hot encoded array, where each sample is represented as a row vector in the returned array. + Examples + ---------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/preprocessing/one_hot/ diff --git a/mlxtend/preprocessing/scaling.py b/mlxtend/preprocessing/scaling.py index 4e2107f18..06bec0d7c 100644 --- a/mlxtend/preprocessing/scaling.py +++ b/mlxtend/preprocessing/scaling.py @@ -29,6 +29,8 @@ def minmax_scaling(array, columns, min_val=0, max_val=1): df_new : pandas DataFrame object. Copy of the array or DataFrame with rescaled columns. + Examples + ---------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/preprocessing/minmax_scaling/ @@ -93,6 +95,8 @@ def standardize(array, columns=None, ddof=0, return_params=False, params=None): df_new : pandas DataFrame object. Copy of the array or DataFrame with standardized columns. + Examples + ---------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/preprocessing/standardize/ diff --git a/mlxtend/preprocessing/transactionencoder.py b/mlxtend/preprocessing/transactionencoder.py index 99c786185..b2ae88396 100644 --- a/mlxtend/preprocessing/transactionencoder.py +++ b/mlxtend/preprocessing/transactionencoder.py @@ -21,6 +21,8 @@ class TransactionEncoder(BaseEstimator, TransformerMixin): columns_: list List of unique names in the `X` input list of lists + Examples + ------------ For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/preprocessing/TransactionEncoder/ diff --git a/mlxtend/regressor/linear_regression.py b/mlxtend/regressor/linear_regression.py index 96552eef1..452ce6b3f 100644 --- a/mlxtend/regressor/linear_regression.py +++ b/mlxtend/regressor/linear_regression.py @@ -50,6 +50,8 @@ class LinearRegression(_BaseModel, _IterativeModel, _Regressor): Sum of squared errors after each epoch; ignored if solver='normal equation' + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/regressor/LinearRegression/ diff --git a/mlxtend/regressor/stacking_cv_regression.py b/mlxtend/regressor/stacking_cv_regression.py index 94fd061ef..2a907f9c0 100644 --- a/mlxtend/regressor/stacking_cv_regression.py +++ b/mlxtend/regressor/stacking_cv_regression.py @@ -89,6 +89,8 @@ class StackingCVRegressor(BaseEstimator, RegressorMixin, TransformerMixin): number of samples in training data and len(self.regressors) is the number of regressors. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/regressor/StackingCVRegressor/ diff --git a/mlxtend/regressor/stacking_regression.py b/mlxtend/regressor/stacking_regression.py index 925b8aef9..310e9915f 100644 --- a/mlxtend/regressor/stacking_regression.py +++ b/mlxtend/regressor/stacking_regression.py @@ -70,6 +70,8 @@ class StackingRegressor(BaseEstimator, RegressorMixin, TransformerMixin): the scikit-learn fit/predict API interface but are not compatible to scikit-learn's `clone` function. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/regressor/StackingRegressor/ diff --git a/mlxtend/text/names.py b/mlxtend/text/names.py index dbfa281f2..2a0402fce 100644 --- a/mlxtend/text/names.py +++ b/mlxtend/text/names.py @@ -41,6 +41,8 @@ def generalize_names(name, output_sep=' ', firstname_output_letters=1): gen_name : `str` The generalized name. + Examples + ----------- For usage examples, please see http://rasbt.github.io/mlxtend/user_guide/text/generalize_names/ @@ -115,6 +117,11 @@ def generalize_names_duplcheck(df, col_name): New DataFrame object where generalize_names function has been applied without duplicates. + Examples + ----------- + For usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/text/generalize_names_duplcheck/ + """ df_new = df.copy() diff --git a/mlxtend/text/tokenizer.py b/mlxtend/text/tokenizer.py index 5663ab94d..8e0c480a1 100644 --- a/mlxtend/text/tokenizer.py +++ b/mlxtend/text/tokenizer.py @@ -12,7 +12,8 @@ def tokenizer_words_and_emoticons(text): """Convert text to lowercase words and emoticons. - Example: + Examples + ----------- >>> tokenizer_words_and_emoticons('This :) is :( a test :-)!') ['this', 'is', 'a', 'test', ':)', ':(', ':-)'] @@ -29,7 +30,8 @@ def tokenizer_words_and_emoticons(text): def tokenizer_emoticons(text): """Return emoticons from text - Example: + Examples + ----------- >>> tokenizer_emoticons('This :) is :( a test :-)!') [':)', ':(', ':-)'] diff --git a/mlxtend/utils/counter.py b/mlxtend/utils/counter.py index 9765361c3..288a7d586 100644 --- a/mlxtend/utils/counter.py +++ b/mlxtend/utils/counter.py @@ -52,6 +52,9 @@ class Counter(object): ' %d seconds ago.' % (time.time() - cnt.end_time)) The counter was last updated 0 seconds ago. + For more usage examples, please see + http://rasbt.github.io/mlxtend/user_guide/utils/Counter/ + """ def __init__(self, stderr=False, start_newline=True, precision=0, name=None): From 04be1ddb80df10accaa4de43458c8106a3396145 Mon Sep 17 00:00:00 2001 From: rasbt Date: Sat, 21 Apr 2018 13:34:15 -0400 Subject: [PATCH 3/3] update changelog --- docs/sources/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/sources/CHANGELOG.md b/docs/sources/CHANGELOG.md index 64733fa3b..54bfdbc84 100755 --- a/docs/sources/CHANGELOG.md +++ b/docs/sources/CHANGELOG.md @@ -35,6 +35,7 @@ The CHANGELOG for the current development version is available at - Various changes in the documentation and documentation tools to fix formatting issues ([#363](https://github.com/rasbt/mlxtend/pull/363)) - Fixes a bug where the `StackingCVClassifier`'s meta features were not stored in the original order when `shuffle=True` ([#370](https://github.com/rasbt/mlxtend/pull/370)) +- Many documentation improvements, including links to the User Guides in the API docs ([#371](https://github.com/rasbt/mlxtend/pull/371))