├── .gitignore ├── CONTRIBUTING.md ├── DESCRIPTION.rst ├── LICENSE.txt ├── MAINTAINERS.md ├── MANIFEST.in ├── Makefile ├── README.md ├── docs ├── Makefile ├── _static │ ├── .gitkeep │ └── theme_overrides.css ├── _templates │ └── .gitkeep ├── about.rst ├── api │ ├── anscombe.py │ ├── anscombe.rst │ ├── classifier │ │ ├── class_balance.py │ │ ├── class_balance.rst │ │ ├── classification_report.py │ │ ├── classification_report.rst │ │ ├── confusion_matrix.py │ │ ├── confusion_matrix.rst │ │ ├── images │ │ │ ├── class_balance.png │ │ │ ├── classification_report.png │ │ │ ├── confusion_matrix.png │ │ │ ├── rocauc.png │ │ │ └── thresholdviz.png │ │ ├── index.rst │ │ ├── rocauc.py │ │ ├── rocauc.rst │ │ ├── threshold.py │ │ └── threshold.rst │ ├── cluster │ │ ├── elbow.py │ │ ├── elbow.rst │ │ ├── images │ │ │ ├── elbow.png │ │ │ └── silhouette.png │ │ ├── index.rst │ │ ├── silhouette.py │ │ └── silhouette.rst │ ├── datasets.rst │ ├── features │ │ ├── images │ │ │ ├── feature_importances.png │ │ │ ├── feature_importances_coef.png │ │ │ ├── jointplot.png │ │ │ ├── jointplot_hex.png │ │ │ ├── normalized_sampled_parallel_coordinates.png │ │ │ ├── parallel_coordinates.png │ │ │ ├── pca_projection_2d.png │ │ │ ├── pca_projection_3d.png │ │ │ ├── radviz.png │ │ │ ├── rank1d_shapiro.png │ │ │ ├── rank2d_covariance.png │ │ │ ├── rank2d_pearson.png │ │ │ └── scatter.png │ │ ├── importances.py │ │ ├── importances.rst │ │ ├── index.rst │ │ ├── pca.py │ │ ├── pca.rst │ │ ├── pcoords.py │ │ ├── pcoords.rst │ │ ├── radviz.py │ │ ├── radviz.rst │ │ ├── rankd.py │ │ ├── rankd.rst │ │ ├── scatter.py │ │ └── scatter.rst │ ├── images │ │ ├── anscombe.png │ │ └── palettes │ │ │ ├── palettes_2_0.png │ │ │ ├── palettes_2_1.png │ │ │ ├── palettes_2_10.png │ │ │ ├── palettes_2_11.png │ │ │ ├── palettes_2_12.png │ │ │ ├── palettes_2_13.png │ │ │ ├── palettes_2_14.png │ │ │ ├── palettes_2_15.png │ │ │ ├── palettes_2_16.png │ │ │ ├── palettes_2_2.png │ │ │ ├── palettes_2_3.png │ │ │ ├── palettes_2_4.png │ │ │ ├── palettes_2_5.png │ │ │ ├── palettes_2_6.png │ │ │ ├── palettes_2_7.png │ │ │ ├── palettes_2_8.png │ │ │ ├── palettes_2_9.png │ │ │ ├── palettes_3_1.png │ │ │ ├── palettes_3_10.png │ │ │ ├── palettes_3_100.png │ │ │ ├── palettes_3_101.png │ │ │ ├── palettes_3_102.png │ │ │ ├── palettes_3_103.png │ │ │ ├── palettes_3_104.png │ │ │ ├── palettes_3_105.png │ │ │ ├── palettes_3_106.png │ │ │ ├── palettes_3_107.png │ │ │ ├── palettes_3_108.png │ │ │ ├── palettes_3_109.png │ │ │ ├── palettes_3_11.png │ │ │ ├── palettes_3_110.png │ │ │ ├── palettes_3_111.png │ │ │ ├── palettes_3_112.png │ │ │ ├── palettes_3_113.png │ │ │ ├── palettes_3_114.png │ │ │ ├── palettes_3_115.png │ │ │ ├── palettes_3_116.png │ │ │ ├── palettes_3_117.png │ │ │ ├── palettes_3_118.png │ │ │ ├── palettes_3_119.png │ │ │ ├── palettes_3_12.png │ │ │ ├── palettes_3_120.png │ │ │ ├── palettes_3_121.png │ │ │ ├── palettes_3_122.png │ │ │ ├── palettes_3_123.png │ │ │ ├── palettes_3_124.png │ │ │ ├── palettes_3_125.png │ │ │ ├── palettes_3_126.png │ │ │ ├── palettes_3_127.png │ │ │ ├── palettes_3_128.png │ │ │ ├── palettes_3_129.png │ │ │ ├── palettes_3_13.png │ │ │ ├── palettes_3_130.png │ │ │ ├── palettes_3_131.png │ │ │ ├── palettes_3_132.png │ │ │ ├── palettes_3_133.png │ │ │ ├── palettes_3_134.png │ │ │ ├── palettes_3_135.png │ │ │ ├── palettes_3_136.png │ │ │ ├── palettes_3_137.png │ │ │ ├── palettes_3_138.png │ │ │ ├── palettes_3_139.png │ │ │ ├── palettes_3_14.png │ │ │ ├── palettes_3_140.png │ │ │ ├── palettes_3_141.png │ │ │ ├── palettes_3_142.png │ │ │ ├── palettes_3_143.png │ │ │ ├── palettes_3_144.png │ │ │ ├── palettes_3_145.png │ │ │ ├── palettes_3_146.png │ │ │ ├── palettes_3_147.png │ │ │ ├── palettes_3_148.png │ │ │ ├── palettes_3_149.png │ │ │ ├── palettes_3_15.png │ │ │ ├── palettes_3_150.png │ │ │ ├── palettes_3_151.png │ │ │ ├── palettes_3_152.png │ │ │ ├── palettes_3_153.png │ │ │ ├── palettes_3_154.png │ │ │ ├── palettes_3_155.png │ │ │ ├── palettes_3_156.png │ │ │ ├── palettes_3_157.png │ │ │ ├── palettes_3_158.png │ │ │ ├── palettes_3_159.png │ │ │ ├── palettes_3_16.png │ │ │ ├── palettes_3_160.png │ │ │ ├── palettes_3_161.png │ │ │ ├── palettes_3_162.png │ │ │ ├── palettes_3_163.png │ │ │ ├── palettes_3_164.png │ │ │ ├── palettes_3_165.png │ │ │ ├── palettes_3_166.png │ │ │ ├── palettes_3_167.png │ │ │ ├── palettes_3_168.png │ │ │ ├── palettes_3_169.png │ │ │ ├── palettes_3_17.png │ │ │ ├── palettes_3_170.png │ │ │ ├── palettes_3_171.png │ │ │ ├── palettes_3_172.png │ │ │ ├── palettes_3_173.png │ │ │ ├── palettes_3_174.png │ │ │ ├── palettes_3_175.png │ │ │ ├── palettes_3_176.png │ │ │ ├── palettes_3_177.png │ │ │ ├── palettes_3_178.png │ │ │ ├── palettes_3_179.png │ │ │ ├── palettes_3_18.png │ │ │ ├── palettes_3_180.png │ │ │ ├── palettes_3_181.png │ │ │ ├── palettes_3_182.png │ │ │ ├── palettes_3_183.png │ │ │ ├── palettes_3_184.png │ │ │ ├── palettes_3_185.png │ │ │ ├── palettes_3_186.png │ │ │ ├── palettes_3_187.png │ │ │ ├── palettes_3_188.png │ │ │ ├── palettes_3_189.png │ │ │ ├── palettes_3_19.png │ │ │ ├── palettes_3_190.png │ │ │ ├── palettes_3_191.png │ │ │ ├── palettes_3_192.png │ │ │ ├── palettes_3_193.png │ │ │ ├── palettes_3_194.png │ │ │ ├── palettes_3_195.png │ │ │ ├── palettes_3_196.png │ │ │ ├── palettes_3_197.png │ │ │ ├── palettes_3_198.png │ │ │ ├── palettes_3_199.png │ │ │ ├── palettes_3_2.png │ │ │ ├── palettes_3_20.png │ │ │ ├── palettes_3_200.png │ │ │ ├── palettes_3_201.png │ │ │ ├── palettes_3_202.png │ │ │ ├── palettes_3_203.png │ │ │ ├── palettes_3_204.png │ │ │ ├── palettes_3_205.png │ │ │ ├── palettes_3_206.png │ │ │ ├── palettes_3_207.png │ │ │ ├── palettes_3_208.png │ │ │ ├── palettes_3_21.png │ │ │ ├── palettes_3_22.png │ │ │ ├── palettes_3_23.png │ │ │ ├── palettes_3_24.png │ │ │ ├── palettes_3_25.png │ │ │ ├── palettes_3_26.png │ │ │ ├── palettes_3_27.png │ │ │ ├── palettes_3_28.png │ │ │ ├── palettes_3_29.png │ │ │ ├── palettes_3_3.png │ │ │ ├── palettes_3_30.png │ │ │ ├── palettes_3_31.png │ │ │ ├── palettes_3_32.png │ │ │ ├── palettes_3_33.png │ │ │ ├── palettes_3_34.png │ │ │ ├── palettes_3_35.png │ │ │ ├── palettes_3_36.png │ │ │ ├── palettes_3_37.png │ │ │ ├── palettes_3_38.png │ │ │ ├── palettes_3_39.png │ │ │ ├── palettes_3_4.png │ │ │ ├── palettes_3_40.png │ │ │ ├── palettes_3_41.png │ │ │ ├── palettes_3_42.png │ │ │ ├── palettes_3_43.png │ │ │ ├── palettes_3_44.png │ │ │ ├── palettes_3_45.png │ │ │ ├── palettes_3_46.png │ │ │ ├── palettes_3_47.png │ │ │ ├── palettes_3_48.png │ │ │ ├── palettes_3_49.png │ │ │ ├── palettes_3_5.png │ │ │ ├── palettes_3_50.png │ │ │ ├── palettes_3_51.png │ │ │ ├── palettes_3_52.png │ │ │ ├── palettes_3_53.png │ │ │ ├── palettes_3_54.png │ │ │ ├── palettes_3_55.png │ │ │ ├── palettes_3_56.png │ │ │ ├── palettes_3_57.png │ │ │ ├── palettes_3_58.png │ │ │ ├── palettes_3_59.png │ │ │ ├── palettes_3_6.png │ │ │ ├── palettes_3_60.png │ │ │ ├── palettes_3_61.png │ │ │ ├── palettes_3_62.png │ │ │ ├── palettes_3_63.png │ │ │ ├── palettes_3_64.png │ │ │ ├── palettes_3_65.png │ │ │ ├── palettes_3_66.png │ │ │ ├── palettes_3_67.png │ │ │ ├── palettes_3_68.png │ │ │ ├── palettes_3_69.png │ │ │ ├── palettes_3_7.png │ │ │ ├── palettes_3_70.png │ │ │ ├── palettes_3_71.png │ │ │ ├── palettes_3_72.png │ │ │ ├── palettes_3_73.png │ │ │ ├── palettes_3_74.png │ │ │ ├── palettes_3_75.png │ │ │ ├── palettes_3_76.png │ │ │ ├── palettes_3_77.png │ │ │ ├── palettes_3_78.png │ │ │ ├── palettes_3_79.png │ │ │ ├── palettes_3_8.png │ │ │ ├── palettes_3_80.png │ │ │ ├── palettes_3_81.png │ │ │ ├── palettes_3_82.png │ │ │ ├── palettes_3_83.png │ │ │ ├── palettes_3_84.png │ │ │ ├── palettes_3_85.png │ │ │ ├── palettes_3_86.png │ │ │ ├── palettes_3_87.png │ │ │ ├── palettes_3_88.png │ │ │ ├── palettes_3_89.png │ │ │ ├── palettes_3_9.png │ │ │ ├── palettes_3_90.png │ │ │ ├── palettes_3_91.png │ │ │ ├── palettes_3_92.png │ │ │ ├── palettes_3_93.png │ │ │ ├── palettes_3_94.png │ │ │ ├── palettes_3_95.png │ │ │ ├── palettes_3_96.png │ │ │ ├── palettes_3_97.png │ │ │ ├── palettes_3_98.png │ │ │ └── palettes_3_99.png │ ├── index.rst │ ├── palettes.rst │ ├── regressor │ │ ├── alphas.py │ │ ├── alphas.rst │ │ ├── images │ │ │ ├── alpha_selection.png │ │ │ ├── prediction_error.png │ │ │ └── residuals.png │ │ ├── index.rst │ │ ├── peplot.py │ │ ├── peplot.rst │ │ ├── residuals.py │ │ └── residuals.rst │ └── text │ │ ├── corpus.py │ │ ├── corpus.rst │ │ ├── freqdist.py │ │ ├── freqdist.rst │ │ ├── images │ │ ├── freqdist_cooking.png │ │ ├── freqdist_corpus.png │ │ ├── freqdist_gaming.png │ │ ├── freqdist_stopwords.png │ │ ├── tsne_all_docs.png │ │ ├── tsne_kmeans.png │ │ └── tsne_no_labels.png │ │ ├── index.rst │ │ ├── tsne.py │ │ └── tsne.rst ├── changelog.rst ├── conf.py ├── contributing.rst ├── evaluation.rst ├── images │ ├── favicon.ico │ ├── matplotlib_anatomy.png │ ├── matplotlib_pbpython_example.png │ ├── matplotlib_single.png │ ├── quickstart │ │ ├── bikeshare_ols_residuals.png │ │ ├── bikeshare_rank2d.png │ │ ├── bikeshare_ridge_alphas.png │ │ ├── bikeshare_ridge_prediction_error.png │ │ └── temp_feelslike_jointplot.png │ ├── tutorial │ │ ├── modelselect_bagging_classifier.png │ │ ├── modelselect_extra_trees_classifier.png │ │ ├── modelselect_kneighbors_classifier.png │ │ ├── modelselect_linear_svc.png │ │ ├── modelselect_logistic_regression.png │ │ ├── modelselect_logistic_regression_cv.png │ │ ├── modelselect_nu_svc.png │ │ ├── modelselect_random_forest_classifier.png │ │ ├── modelselect_sgd_classifier.png │ │ └── modelselect_svc.png │ ├── visualizers.png │ └── yellowbrickroad.jpg ├── index.rst ├── matplotlib.rst ├── quickstart.rst ├── requirements.txt └── tutorial.rst ├── examples ├── .gitignore ├── LCOMBS │ └── testing.ipynb ├── NealHumphrey │ ├── .gitignore │ ├── confusionMatrix.ipynb │ ├── feedback_notes.txt │ ├── light-dark-text.ipynb │ └── testing_yb.ipynb ├── README.md ├── balavenkatesan │ ├── balance-scale.csv │ └── testing.py ├── bbengfort │ ├── .gitignore │ ├── alphas.ipynb │ ├── cluster.ipynb │ ├── errors.md │ ├── figures │ │ ├── nocr.png │ │ ├── nopoofnofinal.png │ │ ├── notsne.png │ │ └── pipeline_prototype.png │ ├── pipeline.ipynb │ ├── rank2d.ipynb │ ├── regression.ipynb │ └── testing.ipynb ├── cjmorale │ ├── ConfusionMatrix label_encoder example.ipynb │ └── PCA_Examples.ipynb ├── download.py ├── examples.ipynb ├── gary-mayfield │ ├── .gitignore │ └── testing.ipynb ├── jkeung │ ├── learning_curve.ipynb │ └── testing.ipynb ├── lwgray │ └── ClassPredictionError.ipynb ├── mattandahalfew │ └── Visualizing a credit model.ipynb ├── morganmendis │ └── testing.ipynb ├── ndanielsen │ ├── Decision Boundaries Example Notebook.ipynb │ ├── ScatterViz Example (Iris Dataset).ipynb │ ├── ThresholdVisualizer Example.ipynb │ ├── Untitled.ipynb │ ├── Untitled1.ipynb │ └── Yellowbrick in the Flower Garden.ipynb ├── palettes.ipynb ├── pbs929 │ ├── features-pipeline.ipynb │ ├── gridsearch.ipynb │ ├── pcoords.ipynb │ └── rankd.ipynb ├── pbwitt │ └── testing.ipynb ├── pdamodaran │ ├── feature_visualizer.ipynb │ └── jointplot.ipynb ├── rebeccabilbro │ ├── freqtext.ipynb │ ├── pipelines.ipynb │ ├── postag.ipynb │ └── testing.ipynb └── tuulihill │ └── Tuulitest.ipynb ├── requirements.txt ├── setup.cfg ├── setup.py ├── tests ├── .gitignore ├── __init__.py ├── base.py ├── baseline_images │ ├── test_classifier │ │ ├── test_boundaries │ │ │ ├── test_integrated_plot_numpy_named_arrays.png │ │ │ └── test_real_data_set_viz.png │ │ ├── test_class_balance │ │ │ └── test_class_report.png │ │ ├── test_classification_report │ │ │ └── test_class_report.png │ │ ├── test_confusion_matrix │ │ │ ├── test_confusion_matrix.png │ │ │ ├── test_inverse_mapping.png │ │ │ └── test_one_class.png │ │ ├── test_rocauc │ │ │ ├── test_multiclass_rocauc.png │ │ │ ├── test_rocauc_no_classes.png │ │ │ ├── test_rocauc_no_curves.png │ │ │ ├── test_rocauc_no_macro.png │ │ │ ├── test_rocauc_no_macro_no_micro.png │ │ │ └── test_rocauc_no_micro.png │ │ └── test_threshold │ │ │ ├── test_threshold_viz.png │ │ │ ├── test_threshold_viz_quick_method_read_data.png │ │ │ └── test_threshold_viz_read_data.png │ ├── test_cluster │ │ ├── test_elbow │ │ │ ├── test_calinski_harabaz_metric.png │ │ │ ├── test_distortion_metric.png │ │ │ ├── test_integrated_kmeans_elbow.png │ │ │ ├── test_integrated_mini_batch_kmeans_elbow.png │ │ │ ├── test_silhouette_metric.png │ │ │ └── test_timings.png │ │ └── test_silhouette │ │ │ ├── test_integrated_kmeans_silhouette.png │ │ │ └── test_integrated_mini_batch_kmeans_silhouette.png │ ├── test_features │ │ ├── test_importances │ │ │ ├── test_integration_coef.png │ │ │ ├── test_integration_feature_importances.png │ │ │ └── test_integration_quick_method.png │ │ ├── test_jointplot │ │ │ ├── test_jointplot_has_no_errors.png │ │ │ └── test_jointplot_integrated_has_no_errors.png │ │ ├── test_pca │ │ │ └── test_scale_true_2d.png │ │ ├── test_pcoords │ │ │ ├── test_integrated_pcoords.png │ │ │ ├── test_normalized_pcoords.png │ │ │ └── test_parallel_coords.png │ │ ├── test_radviz │ │ │ ├── test_integrated_radviz.png │ │ │ └── test_radviz.png │ │ ├── test_rankd │ │ │ ├── test_integrated_rankd1.png │ │ │ ├── test_integrated_rankd2.png │ │ │ ├── test_rankd1.png │ │ │ └── test_rankd2.png │ │ └── test_scatter │ │ │ ├── test_scatter_image.png │ │ │ └── test_scatter_image_fail.png │ ├── test_regressor │ │ ├── test_alphas │ │ │ └── test_similar_image.png │ │ └── test_residuals │ │ │ ├── test_pred_error.png │ │ │ └── test_resid_plots.png │ └── test_text │ │ ├── test_freqdist │ │ └── test_integrated_freqdist.png │ │ └── test_tsne │ │ ├── test_integrated_tsne.png │ │ ├── test_make_classification_tsne.png │ │ ├── test_make_classification_tsne_class_labels.png │ │ └── test_no_target_tsne.png ├── checks.py ├── conftest.py ├── dataset.py ├── images.py ├── requirements.txt ├── test_base.py ├── test_bestfit.py ├── test_classifier │ ├── __init__.py │ ├── test_boundaries.py │ ├── test_class_balance.py │ ├── test_class_prediction_error.py │ ├── test_classification_report.py │ ├── test_confusion_matrix.py │ ├── test_learning_curve.py │ ├── test_rocauc.py │ └── test_threshold.py ├── test_cluster │ ├── __init__.py │ ├── test_base.py │ ├── test_elbow.py │ └── test_silhouette.py ├── test_features │ ├── __init__.py │ ├── test_base.py │ ├── test_importances.py │ ├── test_jointplot.py │ ├── test_pca.py │ ├── test_pcoords.py │ ├── test_radviz.py │ ├── test_rankd.py │ ├── test_scatter.py │ └── tests │ │ └── actual_images │ │ └── test_features │ │ └── test_rankd │ │ ├── test_integrated_rankd1.png │ │ └── test_rankd1.png ├── test_pipeline.py ├── test_regressor │ ├── __init__.py │ ├── test_alphas.py │ └── test_residuals.py ├── test_style │ ├── __init__.py │ ├── test_colors.py │ ├── test_palettes.py │ └── test_rcmod.py ├── test_text │ ├── __init__.py │ ├── test_base.py │ ├── test_freqdist.py │ ├── test_postag.py │ └── test_tsne.py └── test_utils │ ├── __init__.py │ ├── test_decorators.py │ ├── test_helpers.py │ ├── test_nan_warnings.py │ ├── test_types.py │ └── test_wrapper.py └── yellowbrick ├── __init__.py ├── anscombe.py ├── base.py ├── bestfit.py ├── classifier ├── __init__.py ├── base.py ├── boundaries.py ├── class_balance.py ├── classification_report.py ├── confusion_matrix.py ├── learning_curve.py ├── rocauc.py └── threshold.py ├── cluster ├── __init__.py ├── base.py ├── elbow.py └── silhouette.py ├── download.py ├── exceptions.py ├── features ├── __init__.py ├── base.py ├── decomposition.py ├── importances.py ├── jointplot.py ├── pca.py ├── pcoords.py ├── radviz.py ├── rankd.py └── scatter.py ├── gridsearch ├── __init__.py ├── base.py └── pcolor.py ├── pipeline.py ├── regressor ├── __init__.py ├── alphas.py ├── base.py └── residuals.py ├── style ├── __init__.py ├── colors.py ├── palettes.py ├── rcmod.py └── utils.py ├── text ├── __init__.py ├── base.py ├── freqdist.py ├── postag.py └── tsne.py ├── utils ├── __init__.py ├── decorators.py ├── helpers.py ├── nan_warnings.py ├── types.py └── wrapper.py └── version.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Sphinx documentation 53 | docs/_build/ 54 | 55 | # PyBuilder 56 | target/ 57 | 58 | # Jupyter Notebook 59 | .ipynb_checkpoints 60 | 61 | # pyenv 62 | .python-version 63 | 64 | # IDE/editor droppings 65 | *.swp 66 | *.swo 67 | 68 | # OS droppings 69 | .DS_Store 70 | 71 | # dotenv 72 | .env 73 | 74 | # virtualenv 75 | .venv 76 | venv/ 77 | ENV/ 78 | 79 | # Spyder project settings 80 | .spyderproject 81 | .spyproject 82 | 83 | # Rope project settings 84 | .ropeproject 85 | 86 | # mkdocs documentation 87 | /site 88 | 89 | # mypy 90 | .mypy_cache/ 91 | 92 | # PyTest 93 | .pytest_cache 94 | 95 | # PyCharm 96 | .idea/workspace.xml 97 | .idea/tasks.xml 98 | .idea/dictionaries 99 | .idea/vcs.xml 100 | .idea/jsLibraryMappings.xml 101 | .idea/dataSources.ids 102 | .idea/dataSources.xml 103 | .idea/dataSources.local.xml 104 | .idea/sqlDataSources.xml 105 | .idea/dynamic.xml 106 | .idea/uiDesigner.xml 107 | .idea/gradle.xml 108 | .idea/libraries 109 | .idea/mongoSettings.xml 110 | *.iws 111 | /out/ 112 | .idea_modules/ 113 | .idea 114 | 115 | # JIRA plugin 116 | atlassian-ide-plugin.xml 117 | 118 | # Crashlytics plugin (for Android Studio and IntelliJ) 119 | com_crashlytics_export_strings.xml 120 | crashlytics.properties 121 | crashlytics-build.properties 122 | fabric.properties 123 | 124 | # Data downloaded from Yellowbrick 125 | data/ 126 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | # Maintainers and Contributors 2 | 3 | This file describes how the Yellowbrick project is maintained and provides contact information for key folks in the project. 4 | 5 | When creating a pull request, your contribution will be reviewed by one or probably two maintainers who will give you the :+1: when your extension is ready to be merged. Maintainers work hard to ensure that Yellowbrick is a high quality project and that contributors are successful. 6 | 7 | For more about how to develop visualizers and contribute features to Yellowbrick, see our [contributor's guide](CONTRIBUTING.md) and the documentation. 8 | 9 | For everyone who has [contributed](https://github.com/DistrictDataLabs/yellowbrick/graphs/contributors) in big and in small ways, **thank you!**. Yellowbrick is intended to be a community project, welcoming to new and experienced developers alike. If you would like to become a core contributor you must simply submit a pull request that shows core knowledge of the Yellowbrick library. Usually new Visualizers meet this standard; let the maintainers know you'd like to join the team, and they'll help you work toward it! 10 | 11 | ## Maintainers 12 | 13 | This is a list of the primary project maintainers. Feel free to @ message them in issues and converse with them directly. 14 | 15 | - [bbengfort](https://github.com/bbengfort) 16 | - [NealHumphrey](https://github.com/NealHumphrey) 17 | - [jkeung](https://github.com/jkeung) 18 | - [ndanielsen](https://github.com/ndanielsen) 19 | 20 | ## Core Contributors 21 | 22 | This is a list of the core-contributors of the project. Core contributors set the road map and vision of the project. Keep an eye out for them in issues and check out their work to use as inspiration! Most likely they would also be happy to chat and answer questions. 23 | 24 | - [rebeccabilbro](https://github.com/rebeccabilbro) 25 | - [mattandahalfew](https://github.com/mattandahalfew) 26 | - [pdamodaran](https://github.com/pdamodaran) 27 | - [tuulihill](https://github.com/tuulihill) 28 | - [balavenkatesan](https://github.com/balavenkatesan) 29 | - [morganmendis](https://github.com/morganmendis) 30 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include *.md 2 | include *.rst 3 | include *.txt 4 | include *.yml 5 | include *.cfg 6 | include Makefile 7 | recursive-include docs *.rst 8 | recursive-include docs *.jpg 9 | recursive-include docs *.png 10 | recursive-include docs *.py 11 | recursive-include docs Makefile 12 | recursive-include tests *.py 13 | recursive-include examples *.py 14 | recursive-include examples *.ipynb 15 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Shell to use with Make 2 | SHELL := /bin/bash 3 | 4 | # Set important Paths 5 | PROJECT := yellowbrick 6 | LOCALPATH := $(CURDIR)/$(PROJECT) 7 | 8 | # Export targets not associated with files 9 | .PHONY: test coverage pip clean publish uml build deploy install 10 | 11 | # Clean build files 12 | clean: 13 | find . -name "*.pyc" -print0 | xargs -0 rm -rf 14 | find . -name "__pycache__" -print0 | xargs -0 rm -rf 15 | -rm -rf htmlcov 16 | -rm -rf .coverage 17 | -rm -rf build 18 | -rm -rf dist 19 | -rm -rf $(PROJECT).egg-info 20 | -rm -rf .eggs 21 | -rm -rf site 22 | -rm -rf classes_$(PROJECT).png 23 | -rm -rf packages_$(PROJECT).png 24 | -rm -rf docs/_build 25 | 26 | # Targets for testing 27 | test: 28 | python setup.py test 29 | 30 | # Publish to gh-pages 31 | publish: 32 | git subtree push --prefix=deploy origin gh-pages 33 | 34 | # Draw UML diagrams 35 | uml: 36 | pyreverse -ASmy -k -o png -p $(PROJECT) $(LOCALPATH) 37 | 38 | # Build the universal wheel and source distribution 39 | build: 40 | python setup.py sdist bdist_wheel 41 | 42 | # Install the package from source 43 | install: 44 | python setup.py install 45 | 46 | # Deploy to PyPI 47 | deploy: 48 | python setup.py register 49 | twine upload dist/* 50 | -------------------------------------------------------------------------------- /docs/_static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/_static/.gitkeep -------------------------------------------------------------------------------- /docs/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | /* override table width restrictions */ 2 | @media screen and (min-width: 767px) { 3 | 4 | .wy-table-responsive table td { 5 | /* !important prevents the common CSS stylesheets from overriding 6 | this as on RTD they are loaded after this stylesheet */ 7 | white-space: normal !important; 8 | } 9 | 10 | .wy-table-responsive { 11 | overflow: visible !important; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /docs/_templates/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/_templates/.gitkeep -------------------------------------------------------------------------------- /docs/api/anscombe.py: -------------------------------------------------------------------------------- 1 | # Creates the anscombe visualization. 2 | 3 | import yellowbrick as yb 4 | import matplotlib.pyplot as plt 5 | 6 | g = yb.anscombe() 7 | plt.savefig("images/anscombe.png") 8 | -------------------------------------------------------------------------------- /docs/api/anscombe.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Anscombe's Quartet 4 | ================== 5 | 6 | Yellowbrick has learned Anscombe's lesson - which is why we believe that 7 | visual diagnostics are vital to machine learning. 8 | 9 | .. code:: python 10 | 11 | import yellowbrick as yb 12 | import matplotlib.pyplot as plt 13 | 14 | g = yb.anscombe() 15 | plt.show() 16 | 17 | 18 | .. image:: images/anscombe.png 19 | 20 | API Reference 21 | ------------- 22 | 23 | .. automodule:: yellowbrick.anscombe 24 | :members: 25 | :undoc-members: 26 | :show-inheritance: 27 | -------------------------------------------------------------------------------- /docs/api/classifier/class_balance.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from sklearn.ensemble import RandomForestClassifier 4 | from sklearn.model_selection import train_test_split 5 | 6 | from yellowbrick.classifier import ClassBalance 7 | 8 | 9 | if __name__ == '__main__': 10 | # Load the regression data set 11 | data = pd.read_csv("../../../examples/data/occupancy/occupancy.csv") 12 | 13 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 14 | classes = ['unoccupied', 'occupied'] 15 | 16 | # Extract the numpy arrays from the data frame 17 | X = data[features].as_matrix() 18 | y = data.occupancy.as_matrix() 19 | 20 | # Create the train and test data 21 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 22 | 23 | # Instantiate the classification model and visualizer 24 | forest = RandomForestClassifier() 25 | visualizer = ClassBalance(forest, classes=classes) 26 | 27 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 28 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 29 | g = visualizer.poof(outpath="images/class_balance.png") # Draw/show/poof the data 30 | -------------------------------------------------------------------------------- /docs/api/classifier/class_balance.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Class Balance 4 | ============= 5 | 6 | Oftentimes classifiers perform badly because of a class imbalance. A class balance chart can help prepare the user for such a case by showing the support for each class in the fitted 7 | classification model. 8 | 9 | .. code:: python 10 | 11 | # Load the classification data set 12 | data = load_data('occupancy') 13 | 14 | # Specify the features of interest and the classes of the target 15 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 16 | classes = ['unoccupied', 'occupied'] 17 | 18 | # Extract the numpy arrays from the data frame 19 | X = data[features].as_matrix() 20 | y = data.occupancy.as_matrix() 21 | 22 | # Create the train and test data 23 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 24 | 25 | .. code:: python 26 | 27 | # Instantiate the classification model and visualizer 28 | forest = RandomForestClassifier() 29 | visualizer = ClassBalance(forest, classes=classes) 30 | 31 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 32 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 33 | g = visualizer.poof() # Draw/show/poof the data 34 | 35 | 36 | .. image:: images/class_balance.png 37 | 38 | 39 | API Reference 40 | ------------- 41 | 42 | .. automodule:: yellowbrick.classifier.class_balance 43 | :members: ClassBalance 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/api/classifier/classification_report.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from sklearn.naive_bayes import GaussianNB 4 | from sklearn.model_selection import train_test_split 5 | 6 | from yellowbrick.classifier import ClassificationReport 7 | 8 | 9 | if __name__ == '__main__': 10 | # Load the regression data set 11 | data = pd.read_csv("../../../examples/data/occupancy/occupancy.csv") 12 | 13 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 14 | classes = ['unoccupied', 'occupied'] 15 | 16 | # Extract the numpy arrays from the data frame 17 | X = data[features].as_matrix() 18 | y = data.occupancy.as_matrix() 19 | 20 | # Create the train and test data 21 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 22 | 23 | # Instantiate the classification model and visualizer 24 | bayes = GaussianNB() 25 | visualizer = ClassificationReport(bayes, classes=classes) 26 | 27 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 28 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 29 | g = visualizer.poof(outpath="images/classification_report.png") # Draw/show/poof the data 30 | -------------------------------------------------------------------------------- /docs/api/classifier/classification_report.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Classification Report 4 | ===================== 5 | 6 | The classification report visualizer displays the precision, recall, and 7 | F1 scores for the model. In order to support easier interpretation and problem detection, the report integrates numerical scores with a color-coded 8 | heatmap. 9 | 10 | .. code:: python 11 | 12 | # Load the classification data set 13 | data = load_data('occupancy') 14 | 15 | # Specify the features of interest and the classes of the target 16 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 17 | classes = ['unoccupied', 'occupied'] 18 | 19 | # Extract the numpy arrays from the data frame 20 | X = data[features].as_matrix() 21 | y = data.occupancy.as_matrix() 22 | 23 | # Create the train and test data 24 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 25 | 26 | .. code:: python 27 | 28 | # Instantiate the classification model and visualizer 29 | bayes = GaussianNB() 30 | visualizer = ClassificationReport(bayes, classes=classes) 31 | 32 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 33 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 34 | g = visualizer.poof() # Draw/show/poof the data 35 | 36 | 37 | 38 | .. image:: images/classification_report.png 39 | 40 | 41 | API Reference 42 | ------------- 43 | 44 | .. automodule:: yellowbrick.classifier.classification_report 45 | :members: ClassificationReport 46 | :undoc-members: 47 | :show-inheritance: 48 | -------------------------------------------------------------------------------- /docs/api/classifier/confusion_matrix.py: -------------------------------------------------------------------------------- 1 | from sklearn.datasets import load_digits 2 | from sklearn.linear_model import LogisticRegression 3 | from sklearn.model_selection import train_test_split 4 | 5 | from yellowbrick.classifier import ConfusionMatrix 6 | 7 | 8 | if __name__ == '__main__': 9 | # Load the regression data set 10 | digits = load_digits() 11 | X = digits.data 12 | y = digits.target 13 | 14 | X_train, X_test, y_train, y_test = train_test_split(X,y, test_size =0.2, random_state=11) 15 | 16 | model = LogisticRegression() 17 | 18 | #The ConfusionMatrix visualizer taxes a model 19 | cm = ConfusionMatrix(model, classes=[0,1,2,3,4,5,6,7,8,9]) 20 | 21 | cm.fit(X_train, y_train) # Fit the training data to the visualizer 22 | cm.score(X_test, y_test) # Evaluate the model on the test data 23 | g = cm.poof(outpath="images/confusion_matrix.png") # Draw/show/poof the data 24 | -------------------------------------------------------------------------------- /docs/api/classifier/confusion_matrix.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Confusion Matrix 4 | ================ 5 | 6 | The ``ConfusionMatrix`` visualizer is a ScoreVisualizer that takes a 7 | fitted Scikit-Learn classifier and a set of test X and y values and 8 | returns a report showing how each of the test values predicted classes 9 | compare to their actual classes. Data scientists use confusion matrices 10 | to understand which classes are most easily confused. These provide 11 | similar information as what is available in a ClassificationReport, but 12 | rather than top-level scores they provide deeper insight into the 13 | classification of individual data points. 14 | 15 | Below are a few examples of using the ConfusionMatrix visualizer; more 16 | information can be found by looking at the 17 | Scikit-Learn documentation on `confusion matrices `_. 18 | 19 | .. code:: python 20 | 21 | #First do our imports 22 | import yellowbrick 23 | 24 | from sklearn.datasets import load_digits 25 | from sklearn.model_selection import train_test_split 26 | from sklearn.linear_model import LogisticRegression 27 | 28 | from yellowbrick.classifier import ConfusionMatrix 29 | 30 | .. code:: python 31 | 32 | # We'll use the handwritten digits data set from scikit-learn. 33 | # Each feature of this dataset is an 8x8 pixel image of a handwritten number. 34 | # Digits.data converts these 64 pixels into a single array of features 35 | digits = load_digits() 36 | X = digits.data 37 | y = digits.target 38 | 39 | X_train, X_test, y_train, y_test = train_test_split(X,y, test_size =0.2, random_state=11) 40 | 41 | model = LogisticRegression() 42 | 43 | #The ConfusionMatrix visualizer taxes a model 44 | cm = ConfusionMatrix(model, classes=[0,1,2,3,4,5,6,7,8,9]) 45 | 46 | #Fit fits the passed model. This is unnecessary if you pass the visualizer a pre-fitted model 47 | cm.fit(X_train, y_train) 48 | 49 | #To create the ConfusionMatrix, we need some test data. Score runs predict() on the data 50 | #and then creates the confusion_matrix from scikit learn. 51 | cm.score(X_test, y_test) 52 | 53 | #How did we do? 54 | cm.poof() 55 | 56 | 57 | 58 | .. image:: images/confusion_matrix.png 59 | 60 | 61 | API Reference 62 | ------------- 63 | 64 | .. automodule:: yellowbrick.classifier.confusion_matrix 65 | :members: ConfusionMatrix 66 | :undoc-members: 67 | :show-inheritance: 68 | -------------------------------------------------------------------------------- /docs/api/classifier/images/class_balance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/classifier/images/class_balance.png -------------------------------------------------------------------------------- /docs/api/classifier/images/classification_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/classifier/images/classification_report.png -------------------------------------------------------------------------------- /docs/api/classifier/images/confusion_matrix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/classifier/images/confusion_matrix.png -------------------------------------------------------------------------------- /docs/api/classifier/images/rocauc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/classifier/images/rocauc.png -------------------------------------------------------------------------------- /docs/api/classifier/images/thresholdviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/classifier/images/thresholdviz.png -------------------------------------------------------------------------------- /docs/api/classifier/index.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Classification Visualizers 4 | ========================== 5 | 6 | Classification models attempt to predict a target in a discrete space, that is assign an instance of dependent variables one or more categories. Classification score visualizers display the differences between classes as well as a number of classifier-specific visual evaluations. We currently have implemented four classifier evaluations: 7 | 8 | - :doc:`classification_report`: Presents the classification report of the classifier 9 | as a heatmap 10 | - :doc:`confusion_matrix`: Presents the confusion matrix of the classifier 11 | as a heatmap 12 | - :doc:`rocauc`: Presents the graph of receiver operating characteristics 13 | along with area under the curve 14 | - :doc:`class_balance`: Displays the difference between the class balances and support 15 | - :doc:`threshold`: Shows the bounds of precision, recall and queue rate after a number of trials. 16 | 17 | Estimator score visualizers wrap Scikit-Learn estimators and expose the 18 | Estimator API such that they have fit(), predict(), and score() methods 19 | that call the appropriate estimator methods under the hood. Score 20 | visualizers can wrap an estimator and be passed in as the final step in 21 | a Pipeline or VisualPipeline. 22 | 23 | .. code:: python 24 | 25 | # Classifier Evaluation Imports 26 | 27 | from sklearn.naive_bayes import GaussianNB 28 | from sklearn.linear_model import LogisticRegression 29 | from sklearn.ensemble import RandomForestClassifier 30 | from sklearn.model_selection import train_test_split 31 | 32 | from yellowbrick.classifier import ClassificationReport, ROCAUC, ClassBalance, ThresholdViz 33 | 34 | .. toctree:: 35 | :maxdepth: 2 36 | 37 | classification_report 38 | confusion_matrix 39 | rocauc 40 | class_balance 41 | threshold 42 | -------------------------------------------------------------------------------- /docs/api/classifier/rocauc.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from sklearn.linear_model import LogisticRegression 4 | from sklearn.model_selection import train_test_split 5 | 6 | from yellowbrick.classifier import ROCAUC 7 | 8 | 9 | if __name__ == '__main__': 10 | # Load the regression data set 11 | data = pd.read_csv("../../../examples/data/occupancy/occupancy.csv") 12 | 13 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 14 | classes = ['unoccupied', 'occupied'] 15 | 16 | # Extract the numpy arrays from the data frame 17 | X = data[features].as_matrix() 18 | y = data.occupancy.as_matrix() 19 | 20 | # Create the train and test data 21 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 22 | 23 | # Instantiate the classification model and visualizer 24 | logistic = LogisticRegression() 25 | visualizer = ROCAUC(logistic) 26 | 27 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 28 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 29 | g = visualizer.poof(outpath="images/rocauc.png") # Draw/show/poof the data 30 | -------------------------------------------------------------------------------- /docs/api/classifier/rocauc.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | ROCAUC 4 | ====== 5 | 6 | A ROCAUC (Receiver Operating Characteristic/Area Under the Curve) plot allows the user to visualize the tradeoff between the classifier's 7 | sensitivity and specificity. 8 | 9 | .. code:: python 10 | 11 | # Load the classification data set 12 | data = load_data('occupancy') 13 | 14 | # Specify the features of interest and the classes of the target 15 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 16 | classes = ['unoccupied', 'occupied'] 17 | 18 | # Extract the numpy arrays from the data frame 19 | X = data[features].as_matrix() 20 | y = data.occupancy.as_matrix() 21 | 22 | # Create the train and test data 23 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 24 | 25 | .. code:: python 26 | 27 | # Instantiate the classification model and visualizer 28 | logistic = LogisticRegression() 29 | visualizer = ROCAUC(logistic) 30 | 31 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 32 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 33 | g = visualizer.poof() # Draw/show/poof the data 34 | 35 | 36 | 37 | .. image:: images/rocauc.png 38 | 39 | 40 | API Reference 41 | ------------- 42 | 43 | .. automodule:: yellowbrick.classifier.rocauc 44 | :members: ROCAUC 45 | :undoc-members: 46 | :show-inheritance: 47 | -------------------------------------------------------------------------------- /docs/api/classifier/threshold.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from yellowbrick.classifier import ThreshViz 4 | from sklearn.linear_model import LogisticRegression 5 | 6 | 7 | if __name__ == '__main__': 8 | # Load the data set 9 | data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data', header=None) 10 | data.rename(columns={57:'is_spam'}, inplace=True) 11 | 12 | features = [col for col in data.columns if col != 'is_spam'] 13 | 14 | # Extract the numpy arrays from the data frame 15 | X = data[features].as_matrix() 16 | y = data.is_spam.as_matrix() 17 | 18 | # Instantiate the classification model and visualizer 19 | logistic = LogisticRegression() 20 | visualizer = ThreshViz(logistic) 21 | 22 | visualizer.fit(X, y) # Fit the training data to the visualizer 23 | g = visualizer.poof(outpath="images/thresholdviz.png") # Draw/show/poof the data 24 | -------------------------------------------------------------------------------- /docs/api/classifier/threshold.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Threshold 4 | ========= 5 | 6 | The Threshold visualizer shows the bounds of precision, recall and queue rate for different thresholds for binary targets after a given number of trials. 7 | 8 | .. code:: python 9 | 10 | # Load the data set 11 | data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data', header=None) 12 | data.rename(columns={57:'is_spam'}, inplace=True) 13 | 14 | features = [col for col in data.columns if col != 'is_spam'] 15 | 16 | # Extract the numpy arrays from the data frame 17 | X = data[features].as_matrix() 18 | y = data.is_spam.as_matrix() 19 | 20 | .. code:: python 21 | 22 | # Instantiate the classification model and visualizer 23 | logistic = LogisticRegression() 24 | visualizer = ThreshViz(logistic) 25 | 26 | visualizer.fit(X, y) # Fit the training data to the visualizer 27 | g = visualizer.poof() # Draw/show/poof the data 28 | 29 | 30 | .. image:: images/thresholdviz.png 31 | 32 | 33 | API Reference 34 | ------------- 35 | 36 | .. automodule:: yellowbrick.classifier.threshold 37 | :members: ThreshViz 38 | :undoc-members: 39 | :show-inheritance: 40 | -------------------------------------------------------------------------------- /docs/api/cluster/elbow.py: -------------------------------------------------------------------------------- 1 | # Clustering Evaluation Imports 2 | from functools import partial 3 | 4 | from sklearn.cluster import MiniBatchKMeans 5 | from sklearn.datasets import make_blobs as sk_make_blobs 6 | 7 | from yellowbrick.cluster import KElbowVisualizer 8 | 9 | # Helpers for easy dataset creation 10 | N_SAMPLES = 1000 11 | N_FEATURES = 12 12 | SHUFFLE = True 13 | 14 | # Make blobs partial 15 | make_blobs = partial(sk_make_blobs, n_samples=N_SAMPLES, n_features=N_FEATURES, shuffle=SHUFFLE) 16 | 17 | 18 | if __name__ == '__main__': 19 | # Make 8 blobs dataset 20 | X, y = make_blobs(centers=8) 21 | 22 | # Instantiate the clustering model and visualizer 23 | # Instantiate the clustering model and visualizer 24 | visualizer = KElbowVisualizer(MiniBatchKMeans(), k=(4,12)) 25 | 26 | visualizer.fit(X) # Fit the training data to the visualizer 27 | visualizer.poof(outpath="images/elbow.png") # Draw/show/poof the data 28 | -------------------------------------------------------------------------------- /docs/api/cluster/elbow.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Elbow Method 4 | ============ 5 | 6 | The elbow method for :math:`K` selection visualizes multiple clustering models with different values for :math:`K`. Model selection is based on whether or not there is an "elbow" in the curve; e.g. if the curve looks like an arm, if there is a clear change in angle from one part of the curve to another. 7 | 8 | .. code:: python 9 | 10 | # Make 8 blobs dataset 11 | X, y = make_blobs(centers=8) 12 | 13 | .. code:: python 14 | 15 | # Instantiate the clustering model and visualizer 16 | visualizer = KElbowVisualizer(MiniBatchKMeans(), k=(4,12)) 17 | 18 | visualizer.fit(X) # Fit the training data to the visualizer 19 | visualizer.poof() # Draw/show/poof the data 20 | 21 | 22 | .. image:: images/elbow.png 23 | 24 | API Reference 25 | ------------- 26 | 27 | .. automodule:: yellowbrick.cluster.elbow 28 | :members: KElbowVisualizer 29 | :undoc-members: 30 | :show-inheritance: 31 | -------------------------------------------------------------------------------- /docs/api/cluster/images/elbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/cluster/images/elbow.png -------------------------------------------------------------------------------- /docs/api/cluster/images/silhouette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/cluster/images/silhouette.png -------------------------------------------------------------------------------- /docs/api/cluster/index.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Clustering Visualizers 4 | ====================== 5 | 6 | Clustering models are unsupervised methods that attempt to detect patterns in unlabeled data. There are two primary classes of clustering algorithm: *agglomerative* clustering links similar data points together, whereas *centroidal* clustering attempts to find centers or partitions in the data. Yellowbrick provides the `yellowbrick.cluster` module to visualize and evaluate clustering behavior. Currently we provide two visualizers to evaluate *centroidal* mechanisms, particularly K-Means clustering, that help us to discover an optimal :math:`K` parameter in the clustering metric: 7 | 8 | - :doc:`elbow`: visualize the clusters according to some scoring function, look for an "elbow" in the curve. 9 | - :doc:`silhouette`: visualize the silhouette scores of each cluster in a single model. 10 | 11 | Because it is very difficult to `score` a clustering model, Yellowbrick visualizers wrap Scikit-Learn "clusterer" estimators via their `fit()` method. Once the clustering model is trained, then the visualizer can call `poof()` to display the clustering evaluation metric. 12 | 13 | .. toctree:: 14 | :maxdepth: 2 15 | 16 | elbow 17 | silhouette 18 | -------------------------------------------------------------------------------- /docs/api/cluster/silhouette.py: -------------------------------------------------------------------------------- 1 | # Clustering Evaluation Imports 2 | from functools import partial 3 | 4 | from sklearn.cluster import MiniBatchKMeans 5 | from sklearn.datasets import make_blobs as sk_make_blobs 6 | 7 | from yellowbrick.cluster import SilhouetteVisualizer 8 | 9 | # Helpers for easy dataset creation 10 | N_SAMPLES = 1000 11 | N_FEATURES = 12 12 | SHUFFLE = True 13 | 14 | # Make blobs partial 15 | make_blobs = partial(sk_make_blobs, n_samples=N_SAMPLES, n_features=N_FEATURES, shuffle=SHUFFLE) 16 | 17 | 18 | if __name__ == '__main__': 19 | # Make 8 blobs dataset 20 | X, y = make_blobs(centers=8) 21 | 22 | # Instantiate the clustering model and visualizer 23 | model = MiniBatchKMeans(6) 24 | visualizer = SilhouetteVisualizer(model) 25 | 26 | visualizer.fit(X) # Fit the training data to the visualizer 27 | visualizer.poof(outpath="images/silhouette.png") # Draw/show/poof the data 28 | -------------------------------------------------------------------------------- /docs/api/cluster/silhouette.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Silhouette Visualizer 4 | ===================== 5 | 6 | The Silhouette Coefficient is used when the ground-truth about the dataset is unknown and computes the density of clusters computed by the model. The score is computed by averaging the silhouette coefficient for each sample, computed as the difference between the average intra-cluster distance and the mean nearest-cluster distance for each sample, normalized by the maximum value. This produces a score between 1 and -1, where 1 is highly dense clusters and -1 is completely incorrect clustering. 7 | 8 | The Silhouette Visualizer displays the silhouette coefficient for each sample on a per-cluster basis, visualizing which clusters are dense and which are not. This is particularly useful for determining cluster imbalance, or for selecting a value for $K$ by comparing multiple visualizers. 9 | 10 | .. code:: python 11 | 12 | # Make 8 blobs dataset 13 | X, y = make_blobs(centers=8) 14 | 15 | .. code:: python 16 | 17 | # Instantiate the clustering model and visualizer 18 | model = MiniBatchKMeans(6) 19 | visualizer = SilhouetteVisualizer(model) 20 | 21 | visualizer.fit(X) # Fit the training data to the visualizer 22 | visualizer.poof() # Draw/show/poof the data 23 | 24 | 25 | .. image:: images/silhouette.png 26 | 27 | 28 | 29 | API Reference 30 | ------------- 31 | 32 | .. automodule:: yellowbrick.cluster.silhouette 33 | :members: SilhouetteVisualizer 34 | :undoc-members: 35 | :show-inheritance: 36 | -------------------------------------------------------------------------------- /docs/api/features/images/feature_importances.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/feature_importances.png -------------------------------------------------------------------------------- /docs/api/features/images/feature_importances_coef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/feature_importances_coef.png -------------------------------------------------------------------------------- /docs/api/features/images/jointplot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/jointplot.png -------------------------------------------------------------------------------- /docs/api/features/images/jointplot_hex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/jointplot_hex.png -------------------------------------------------------------------------------- /docs/api/features/images/normalized_sampled_parallel_coordinates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/normalized_sampled_parallel_coordinates.png -------------------------------------------------------------------------------- /docs/api/features/images/parallel_coordinates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/parallel_coordinates.png -------------------------------------------------------------------------------- /docs/api/features/images/pca_projection_2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/pca_projection_2d.png -------------------------------------------------------------------------------- /docs/api/features/images/pca_projection_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/pca_projection_3d.png -------------------------------------------------------------------------------- /docs/api/features/images/radviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/radviz.png -------------------------------------------------------------------------------- /docs/api/features/images/rank1d_shapiro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/rank1d_shapiro.png -------------------------------------------------------------------------------- /docs/api/features/images/rank2d_covariance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/rank2d_covariance.png -------------------------------------------------------------------------------- /docs/api/features/images/rank2d_pearson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/rank2d_pearson.png -------------------------------------------------------------------------------- /docs/api/features/images/scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/features/images/scatter.png -------------------------------------------------------------------------------- /docs/api/features/importances.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pandas as pd 3 | import matplotlib.pyplot as plt 4 | 5 | from yellowbrick.features.importances import FeatureImportances 6 | from sklearn.ensemble import GradientBoostingClassifier 7 | from sklearn.linear_model import Lasso 8 | 9 | 10 | DATA_DIR = os.path.relpath(os.path.join( 11 | os.path.dirname(__file__), "..", "..", "..", "examples", "data" 12 | )) 13 | 14 | 15 | def feature_importances_(outpath): 16 | occupancy = pd.read_csv(os.path.join(DATA_DIR, "occupancy", "occupancy.csv")) 17 | 18 | feats = [ 19 | "temperature", "relative humidity", "light", "C02", "humidity" 20 | ] 21 | 22 | X = occupancy[feats] 23 | y = occupancy['occupancy'].astype(int) 24 | 25 | fig = plt.figure() 26 | ax = fig.add_subplot() 27 | 28 | viz = FeatureImportances(GradientBoostingClassifier(), ax=ax) 29 | viz.fit(X, y) 30 | viz.poof(outpath=outpath) 31 | 32 | 33 | def coef_(outpath): 34 | concrete = pd.read_csv(os.path.join(DATA_DIR, "concrete", "concrete.csv")) 35 | 36 | feats = ['cement','slag','ash','water','splast','coarse','fine','age'] 37 | X = concrete[feats] 38 | y = concrete['strength'] 39 | 40 | fig = plt.figure() 41 | ax = fig.add_subplot() 42 | 43 | feats = list(map(lambda s: s.title(), feats)) 44 | viz = FeatureImportances(Lasso(), ax=ax, labels=feats, relative=False) 45 | viz.fit(X, y) 46 | viz.poof(outpath=outpath) 47 | 48 | 49 | if __name__ == '__main__': 50 | feature_importances_("images/feature_importances.png") 51 | coef_("images/feature_importances_coef.png") 52 | -------------------------------------------------------------------------------- /docs/api/features/index.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Feature Analysis Visualizers 4 | ============================ 5 | 6 | Feature analysis visualizers are designed to visualize instances in data 7 | space in order to detect features or targets that might impact 8 | downstream fitting. Because ML operates on high-dimensional data sets 9 | (usually at least 35), the visualizers focus on aggregation, 10 | optimization, and other techniques to give overviews of the data. It is 11 | our intent that the steering process will allow the data scientist to 12 | zoom and filter and explore the relationships between their instances 13 | and between dimensions. 14 | 15 | At the moment we have five feature analysis visualizers implemented: 16 | 17 | - :doc:`rankd`: rank single and pairs of features to detect covariance 18 | - :doc:`radviz`: plot data points along axes ordered around a circle to detect separability 19 | - :doc:`pcoords`: plot instances as lines along vertical axes to 20 | detect classes or clusters 21 | - :doc:`pca`: project higher dimensions into a visual space using PCA 22 | - :doc:`importances`: rank features by relative importance in a model 23 | - :doc:`scatter`: plot instances by selecting subsets of features 24 | 25 | Feature analysis visualizers implement the ``Transformer`` API from 26 | Scikit-Learn, meaning they can be used as intermediate transform steps 27 | in a ``Pipeline`` (particularly a ``VisualPipeline``). They are 28 | instantiated in the same way, and then fit and transform are called on 29 | them, which draws the instances correctly. Finally ``poof`` or ``show`` 30 | is called which displays the image. 31 | 32 | .. code:: python 33 | 34 | # Feature Analysis Imports 35 | # NOTE that all these are available for import directly from the `yellowbrick.features` module 36 | from yellowbrick.features.rankd import Rank1D, Rank2D 37 | from yellowbrick.features.radviz import RadViz 38 | from yellowbrick.features.pcoords import ParallelCoordinates 39 | from yellowbrick.features.jointplot import JointPlotVisualizer 40 | from yellowbrick.features.pca import PCADecomposition 41 | from yellowbrick.features.importances import FeatureImportances 42 | from yellowbrick.features.scatter import ScatterVisualizer 43 | 44 | 45 | .. toctree:: 46 | :maxdepth: 2 47 | 48 | radviz 49 | rankd 50 | pcoords 51 | pca 52 | importances 53 | scatter 54 | -------------------------------------------------------------------------------- /docs/api/features/pca.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import matplotlib.pyplot as plt 3 | 4 | from yellowbrick.features.pca import PCADecomposition 5 | 6 | 7 | def pca(X, y, outpath, **kwargs): 8 | # Create a new figure and axes 9 | _, ax = plt.subplots() 10 | 11 | viz = PCADecomposition(ax=ax, **kwargs) 12 | viz.fit_transform(X, y) 13 | viz.poof(outpath=outpath) 14 | 15 | 16 | if __name__ == '__main__': 17 | 18 | # Load the credit data set 19 | data = pd.read_csv("../../../examples/data/credit/credit.csv") 20 | 21 | # Specify the features of interest 22 | features = [ 23 | 'limit', 'sex', 'edu', 'married', 'age', 'apr_delay', 'may_delay', 24 | 'jun_delay', 'jul_delay', 'aug_delay', 'sep_delay', 'apr_bill', 'may_bill', 25 | 'jun_bill', 'jul_bill', 'aug_bill', 'sep_bill', 'apr_pay', 'may_pay', 'jun_pay', 26 | 'jul_pay', 'aug_pay', 'sep_pay', 27 | ] 28 | 29 | # Extract the numpy arrays from the data frame 30 | X = data[features].as_matrix() 31 | y = data.default.as_matrix() 32 | 33 | # Instantiate the visualizer 34 | pca(X, y, "images/pca_projection_2d.png", scale=True, center=False, col=y) 35 | 36 | pca(X, y, "images/pca_projection_3d.png", scale=True, center=False, col=y, proj_dim=3) 37 | -------------------------------------------------------------------------------- /docs/api/features/pca.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | PCA Projection 4 | ============== 5 | 6 | The PCA Decomposition visualizer utilizes principle component analysis to decompose high dimensional data into two or three dimensions so that each instance can be plotted in a scatter plot. The use of PCA means that the projected dataset can be analyzed along axes of principle variation and can be interpreted to determine if spherical distance metrics can be utilized. 7 | 8 | .. code:: python 9 | 10 | # Load the classification data set 11 | data = load_data('credit') 12 | 13 | # Specify the features of interest 14 | features = [ 15 | 'limit', 'sex', 'edu', 'married', 'age', 'apr_delay', 'may_delay', 16 | 'jun_delay', 'jul_delay', 'aug_delay', 'sep_delay', 'apr_bill', 'may_bill', 17 | 'jun_bill', 'jul_bill', 'aug_bill', 'sep_bill', 'apr_pay', 'may_pay', 'jun_pay', 18 | 'jul_pay', 'aug_pay', 'sep_pay', 19 | ] 20 | 21 | # Extract the numpy arrays from the data frame 22 | X = data[features].as_matrix() 23 | y = data.default.as_matrix() 24 | 25 | .. code:: python 26 | 27 | visualizer = PCADecomposition(scale=True, center=False, col=y) 28 | visualizer.fit_transform(X,y) 29 | visualizer.poof() 30 | 31 | 32 | .. image:: images/pca_projection_2d.png 33 | 34 | The PCA projection can also be plotted in three dimensions to attempt to visualize more princple components and get a better sense of the distribution in high dimensions. 35 | 36 | .. code:: python 37 | 38 | visualizer = PCADecomposition(scale=True, center=False, col=y, proj_dim=3) 39 | visualizer.fit_transform(X,y) 40 | visualizer.poof() 41 | 42 | 43 | .. image:: images/pca_projection_3d.png 44 | 45 | 46 | API Reference 47 | ------------- 48 | 49 | .. automodule:: yellowbrick.features.pca 50 | :members: PCADecomposition 51 | :undoc-members: 52 | :show-inheritance: 53 | -------------------------------------------------------------------------------- /docs/api/features/pcoords.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import matplotlib.pyplot as plt 3 | 4 | from yellowbrick.features import ParallelCoordinates 5 | 6 | 7 | def pcoords(X, y, outpath, **kwargs): 8 | # Create a new figure and axes 9 | _, ax = plt.subplots() 10 | 11 | # Create the visualizer 12 | visualizer = ParallelCoordinates(ax=ax, **kwargs) 13 | visualizer.fit(X, y) 14 | visualizer.transform(X) 15 | 16 | # Save to disk 17 | visualizer.poof(outpath=outpath) 18 | 19 | 20 | if __name__ == '__main__': 21 | # Load the classification data set 22 | data = pd.read_csv("../../../examples/data/occupancy/occupancy.csv") 23 | 24 | # Specify the features of interest and the classes of the target 25 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 26 | classes = ['unoccupied', 'occupied'] 27 | 28 | # Extract the numpy arrays from the data frame 29 | X = data[features].as_matrix() 30 | y = data.occupancy.as_matrix() 31 | 32 | # Draw the full, original parallel coordinates 33 | pcoords(X, y, "images/parallel_coordinates.png", classes=classes, features=features) 34 | 35 | # Draw the noramlized, sampled parallel coordinates 36 | pcoords(X, y, "images/normalized_sampled_parallel_coordinates.png", 37 | classes=classes, features=features, 38 | normalize='standard', sample=0.1, 39 | ) 40 | -------------------------------------------------------------------------------- /docs/api/features/radviz.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | from yellowbrick.features import RadViz 3 | 4 | 5 | # Load the classification data set 6 | data = pd.read_csv("../../../examples/data/occupancy/occupancy.csv") 7 | 8 | # Specify the features of interest and the classes of the target 9 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 10 | classes = ['unoccupied', 'occupied'] 11 | 12 | # Extract the numpy arrays from the data frame 13 | X = data[features].as_matrix() 14 | y = data.occupancy.as_matrix() 15 | 16 | # Instantiate the visualizer 17 | visualizer = RadViz(classes=classes, features=features) 18 | 19 | visualizer.fit(X, y) 20 | visualizer.transform(X) 21 | visualizer.poof(outpath="images/radviz.png") 22 | -------------------------------------------------------------------------------- /docs/api/features/radviz.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | RadViz Visualizer 4 | ================= 5 | 6 | RadViz is a multivariate data visualization algorithm that plots each 7 | feature dimension uniformly around the circumference of a circle then 8 | plots points on the interior of the circle such that the point 9 | normalizes its values on the axes from the center to each arc. This 10 | mechanism allows as many dimensions as will easily fit on a circle, 11 | greatly expanding the dimensionality of the visualization. 12 | 13 | Data scientists use this method to detect separability between classes. 14 | E.g. is there an opportunity to learn from the feature set or is there 15 | just too much noise? 16 | 17 | If your data contains rows with missing values (numpy.nan), those missing 18 | values will not be plotted. In other words, you may not get the entire 19 | picture of your data. RadViz will raise a DataWarning to inform you of the 20 | percent missing. 21 | 22 | If you do receive this warning, you may want to look at imputation strategies. 23 | A good starting place is `scikit-learn Imputer. `_ 24 | 25 | .. code:: python 26 | 27 | # Load the classification data set 28 | data = load_data('occupancy') 29 | 30 | # Specify the features of interest and the classes of the target 31 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 32 | classes = ['unoccupied', 'occupied'] 33 | 34 | # Extract the numpy arrays from the data frame 35 | X = data[features].as_matrix() 36 | y = data.occupancy.as_matrix() 37 | 38 | .. code:: python 39 | 40 | # Import the visualizer 41 | from yellowbrick.features import RadViz 42 | 43 | # Instantiate the visualizer 44 | visualizer = RadViz(classes=classes, features=features) 45 | 46 | visualizer.fit(X, y) # Fit the data to the visualizer 47 | visualizer.transform(X) # Transform the data 48 | visualizer.poof() # Draw/show/poof the data 49 | 50 | 51 | 52 | .. image:: images/radviz.png 53 | 54 | 55 | For regression, the RadViz visualizer should use a color sequence to 56 | display the target information, as opposed to discrete colors. 57 | 58 | API Reference 59 | ------------- 60 | 61 | .. automodule:: yellowbrick.features.radviz 62 | :members: RadialVisualizer, RadViz 63 | :undoc-members: 64 | :show-inheritance: 65 | -------------------------------------------------------------------------------- /docs/api/features/rankd.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import matplotlib.pyplot as plt 3 | 4 | from yellowbrick.features.rankd import Rank1D, Rank2D 5 | 6 | def rank1d(X, y, outpath, **kwargs): 7 | # Create a new figure and axes 8 | _, ax = plt.subplots() 9 | 10 | # Create the visualizer 11 | visualizer = Rank1D(ax=ax, **kwargs) 12 | visualizer.fit(X, y) 13 | visualizer.transform(X) 14 | 15 | # Save to disk 16 | visualizer.poof(outpath=outpath) 17 | 18 | 19 | def rank2d(X, y, outpath, **kwargs): 20 | # Create a new figure and axes 21 | _, ax = plt.subplots() 22 | 23 | # Create the visualizer 24 | visualizer = Rank2D(ax=ax, **kwargs) 25 | visualizer.fit(X, y) 26 | visualizer.transform(X) 27 | 28 | # Save to disk 29 | visualizer.poof(outpath=outpath) 30 | 31 | 32 | if __name__ == '__main__': 33 | # Load the regression data set 34 | data = pd.read_csv("../../../examples/data/credit/credit.csv") 35 | 36 | # Specify the features of interest 37 | features = [ 38 | 'limit', 'sex', 'edu', 'married', 'age', 'apr_delay', 'may_delay', 39 | 'jun_delay', 'jul_delay', 'aug_delay', 'sep_delay', 'apr_bill', 'may_bill', 40 | 'jun_bill', 'jul_bill', 'aug_bill', 'sep_bill', 'apr_pay', 'may_pay', 'jun_pay', 41 | 'jul_pay', 'aug_pay', 'sep_pay', 42 | ] 43 | 44 | # Extract the numpy arrays from the data frame 45 | X = data[features].as_matrix() 46 | y = data.default.as_matrix() 47 | 48 | # Instantiate the visualizer with the Shapiro-Wilk ranking algorithm 49 | rank1d(X, y, "images/rank1d_shapiro.png", features=features, algorithm='shapiro') 50 | 51 | # Instantiate the visualizer with the Covariance ranking algorithm 52 | rank2d(X, y, "images/rank2d_covariance.png", features=features, algorithm='covariance') 53 | 54 | # Instantiate the visualizer with the Pearson ranking algorithm 55 | rank2d(X, y, "images/rank2d_pearson.png", features=features, algorithm='pearson') 56 | -------------------------------------------------------------------------------- /docs/api/features/scatter.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import matplotlib.pyplot as plt 3 | 4 | from yellowbrick.features import ScatterVisualizer, JointPlotVisualizer 5 | 6 | 7 | def scatter(data, target, outpath, **kwargs): 8 | # Create a new figure and axes 9 | _, ax = plt.subplots() 10 | 11 | # Create the visualizer 12 | visualizer = ScatterVisualizer(ax=ax, **kwargs) 13 | visualizer.fit(data, target) 14 | visualizer.transform(data) 15 | 16 | # Save to disk 17 | visualizer.poof(outpath=outpath) 18 | print(outpath) 19 | 20 | 21 | def jointplot(X, y, outpath, **kwargs): 22 | # Create a new figure and axes 23 | fig = plt.figure() 24 | ax = fig.add_subplot(111) 25 | 26 | # Create the visualizer 27 | visualizer = JointPlotVisualizer(ax=ax, **kwargs) 28 | visualizer.fit(X, y) 29 | visualizer.transform(X) 30 | 31 | # Save to disk 32 | visualizer.poof(outpath=outpath) 33 | plt.savefig(outpath) 34 | 35 | 36 | if __name__ == '__main__': 37 | # Load the classification data set 38 | data = pd.read_csv("../../../examples/data/occupancy/occupancy.csv") 39 | 40 | # Specify the features of interest and the classes of the target 41 | features = ["temperature", "relative humidity", "light", "C02", "humidity"] 42 | classes = ['unoccupied', 'occupied'] 43 | 44 | # Extract the numpy arrays from the data frame 45 | X = data[features] 46 | y = data.occupancy 47 | 48 | # Draw the scatter visualizer 49 | scatter(X, y, "images/scatter.png", x='light', y='C02', classes=classes) 50 | 51 | # Load the regression data set 52 | data = pd.read_csv("../../../examples/data/concrete/concrete.csv") 53 | 54 | feature = 'cement' 55 | target = 'strength' 56 | 57 | # Get the X and y data from the DataFrame 58 | Xs = data[feature] 59 | ys = data[target] 60 | 61 | # Draw the joint plot visualizer 62 | jointplot(Xs, ys, "images/jointplot.png", feature=feature, target=target) 63 | 64 | # Draw the joint plot visualizer with hexadecimal scatter plot 65 | jointplot(Xs, ys, "images/jointplot_hex.png", feature=feature, target=target, joint_plot='hex') 66 | -------------------------------------------------------------------------------- /docs/api/images/anscombe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/anscombe.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_0.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_1.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_10.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_11.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_12.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_13.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_14.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_15.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_16.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_2.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_3.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_4.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_5.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_6.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_7.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_8.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_2_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_2_9.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_1.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_10.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_100.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_101.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_102.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_103.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_104.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_105.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_106.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_107.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_108.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_109.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_11.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_110.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_111.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_112.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_113.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_114.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_115.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_116.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_117.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_118.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_119.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_12.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_120.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_121.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_122.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_122.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_123.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_124.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_125.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_126.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_127.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_128.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_129.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_13.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_130.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_130.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_131.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_131.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_132.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_133.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_133.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_134.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_135.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_135.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_136.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_137.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_138.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_139.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_139.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_14.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_140.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_140.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_141.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_141.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_142.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_143.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_143.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_144.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_145.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_146.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_147.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_147.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_148.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_148.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_149.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_149.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_15.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_150.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_151.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_152.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_153.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_154.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_155.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_156.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_156.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_157.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_158.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_159.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_16.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_160.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_161.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_161.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_162.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_163.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_164.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_164.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_165.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_165.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_166.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_167.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_168.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_169.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_17.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_170.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_171.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_172.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_173.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_174.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_175.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_176.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_176.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_177.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_178.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_178.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_179.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_179.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_18.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_180.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_181.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_182.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_183.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_183.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_184.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_184.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_185.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_186.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_186.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_187.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_187.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_188.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_188.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_189.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_189.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_19.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_190.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_190.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_191.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_192.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_193.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_193.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_194.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_195.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_195.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_196.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_197.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_198.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_198.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_199.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_199.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_2.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_20.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_200.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_201.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_202.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_202.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_203.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_204.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_204.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_205.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_206.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_206.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_207.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_208.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_21.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_22.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_23.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_24.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_25.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_26.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_27.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_28.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_29.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_3.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_30.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_31.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_32.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_33.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_34.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_35.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_36.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_37.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_38.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_39.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_4.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_40.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_41.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_42.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_43.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_44.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_45.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_46.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_47.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_48.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_49.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_5.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_50.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_51.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_52.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_53.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_54.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_55.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_56.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_57.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_58.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_59.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_6.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_60.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_61.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_62.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_63.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_64.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_65.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_66.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_67.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_68.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_69.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_7.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_70.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_71.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_72.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_73.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_74.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_75.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_76.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_77.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_78.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_79.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_8.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_80.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_81.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_82.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_83.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_84.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_85.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_86.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_87.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_88.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_89.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_9.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_90.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_91.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_92.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_93.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_94.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_95.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_96.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_97.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_98.png -------------------------------------------------------------------------------- /docs/api/images/palettes/palettes_3_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/images/palettes/palettes_3_99.png -------------------------------------------------------------------------------- /docs/api/index.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Visualizers and API 4 | =================== 5 | 6 | Welcome the API documentation for Yellowbrick! This section contains a complete listing of all currently available, production-ready visualizers along with code examples of how to use them. Use the links below to navigate to the reference for each visualization. 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | datasets 12 | anscombe 13 | features/index 14 | regressor/index 15 | classifier/index 16 | cluster/index 17 | text/index 18 | palettes 19 | 20 | .. note:: Many examples utilize data from the UCI Machine Learning repository, in order to run the examples, make sure you follow the instructions in :doc:`datasets` to download and load required data. 21 | 22 | A guide to finding the visualizer you're looking for: generally speaking, visualizers can be data visualizers which visualize instances relative to the model space; score visualizers which visualize model performance; model selection visualizers which compare multiple model forms against each other; and application specific-visualizers. This can be a bit confusing, so we've grouped visualizers according to the type of analysis they are well suited for. 23 | 24 | Feature analysis visualizers are where you'll find the primary implementation of data visualizers. Regression, classification, and clustering analysis visualizers can be found in their respective libraries. Finally visualizers for text analysis are also available in Yellowbrick! Other utilities like styles, best fit lines, and anscombe's visualization can also be found in the links above. 25 | -------------------------------------------------------------------------------- /docs/api/regressor/alphas.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from sklearn.linear_model import Lasso 4 | from sklearn.model_selection import train_test_split 5 | 6 | from yellowbrick.regressor import PredictionError 7 | 8 | 9 | if __name__ == '__main__': 10 | # Load the regression data set 11 | df = pd.read_csv("../../../examples/data/concrete/concrete.csv") 12 | 13 | feature_names = ['cement', 'slag', 'ash', 'water', 'splast', 'coarse', 'fine', 'age'] 14 | target_name = 'strength' 15 | 16 | # Get the X and y data from the DataFrame 17 | X = df[feature_names].as_matrix() 18 | y = df[target_name].as_matrix() 19 | 20 | # Create the train and test data 21 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 22 | 23 | # Instantiate the linear model and visualizer 24 | lasso = Lasso() 25 | visualizer = PredictionError(lasso) 26 | 27 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 28 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 29 | g = visualizer.poof(outpath="images/prediction_error.png") # Draw/show/poof the data 30 | -------------------------------------------------------------------------------- /docs/api/regressor/alphas.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Alpha Selection 4 | =============== 5 | 6 | Regularization is designed to penalize model complexity, therefore the higher the alpha, the less complex the model, decreasing the error due to variance (overfit). Alphas that are too high on the other hand increase the error due to bias (underfit). It is important, therefore to choose an optimal alpha such that the error is minimized in both directions. 7 | 8 | The AlphaSelection Visualizer demonstrates how different values of alpha influence model selection during the regularization of linear models. Generally speaking, alpha increases the affect of regularization, e.g. if alpha is zero there is no regularization and the higher the alpha, the more the regularization parameter influences the final model. 9 | 10 | .. code:: python 11 | 12 | # Load the data 13 | df = load_data('concrete') 14 | feature_names = ['cement', 'slag', 'ash', 'water', 'splast', 'coarse', 'fine', 'age'] 15 | target_name = 'strength' 16 | 17 | # Get the X and y data from the DataFrame 18 | X = df[feature_names].as_matrix() 19 | y = df[target_name].as_matrix() 20 | 21 | # Create the train and test data 22 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 23 | 24 | .. code:: python 25 | 26 | # Create a list of alphas to cross-validate against 27 | alphas = np.logspace(-12, -0.5, 400) 28 | 29 | # Instantiate the linear model and visualizer 30 | model = LassoCV(alphas=alphas) 31 | visualizer = AlphaSelection(model) 32 | 33 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 34 | g = visualizer.poof() # Draw/show/poof the data 35 | 36 | 37 | .. image:: images/alpha_selection.png 38 | 39 | 40 | API Reference 41 | ------------- 42 | 43 | .. automodule:: yellowbrick.regressor.alphas 44 | :members: AlphaSelection, ManualAlphaSelection 45 | :undoc-members: 46 | :show-inheritance: 47 | -------------------------------------------------------------------------------- /docs/api/regressor/images/alpha_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/regressor/images/alpha_selection.png -------------------------------------------------------------------------------- /docs/api/regressor/images/prediction_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/regressor/images/prediction_error.png -------------------------------------------------------------------------------- /docs/api/regressor/images/residuals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/regressor/images/residuals.png -------------------------------------------------------------------------------- /docs/api/regressor/index.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Regression Visualizers 4 | ====================== 5 | 6 | Regression models attempt to predict a target in a continuous space. 7 | Regressor score visualizers display the instances in model space to 8 | better understand how the model is making predictions. We currently have 9 | implemented three regressor evaluations: 10 | 11 | - :doc:`residuals`: plot the difference between the expected and actual 12 | values 13 | - :doc:`peplot`: plot the expected vs. actual values in model space 14 | - :doc:`alphas`: visual tuning of regularization hyperparameters 15 | 16 | Estimator score visualizers *wrap* Scikit-Learn estimators and expose 17 | the Estimator API such that they have ``fit()``, ``predict()``, and 18 | ``score()`` methods that call the appropriate estimator methods under 19 | the hood. Score visualizers can wrap an estimator and be passed in as 20 | the final step in a ``Pipeline`` or ``VisualPipeline``. 21 | 22 | .. code:: python 23 | 24 | # Regression Evaluation Imports 25 | 26 | from sklearn.linear_model import Ridge, Lasso 27 | from sklearn.model_selection import train_test_split 28 | 29 | from yellowbrick.regressor import PredictionError, ResidualsPlot 30 | from yellowbrick.regressor.alphas import AlphaSelection 31 | 32 | 33 | .. toctree:: 34 | :maxdepth: 2 35 | 36 | residuals 37 | peplot 38 | alphas 39 | -------------------------------------------------------------------------------- /docs/api/regressor/peplot.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from sklearn.linear_model import Lasso 4 | from sklearn.model_selection import train_test_split 5 | 6 | from yellowbrick.regressor import PredictionError 7 | 8 | 9 | if __name__ == '__main__': 10 | # Load the regression data set 11 | df = pd.read_csv("../../../examples/data/concrete/concrete.csv") 12 | 13 | feature_names = ['cement', 'slag', 'ash', 'water', 'splast', 'coarse', 'fine', 'age'] 14 | target_name = 'strength' 15 | 16 | # Get the X and y data from the DataFrame 17 | X = df[feature_names].as_matrix() 18 | y = df[target_name].as_matrix() 19 | 20 | # Create the train and test data 21 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 22 | 23 | # Instantiate the linear model and visualizer 24 | lasso = Lasso() 25 | visualizer = PredictionError(lasso) 26 | 27 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 28 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 29 | g = visualizer.poof(outpath="images/prediction_error.png") # Draw/show/poof the data 30 | -------------------------------------------------------------------------------- /docs/api/regressor/peplot.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Prediction Error Plot 4 | ===================== 5 | 6 | A prediction error plot shows the actual targets from the dataset against the predicted values generated by our model. This allows us to see how much variance is in the model. Data scientists can diagnose regression models using this plot by comparing against the 45 degree line, where the prediction exactly matches the model. 7 | 8 | .. code:: python 9 | 10 | # Load the data 11 | df = load_data('concrete') 12 | feature_names = ['cement', 'slag', 'ash', 'water', 'splast', 'coarse', 'fine', 'age'] 13 | target_name = 'strength' 14 | 15 | # Get the X and y data from the DataFrame 16 | X = df[feature_names].as_matrix() 17 | y = df[target_name].as_matrix() 18 | 19 | # Create the train and test data 20 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 21 | 22 | .. code:: python 23 | 24 | # Instantiate the linear model and visualizer 25 | lasso = Lasso() 26 | visualizer = PredictionError(lasso) 27 | 28 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 29 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 30 | g = visualizer.poof() # Draw/show/poof the data 31 | 32 | 33 | 34 | .. image:: images/prediction_error.png 35 | 36 | 37 | API Reference 38 | ------------- 39 | 40 | .. automodule:: yellowbrick.regressor.residuals 41 | :members: PredictionError 42 | :undoc-members: 43 | :show-inheritance: 44 | -------------------------------------------------------------------------------- /docs/api/regressor/residuals.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | 3 | from sklearn.linear_model import Ridge 4 | from sklearn.model_selection import train_test_split 5 | 6 | from yellowbrick.regressor import ResidualsPlot 7 | 8 | 9 | if __name__ == '__main__': 10 | # Load the regression data set 11 | df = pd.read_csv("../../../examples/data/concrete/concrete.csv") 12 | 13 | feature_names = ['cement', 'slag', 'ash', 'water', 'splast', 'coarse', 'fine', 'age'] 14 | target_name = 'strength' 15 | 16 | # Get the X and y data from the DataFrame 17 | X = df[feature_names].as_matrix() 18 | y = df[target_name].as_matrix() 19 | 20 | # Create the train and test data 21 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 22 | 23 | # Instantiate the linear model and visualizer 24 | ridge = Ridge() 25 | visualizer = ResidualsPlot(ridge) 26 | 27 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 28 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 29 | g = visualizer.poof(outpath="images/residuals.png") # Draw/show/poof the data 30 | -------------------------------------------------------------------------------- /docs/api/regressor/residuals.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Residuals Plot 4 | ============== 5 | 6 | A residuals plot shows the residuals on the vertical axis and the 7 | independent variable on the horizontal axis. If the points are randomly 8 | dispersed around the horizontal axis, a linear regression model is 9 | appropriate for the data; otherwise, a non-linear model is more 10 | appropriate. 11 | 12 | .. code:: python 13 | 14 | # Load the data 15 | df = load_data('concrete') 16 | feature_names = ['cement', 'slag', 'ash', 'water', 'splast', 'coarse', 'fine', 'age'] 17 | target_name = 'strength' 18 | 19 | # Get the X and y data from the DataFrame 20 | X = df[feature_names].as_matrix() 21 | y = df[target_name].as_matrix() 22 | 23 | # Create the train and test data 24 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 25 | 26 | .. code:: python 27 | 28 | # Instantiate the linear model and visualizer 29 | ridge = Ridge() 30 | visualizer = ResidualsPlot(ridge) 31 | 32 | visualizer.fit(X_train, y_train) # Fit the training data to the visualizer 33 | visualizer.score(X_test, y_test) # Evaluate the model on the test data 34 | g = visualizer.poof() # Draw/show/poof the data 35 | 36 | .. image:: images/residuals.png 37 | 38 | 39 | API Reference 40 | ------------- 41 | 42 | .. automodule:: yellowbrick.regressor.residuals 43 | :members: ResidualsPlot 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/api/text/corpus.py: -------------------------------------------------------------------------------- 1 | # Corpus loader for generating example images. 2 | 3 | import os 4 | from sklearn.datasets.base import Bunch 5 | 6 | def load_corpus(path): 7 | """ 8 | Loads and wrangles the passed in text corpus by path. 9 | """ 10 | 11 | # Check if the data exists, otherwise download or raise 12 | if not os.path.exists(path): 13 | raise ValueError(( 14 | "'{}' dataset has not been downloaded, " 15 | "use the yellowbrick.download module to fetch datasets" 16 | ).format(path)) 17 | 18 | # Read the directories in the directory as the categories. 19 | categories = [ 20 | cat for cat in os.listdir(path) 21 | if os.path.isdir(os.path.join(path, cat)) 22 | ] 23 | 24 | files = [] # holds the file names relative to the root 25 | data = [] # holds the text read from the file 26 | target = [] # holds the string of the category 27 | 28 | # Load the data from the files in the corpus 29 | for cat in categories: 30 | for name in os.listdir(os.path.join(path, cat)): 31 | files.append(os.path.join(path, cat, name)) 32 | target.append(cat) 33 | 34 | with open(os.path.join(path, cat, name), 'r') as f: 35 | data.append(f.read()) 36 | 37 | 38 | # Return the data bunch for use similar to the newsgroups example 39 | return Bunch( 40 | categories=categories, 41 | files=files, 42 | data=data, 43 | target=target, 44 | ) 45 | -------------------------------------------------------------------------------- /docs/api/text/freqdist.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | 3 | from corpus import load_corpus 4 | from collections import defaultdict 5 | from yellowbrick.text.freqdist import FreqDistVisualizer 6 | from sklearn.feature_extraction.text import CountVectorizer 7 | 8 | 9 | def freqdist(docs, outpath, corpus_kwargs={}, **kwargs): 10 | # Create a new figure and axes 11 | fig = plt.figure() 12 | ax = fig.add_subplot(111) 13 | 14 | # Vectorize the corpus 15 | vectorizer = CountVectorizer(**corpus_kwargs) 16 | docs = vectorizer.fit_transform(docs) 17 | features = vectorizer.get_feature_names() 18 | 19 | # Visualize the frequency distribution 20 | visualizer = FreqDistVisualizer(ax=ax, features=features, **kwargs) 21 | visualizer.fit(docs) 22 | visualizer.poof(outpath=outpath) 23 | 24 | 25 | if __name__ == '__main__': 26 | 27 | # Load the corpus 28 | corpus = load_corpus("../../../examples/data/hobbies") 29 | 30 | # Whole corpus visualization 31 | freqdist(corpus.data, "images/freqdist_corpus.png", orient='v') 32 | 33 | # Stopwords removed 34 | freqdist(corpus.data, "images/freqdist_stopwords.png", {'stop_words': 'english'}, orient='v') 35 | 36 | # Specific categories 37 | hobbies = defaultdict(list) 38 | for text, label in zip(corpus.data, corpus.target): 39 | hobbies[label].append(text) 40 | 41 | # Cooking Category 42 | freqdist(hobbies["cooking"], "images/freqdist_cooking.png", {'stop_words': 'english'}, orient='v') 43 | 44 | # Gaming Category 45 | freqdist(hobbies["gaming"], "images/freqdist_gaming.png", {'stop_words': 'english'}, orient='v') 46 | -------------------------------------------------------------------------------- /docs/api/text/images/freqdist_cooking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/freqdist_cooking.png -------------------------------------------------------------------------------- /docs/api/text/images/freqdist_corpus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/freqdist_corpus.png -------------------------------------------------------------------------------- /docs/api/text/images/freqdist_gaming.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/freqdist_gaming.png -------------------------------------------------------------------------------- /docs/api/text/images/freqdist_stopwords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/freqdist_stopwords.png -------------------------------------------------------------------------------- /docs/api/text/images/tsne_all_docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/tsne_all_docs.png -------------------------------------------------------------------------------- /docs/api/text/images/tsne_kmeans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/tsne_kmeans.png -------------------------------------------------------------------------------- /docs/api/text/images/tsne_no_labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/api/text/images/tsne_no_labels.png -------------------------------------------------------------------------------- /docs/api/text/index.rst: -------------------------------------------------------------------------------- 1 | .. -*- mode: rst -*- 2 | 3 | Text Modeling Visualizers 4 | ========================= 5 | 6 | Yellowbrick provides the `yellowbrick.text` module for text-specific visualizers. The `TextVisualizer` class specifically deals with datasets that are corpora and not simple numeric arrays or DataFrames, providing utilities for analyzing word distribution, showing document similarity, or simply wrapping some of the other standard visualizers with text-specific display properties. 7 | 8 | We currently have two text-specific visualizations implemented: 9 | 10 | - :doc:`freqdist`: plot the frequency of tokens in a corpus 11 | - :doc:`tsne`: plot similar documents closer together to discover clusters 12 | 13 | Note that the examples in this section require a corpus of text data, see :doc:`loading a text corpus ` for more information. 14 | 15 | .. code:: python 16 | 17 | from yellowbrick.text import FreqDistVisualizer 18 | from yellowbrick.text import TSNEVisualizer 19 | 20 | from sklearn.feature_extraction.text import TfidfVectorizer 21 | from sklearn.feature_extraction.text import CountVectorizer 22 | 23 | .. toctree:: 24 | :maxdepth: 2 25 | 26 | corpus 27 | freqdist 28 | tsne 29 | -------------------------------------------------------------------------------- /docs/api/text/tsne.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | 3 | from corpus import load_corpus 4 | from yellowbrick.text import TSNEVisualizer 5 | 6 | from sklearn.cluster import KMeans 7 | from sklearn.feature_extraction.text import TfidfVectorizer 8 | 9 | 10 | def tsne(docs, target, outpath, **kwargs): 11 | # Create a new figure and axes 12 | fig = plt.figure() 13 | ax = fig.add_subplot(111) 14 | 15 | # Visualize the frequency distribution 16 | visualizer = TSNEVisualizer(ax=ax, **kwargs) 17 | visualizer.fit(docs, target) 18 | visualizer.poof(outpath=outpath) 19 | 20 | 21 | if __name__ == '__main__': 22 | 23 | # Load and vectorize the corpus 24 | corpus = load_corpus("../../../examples/data/hobbies") 25 | tfidf = TfidfVectorizer() 26 | 27 | docs = tfidf.fit_transform(corpus.data) 28 | target = corpus.target 29 | 30 | # Whole corpus visualization 31 | tsne(docs, target, "images/tsne_all_docs.png") 32 | 33 | # No labels 34 | tsne(docs, None, "images/tsne_no_labels.png", labels=["documents"]) 35 | 36 | # Apply clustering instead of class names. 37 | clusters = KMeans(n_clusters=5) 38 | clusters.fit(docs) 39 | 40 | centers = ["c{}".format(c) for c in clusters.labels_] 41 | tsne(docs, centers, "images/tsne_kmeans.png") 42 | -------------------------------------------------------------------------------- /docs/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/favicon.ico -------------------------------------------------------------------------------- /docs/images/matplotlib_anatomy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/matplotlib_anatomy.png -------------------------------------------------------------------------------- /docs/images/matplotlib_pbpython_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/matplotlib_pbpython_example.png -------------------------------------------------------------------------------- /docs/images/matplotlib_single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/matplotlib_single.png -------------------------------------------------------------------------------- /docs/images/quickstart/bikeshare_ols_residuals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/quickstart/bikeshare_ols_residuals.png -------------------------------------------------------------------------------- /docs/images/quickstart/bikeshare_rank2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/quickstart/bikeshare_rank2d.png -------------------------------------------------------------------------------- /docs/images/quickstart/bikeshare_ridge_alphas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/quickstart/bikeshare_ridge_alphas.png -------------------------------------------------------------------------------- /docs/images/quickstart/bikeshare_ridge_prediction_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/quickstart/bikeshare_ridge_prediction_error.png -------------------------------------------------------------------------------- /docs/images/quickstart/temp_feelslike_jointplot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/quickstart/temp_feelslike_jointplot.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_bagging_classifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_bagging_classifier.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_extra_trees_classifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_extra_trees_classifier.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_kneighbors_classifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_kneighbors_classifier.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_linear_svc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_linear_svc.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_logistic_regression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_logistic_regression.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_logistic_regression_cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_logistic_regression_cv.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_nu_svc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_nu_svc.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_random_forest_classifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_random_forest_classifier.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_sgd_classifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_sgd_classifier.png -------------------------------------------------------------------------------- /docs/images/tutorial/modelselect_svc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/tutorial/modelselect_svc.png -------------------------------------------------------------------------------- /docs/images/visualizers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/visualizers.png -------------------------------------------------------------------------------- /docs/images/yellowbrickroad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/docs/images/yellowbrickroad.jpg -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | # Library Dependencies 2 | matplotlib>=3.0.2 3 | scipy>=1.0.0 4 | scikit-learn>=0.20 5 | numpy>=1.13.0 6 | cycler>=0.10.0 7 | 8 | # Documentation Dependencies 9 | Sphinx>=1.8.3 10 | sphinx-rtd-theme>=0.4.2 11 | numpydoc>=0.8.0 -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | data/* 2 | -------------------------------------------------------------------------------- /examples/NealHumphrey/.gitignore: -------------------------------------------------------------------------------- 1 | /data/* 2 | !/data/readme.md -------------------------------------------------------------------------------- /examples/bbengfort/.gitignore: -------------------------------------------------------------------------------- 1 | data/* 2 | -------------------------------------------------------------------------------- /examples/bbengfort/figures/nocr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/examples/bbengfort/figures/nocr.png -------------------------------------------------------------------------------- /examples/bbengfort/figures/nopoofnofinal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/examples/bbengfort/figures/nopoofnofinal.png -------------------------------------------------------------------------------- /examples/bbengfort/figures/notsne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/examples/bbengfort/figures/notsne.png -------------------------------------------------------------------------------- /examples/bbengfort/figures/pipeline_prototype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/examples/bbengfort/figures/pipeline_prototype.png -------------------------------------------------------------------------------- /examples/gary-mayfield/.gitignore: -------------------------------------------------------------------------------- 1 | train.csv -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ## Dependencies 2 | matplotlib>=1.5.1 3 | scipy>=0.19 4 | scikit-learn>=0.19 5 | numpy>=1.13.0 6 | cycler>=0.10.0 7 | 8 | ## Testing Requirements (uncomment for development) 9 | #pytest>=3.4.1 10 | #pytest-cov>=2.5.1 11 | #pytest-flakes>=2.0.0 12 | #pytest-spec>=1.1.0 13 | #coverage>=4.4.1 14 | #requests>=2.18.3 15 | #six==1.11.0 16 | 17 | ## Python 2 Testing Requirements 18 | #mock>=2.0.0 19 | 20 | ## Optional Testing Dependencies (uncomment for development) 21 | #nltk>=3.2 22 | #pandas>=0.20 23 | 24 | ## Documentation (uncomment to build documentation) 25 | #Sphinx>=1.7.1 26 | #sphinx-rtd-theme>=0.2.4 27 | #numpydoc>=0.7.0 28 | 29 | ## Build Requirements (uncomment for deployment) 30 | #wheel>=0.29.0 31 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | description-file = DESCRIPTION.txt 3 | 4 | [wheel] 5 | universal = 1 6 | 7 | [test] 8 | local_freetype = True 9 | tests = True 10 | 11 | [aliases] 12 | test=pytest 13 | 14 | [tool:pytest] 15 | addopts = --verbose --cov=yellowbrick --flakes --spec 16 | python_files = tests/* 17 | flakes-ignore = 18 | __init__.py UnusedImport 19 | __init__.py ImportStarUsed 20 | test_*.py ImportStarUsed 21 | test_*.py ImportStarUsage 22 | examples/* ALL 23 | tests/checks.py ALL 24 | spec_header_format = {class_name} ({path}) 25 | -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | # Dataset Fixture Downloads 2 | fixtures/* 3 | 4 | # VisualTestCase Outputs 5 | actual_images/* 6 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | # tests 2 | # Testing package for the yellowbrick visualization library. 3 | # 4 | # Author: Rebecca Bilbro 5 | # Created: Wed May 18 10:48:46 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [0c5ba04] benjamin@bengfort.com $ 11 | 12 | """ 13 | Testing package for the yellowbrick visualization library. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | import unittest 21 | import matplotlib 22 | 23 | ## IMPORTANT! Set matplotlib to use the Agg backend before imported anywhere! 24 | matplotlib.use('Agg') 25 | 26 | 27 | ########################################################################## 28 | ## Test Constants 29 | ########################################################################## 30 | 31 | EXPECTED_VERSION = "0.5" 32 | 33 | 34 | ########################################################################## 35 | ## Initialization Tests 36 | ########################################################################## 37 | 38 | class InitializationTests(unittest.TestCase): 39 | 40 | def test_sanity(self): 41 | """ 42 | Test that tests work by confirming 7-3 = 4 43 | """ 44 | self.assertEqual(7-3, 4, "The world went wrong!!") 45 | 46 | def test_import(self): 47 | """ 48 | Assert that the yellowbrick package can be imported. 49 | """ 50 | try: 51 | import yellowbrick 52 | except ImportError: 53 | self.fail("Could not import the yellowbrick library!") 54 | 55 | def test_version(self): 56 | """ 57 | Assert that the test version matches the library version. 58 | """ 59 | try: 60 | import yellowbrick as yb 61 | self.assertEqual(yb.__version__, EXPECTED_VERSION) 62 | except ImportError: 63 | self.fail("Could not import the yellowbrick library!") 64 | -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_boundaries/test_integrated_plot_numpy_named_arrays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_boundaries/test_integrated_plot_numpy_named_arrays.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_boundaries/test_real_data_set_viz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_boundaries/test_real_data_set_viz.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_class_balance/test_class_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_class_balance/test_class_report.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_classification_report/test_class_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_classification_report/test_class_report.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_confusion_matrix/test_confusion_matrix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_confusion_matrix/test_confusion_matrix.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_confusion_matrix/test_inverse_mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_confusion_matrix/test_inverse_mapping.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_confusion_matrix/test_one_class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_confusion_matrix/test_one_class.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_rocauc/test_multiclass_rocauc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_rocauc/test_multiclass_rocauc.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_classes.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_curves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_curves.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_macro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_macro.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_macro_no_micro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_macro_no_micro.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_micro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_rocauc/test_rocauc_no_micro.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_threshold/test_threshold_viz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_threshold/test_threshold_viz.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_threshold/test_threshold_viz_quick_method_read_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_threshold/test_threshold_viz_quick_method_read_data.png -------------------------------------------------------------------------------- /tests/baseline_images/test_classifier/test_threshold/test_threshold_viz_read_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_classifier/test_threshold/test_threshold_viz_read_data.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_elbow/test_calinski_harabaz_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_elbow/test_calinski_harabaz_metric.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_elbow/test_distortion_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_elbow/test_distortion_metric.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_elbow/test_integrated_kmeans_elbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_elbow/test_integrated_kmeans_elbow.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_elbow/test_integrated_mini_batch_kmeans_elbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_elbow/test_integrated_mini_batch_kmeans_elbow.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_elbow/test_silhouette_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_elbow/test_silhouette_metric.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_elbow/test_timings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_elbow/test_timings.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_silhouette/test_integrated_kmeans_silhouette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_silhouette/test_integrated_kmeans_silhouette.png -------------------------------------------------------------------------------- /tests/baseline_images/test_cluster/test_silhouette/test_integrated_mini_batch_kmeans_silhouette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_cluster/test_silhouette/test_integrated_mini_batch_kmeans_silhouette.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_importances/test_integration_coef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_importances/test_integration_coef.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_importances/test_integration_feature_importances.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_importances/test_integration_feature_importances.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_importances/test_integration_quick_method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_importances/test_integration_quick_method.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_jointplot/test_jointplot_has_no_errors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_jointplot/test_jointplot_has_no_errors.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_jointplot/test_jointplot_integrated_has_no_errors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_jointplot/test_jointplot_integrated_has_no_errors.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_pca/test_scale_true_2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_pca/test_scale_true_2d.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_pcoords/test_integrated_pcoords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_pcoords/test_integrated_pcoords.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_pcoords/test_normalized_pcoords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_pcoords/test_normalized_pcoords.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_pcoords/test_parallel_coords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_pcoords/test_parallel_coords.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_radviz/test_integrated_radviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_radviz/test_integrated_radviz.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_radviz/test_radviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_radviz/test_radviz.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_rankd/test_integrated_rankd1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_rankd/test_integrated_rankd1.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_rankd/test_integrated_rankd2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_rankd/test_integrated_rankd2.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_rankd/test_rankd1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_rankd/test_rankd1.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_rankd/test_rankd2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_rankd/test_rankd2.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_scatter/test_scatter_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_scatter/test_scatter_image.png -------------------------------------------------------------------------------- /tests/baseline_images/test_features/test_scatter/test_scatter_image_fail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_features/test_scatter/test_scatter_image_fail.png -------------------------------------------------------------------------------- /tests/baseline_images/test_regressor/test_alphas/test_similar_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_regressor/test_alphas/test_similar_image.png -------------------------------------------------------------------------------- /tests/baseline_images/test_regressor/test_residuals/test_pred_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_regressor/test_residuals/test_pred_error.png -------------------------------------------------------------------------------- /tests/baseline_images/test_regressor/test_residuals/test_resid_plots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_regressor/test_residuals/test_resid_plots.png -------------------------------------------------------------------------------- /tests/baseline_images/test_text/test_freqdist/test_integrated_freqdist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_text/test_freqdist/test_integrated_freqdist.png -------------------------------------------------------------------------------- /tests/baseline_images/test_text/test_tsne/test_integrated_tsne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_text/test_tsne/test_integrated_tsne.png -------------------------------------------------------------------------------- /tests/baseline_images/test_text/test_tsne/test_make_classification_tsne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_text/test_tsne/test_make_classification_tsne.png -------------------------------------------------------------------------------- /tests/baseline_images/test_text/test_tsne/test_make_classification_tsne_class_labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_text/test_tsne/test_make_classification_tsne_class_labels.png -------------------------------------------------------------------------------- /tests/baseline_images/test_text/test_tsne/test_no_target_tsne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/baseline_images/test_text/test_tsne/test_no_target_tsne.png -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | # tests.conftest 2 | # Global definitions for Yellowbrick PyTest 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Fri Mar 02 11:53:55 2018 -0500 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: conftest.py [] benjamin@bengfort.com $ 11 | 12 | """ 13 | Global definitions for Yellowbrick PyTest 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | import os 21 | 22 | 23 | ########################################################################## 24 | ## PyTest Hooks 25 | ########################################################################## 26 | 27 | def pytest_itemcollected(item): 28 | """ 29 | A reporting hook that is called when a test item is collected. 30 | 31 | This function can do many things to modify test output and test 32 | handling and in the future can be modified with those tasks. Right now 33 | we're currently only using this function to create node ids that 34 | pytest-spec knows how to parse and display as spec-style output. 35 | 36 | .. seealso:: https://stackoverflow.com/questions/28898919/use-docstrings-to-list-tests-in-py-test 37 | """ 38 | 39 | # Ignore Session and PyFlake tests that are generated automatically 40 | if not hasattr(item.parent, 'obj'): 41 | return 42 | 43 | # Collect test objects to inspect 44 | parent = item.parent.obj 45 | node = item.obj 46 | 47 | # Goal: produce a parsable string of the relative path, parent docstring 48 | # or class name, and the docstring of the test case, then set the nodeid 49 | # so that pytest-spec will correctly parse the information. 50 | path = os.path.relpath(str(item.fspath)) 51 | prefix = parent.__doc__ or getattr(parent, '__name__', parent.__class__.__name__) 52 | suffix = node.__doc__ if node.__doc__ else node.__name__ 53 | 54 | if prefix or suffix: 55 | item._nodeid = '::'.join((path, prefix.strip(), suffix.strip())) 56 | -------------------------------------------------------------------------------- /tests/requirements.txt: -------------------------------------------------------------------------------- 1 | # Library Dependencies 2 | matplotlib>=1.5.1 3 | scipy>=0.19 4 | scikit-learn>=0.19 5 | numpy>=1.13.0 6 | cycler>=0.10.0 7 | 8 | # Testing Requirements 9 | pytest>=3.4.1 10 | pytest-cov>=2.5.1 11 | pytest-flakes>=2.0.0 12 | pytest-spec>=1.1.0 13 | coverage>=4.4.1 14 | requests>=2.18.3 15 | six==1.11.0 16 | 17 | # Python 2 Testing Requirements 18 | mock>=2.0.0 19 | 20 | # Optional Testing Dependencies 21 | nltk>=3.2 22 | pandas>=0.20 23 | -------------------------------------------------------------------------------- /tests/test_classifier/__init__.py: -------------------------------------------------------------------------------- 1 | #Backend must be set before first use. 2 | # Setting backend here allows us to run tests just in this folder, without running the whole yellowbrick.tests folder 3 | # This command will have no effect if backend has already been set previously. 4 | import matplotlib 5 | matplotlib.use('Agg') 6 | 7 | -------------------------------------------------------------------------------- /tests/test_classifier/test_class_balance.py: -------------------------------------------------------------------------------- 1 | 2 | from yellowbrick.classifier.class_balance import * 3 | from tests.base import VisualTestCase 4 | from sklearn.svm import LinearSVC 5 | 6 | ########################################################################## 7 | ## Data 8 | ########################################################################## 9 | 10 | X = np.array( 11 | [[ 2.318, 2.727, 4.260, 7.212, 4.792], 12 | [ 2.315, 2.726, 4.295, 7.140, 4.783,], 13 | [ 2.315, 2.724, 4.260, 7.135, 4.779,], 14 | [ 2.110, 3.609, 4.330, 7.985, 5.595,], 15 | [ 2.110, 3.626, 4.330, 8.203, 5.621,], 16 | [ 2.110, 3.620, 4.470, 8.210, 5.612,]] 17 | ) 18 | 19 | y = np.array([1, 1, 0, 1, 0, 0]) 20 | 21 | ########################################################################## 22 | ## Tests 23 | ########################################################################## 24 | 25 | class ClassBalanceTests(VisualTestCase): 26 | 27 | def test_class_report(self): 28 | """ 29 | Assert no errors occur during classification report integration 30 | """ 31 | model = LinearSVC() 32 | model.fit(X,y) 33 | visualizer = ClassBalance(model, classes=["A", "B"]) 34 | visualizer.score(X,y) 35 | self.assert_images_similar(visualizer) 36 | -------------------------------------------------------------------------------- /tests/test_classifier/test_classification_report.py: -------------------------------------------------------------------------------- 1 | 2 | from yellowbrick.classifier.classification_report import * 3 | from tests.base import VisualTestCase 4 | 5 | from sklearn.svm import LinearSVC 6 | 7 | ########################################################################## 8 | ## Data 9 | ########################################################################## 10 | 11 | X = np.array( 12 | [[ 2.318, 2.727, 4.260, 7.212, 4.792], 13 | [ 2.315, 2.726, 4.295, 7.140, 4.783,], 14 | [ 2.315, 2.724, 4.260, 7.135, 4.779,], 15 | [ 2.110, 3.609, 4.330, 7.985, 5.595,], 16 | [ 2.110, 3.626, 4.330, 8.203, 5.621,], 17 | [ 2.110, 3.620, 4.470, 8.210, 5.612,]] 18 | ) 19 | 20 | y = np.array([1, 1, 0, 1, 0, 0]) 21 | 22 | ########################################################################## 23 | ## Test for Classification Report 24 | ########################################################################## 25 | 26 | class ClassificationReportTests(VisualTestCase): 27 | 28 | def test_class_report(self): 29 | """ 30 | Assert no errors occur during classification report integration 31 | """ 32 | model = LinearSVC() 33 | model.fit(X,y) 34 | visualizer = ClassificationReport(model, classes=["A", "B"]) 35 | visualizer.score(X,y) 36 | self.assert_images_similar(visualizer) 37 | -------------------------------------------------------------------------------- /tests/test_cluster/__init__.py: -------------------------------------------------------------------------------- 1 | # tests.test_cluster 2 | # Tests for the cluster visualizers. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Thu Mar 23 17:37:57 2017 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [241edca] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for the cluster visualizers. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | -------------------------------------------------------------------------------- /tests/test_cluster/test_base.py: -------------------------------------------------------------------------------- 1 | # tests.test_cluster.test_base 2 | # Test the cluster base visualizers. 3 | # 4 | # Author: Rebecca Bilbro 5 | # Created: Thu Mar 23 17:38:42 2017 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: test_base.py [241edca] benjamin@bengfort.com $ 11 | 12 | """ 13 | Test the cluster base visualizers. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | import unittest 21 | 22 | from yellowbrick.exceptions import YellowbrickTypeError 23 | from yellowbrick.cluster.base import ClusteringScoreVisualizer 24 | 25 | from sklearn.svm import SVC, SVR 26 | from sklearn.linear_model import Ridge, RidgeCV, LinearRegression 27 | from sklearn.ensemble import RandomForestClassifier 28 | from sklearn.cluster import KMeans, MiniBatchKMeans, AffinityPropagation 29 | from sklearn.cluster import MeanShift, DBSCAN, Birch 30 | 31 | ########################################################################## 32 | ## Clustering Base Test Cases 33 | ########################################################################## 34 | 35 | class ClusterBaseTests(unittest.TestCase): 36 | 37 | def test_clusterer_enforcement(self): 38 | """ 39 | Assert that only clustering estimators can be passed to cluster viz 40 | """ 41 | nomodels = [ 42 | SVC, SVR, Ridge, RidgeCV, LinearRegression, RandomForestClassifier 43 | ] 44 | 45 | for nomodel in nomodels: 46 | with self.assertRaises(YellowbrickTypeError): 47 | ClusteringScoreVisualizer(nomodel()) 48 | 49 | models = [ 50 | KMeans, MiniBatchKMeans, AffinityPropagation, MeanShift, DBSCAN, Birch 51 | ] 52 | 53 | for model in models: 54 | try: 55 | ClusteringScoreVisualizer(model()) 56 | except YellowbrickTypeError: 57 | self.fail("could not pass clustering estimator to visualizer") 58 | -------------------------------------------------------------------------------- /tests/test_features/__init__.py: -------------------------------------------------------------------------------- 1 | # tests.test_features 2 | # Tests for the feature visualizers 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Thu Oct 06 11:19:55 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [1d407ab] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for the feature visualizers 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | -------------------------------------------------------------------------------- /tests/test_features/test_base.py: -------------------------------------------------------------------------------- 1 | # tests.test_features.test_base 2 | # Tests for the feature selection and analysis base classes 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Fri Oct 07 13:43:55 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: test_base.py [2e898a6] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for the feature selection and analysis base classes 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | import unittest 21 | 22 | from yellowbrick.base import * 23 | from yellowbrick.features.base import * 24 | from sklearn.base import BaseEstimator, TransformerMixin 25 | 26 | 27 | ########################################################################## 28 | ## FeatureVisualizer Base Tests 29 | ########################################################################## 30 | 31 | class FeatureVisualizerBaseTests(unittest.TestCase): 32 | 33 | def test_subclass(self): 34 | """ 35 | Assert the feature visualizer is in its rightful place 36 | """ 37 | visualizer = FeatureVisualizer() 38 | self.assertIsInstance(visualizer, TransformerMixin) 39 | self.assertIsInstance(visualizer, BaseEstimator) 40 | self.assertIsInstance(visualizer, Visualizer) 41 | 42 | # def test_interface(self): 43 | # """ 44 | # Test the feature visualizer interface 45 | # """ 46 | # 47 | # visualizer = FeatureVisualizer() 48 | # with self.assertRaises(NotImplementedError): 49 | # visualizer.poof() 50 | -------------------------------------------------------------------------------- /tests/test_features/tests/actual_images/test_features/test_rankd/test_integrated_rankd1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/test_features/tests/actual_images/test_features/test_rankd/test_integrated_rankd1.png -------------------------------------------------------------------------------- /tests/test_features/tests/actual_images/test_features/test_rankd/test_rankd1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/test_features/tests/actual_images/test_features/test_rankd/test_rankd1.png -------------------------------------------------------------------------------- /tests/test_regressor/__init__.py: -------------------------------------------------------------------------------- 1 | # tests.test_regressor 2 | # Tests for the regressor visualizers. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Mon Mar 06 22:01:34 2017 -0500 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [7d3f5e6] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for the regressor visualizers. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | -------------------------------------------------------------------------------- /tests/test_style/__init__.py: -------------------------------------------------------------------------------- 1 | # tests.test_style 2 | # Tests for the style handling module of yellowbrick. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Tue Oct 04 16:21:21 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [c6aff34] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for the style handling module of yellowbrick. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | -------------------------------------------------------------------------------- /tests/test_text/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DistrictDataLabs/yellowbrick-docs-zh/3118e67f2bed561a00885e6edb2cabb3520ad66b/tests/test_text/__init__.py -------------------------------------------------------------------------------- /tests/test_text/test_base.py: -------------------------------------------------------------------------------- 1 | # tests.test_text.test_base 2 | # Tests for the text visualization base classes 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Mon Feb 20 06:34:50 2017 -0500 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: test_base.py [6aa9198] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for the text visualization base classes 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | import unittest 21 | 22 | from yellowbrick.base import * 23 | from yellowbrick.text.base import * 24 | from sklearn.base import BaseEstimator, TransformerMixin 25 | 26 | 27 | ########################################################################## 28 | ## TextVisualizer Base Tests 29 | ########################################################################## 30 | 31 | class TextVisualizerBaseTests(unittest.TestCase): 32 | 33 | def test_subclass(self): 34 | """ 35 | Assert the text visualizer is subclassed correctly 36 | """ 37 | visualizer = TextVisualizer() 38 | self.assertIsInstance(visualizer, TransformerMixin) 39 | self.assertIsInstance(visualizer, BaseEstimator) 40 | self.assertIsInstance(visualizer, Visualizer) 41 | 42 | # def test_interface(self): 43 | # """ 44 | # Test the feature visualizer interface 45 | # """ 46 | # 47 | # visualizer = TextVisualizer() 48 | # with self.assertRaises(NotImplementedError): 49 | # visualizer.poof() 50 | -------------------------------------------------------------------------------- /tests/test_text/test_freqdist.py: -------------------------------------------------------------------------------- 1 | # tests.test_text.test_freqdist 2 | # Tests for the frequency distribution visualization 3 | # 4 | # Author: Rebecca Bilbro 5 | # Created: 2017-03-22 15:27 6 | # 7 | # Copyright (C) 2017 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: test_freqdist.py [bd9cbb9] rebecca.bilbro@bytecubed.com $ 11 | 12 | """ 13 | Tests for the frequency distribution text visualization 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | from yellowbrick.text.freqdist import * 21 | from tests.dataset import DatasetMixin 22 | from tests.base import VisualTestCase 23 | from sklearn.feature_extraction.text import CountVectorizer 24 | 25 | 26 | ########################################################################## 27 | ## FreqDist Tests 28 | ########################################################################## 29 | 30 | class FreqDistTests(VisualTestCase, DatasetMixin): 31 | 32 | 33 | def test_integrated_freqdist(self): 34 | """ 35 | Assert no errors occur during freqdist integration 36 | """ 37 | corpus = self.load_data('hobbies') 38 | vectorizer = CountVectorizer() 39 | 40 | docs = vectorizer.fit_transform(corpus.data) 41 | features = vectorizer.get_feature_names() 42 | 43 | visualizer = FreqDistVisualizer(features) 44 | visualizer.fit(docs) 45 | 46 | visualizer.poof() 47 | self.assert_images_similar(visualizer) 48 | -------------------------------------------------------------------------------- /tests/test_text/test_postag.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf8 -*- 2 | # tests.test_text.test_postag 3 | # Tests for the part-of-speech tagging visualization 4 | # 5 | # Author: Rebecca Bilbro 6 | # Created: 2017-03-22 15:46 7 | # 8 | # Copyright (C) 2017 District Data Labs 9 | # For license information, see LICENSE.txt 10 | # 11 | # ID: test_postag.py [bd9cbb9] rebecca.bilbro@bytecubed.com $ 12 | 13 | """ 14 | Tests for the part-of-speech tagging visualization 15 | """ 16 | 17 | ########################################################################## 18 | ## Imports 19 | ########################################################################## 20 | 21 | import pytest 22 | 23 | from yellowbrick.text.postag import * 24 | 25 | 26 | try: 27 | import nltk 28 | from nltk import pos_tag, word_tokenize 29 | except ImportError: 30 | nltk = None 31 | 32 | 33 | ########################################################################## 34 | ## Data 35 | ########################################################################## 36 | 37 | pie = """ 38 | In a small saucepan, combine sugar and eggs 39 | until well blended. Cook over low heat, stirring 40 | constantly, until mixture reaches 160° and coats 41 | the back of a metal spoon. Remove from the heat. 42 | Stir in chocolate and vanilla until smooth. Cool 43 | to lukewarm (90°), stirring occasionally. In a small 44 | bowl, cream butter until light and fluffy. Add cooled 45 | chocolate mixture; beat on high speed for 5 minutes 46 | or until light and fluffy. In another large bowl, 47 | beat cream until it begins to thicken. Add 48 | confectioners' sugar; beat until stiff peaks form. 49 | Fold into chocolate mixture. Pour into crust. Chill 50 | for at least 6 hours before serving. Garnish with 51 | whipped cream and chocolate curls if desired. 52 | """ 53 | 54 | 55 | ########################################################################## 56 | ## PosTag Tests 57 | ########################################################################## 58 | 59 | class TestPosTag(object): 60 | """ 61 | PosTag (Part of Speech Tagging Visualizer) Tests 62 | """ 63 | 64 | @pytest.mark.skipif(nltk is None, reason="test requires nltk") 65 | def test_integrated_postag(self): 66 | """ 67 | Assert no errors occur during postag integration 68 | """ 69 | tokens = word_tokenize(pie) 70 | tagged = pos_tag(tokens) 71 | 72 | visualizer = PosTagVisualizer() 73 | visualizer.transform(tagged) 74 | -------------------------------------------------------------------------------- /tests/test_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # tests.test_utils 2 | # Tests for Yellowbrick utilities 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Thu May 18 15:15:05 2017 -0400 6 | # 7 | # Copyright (C) 2017 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [79cd8cf] benjamin@bengfort.com $ 11 | 12 | """ 13 | Tests for Yellowbrick utilities 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | -------------------------------------------------------------------------------- /yellowbrick/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick 2 | # A suite of visual analysis and diagnostic tools for machine learning. 3 | # 4 | # Author: Rebecca Bilbro 5 | # Created: Wed May 18 10:46:33 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [0c5ba04] benjamin@bengfort.com $ 11 | 12 | """ 13 | A suite of visual analysis and diagnostic tools to facilitate feature 14 | selection, model selection, and parameter tuning for machine learning. 15 | """ 16 | 17 | ########################################################################## 18 | ## Imports 19 | ########################################################################## 20 | 21 | # Capture the original matplotlib rcParams 22 | import matplotlib as mpl 23 | _orig_rc_params = mpl.rcParams.copy() 24 | 25 | # Import the version number at the top level 26 | from .version import get_version 27 | 28 | # Import the style management functions 29 | from .style.rcmod import reset_defaults, reset_orig 30 | from .style.rcmod import set_aesthetic, set_style, set_palette 31 | from .style.palettes import color_palette, set_color_codes 32 | 33 | # Import yellowbrick functionality to the top level 34 | # TODO: review top-level functionality 35 | from .anscombe import anscombe 36 | from .classifier import ROCAUC, ClassBalance, ClassificationScoreVisualizer 37 | # from .classifier import crplot, rocplot 38 | # from .regressor import peplot, residuals_plot 39 | 40 | 41 | ########################################################################## 42 | ## Set default aesthetics 43 | ########################################################################## 44 | 45 | set_aesthetic() # NOTE: modifies mpl.rcParams 46 | 47 | 48 | ########################################################################## 49 | ## Package Version 50 | ########################################################################## 51 | 52 | __version__ = get_version(short=True) 53 | -------------------------------------------------------------------------------- /yellowbrick/classifier/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.classifier 2 | # Visualizations related to evaluating Scikit-Learn classification models 3 | # 4 | # Author: Rebecca Bilbro 5 | # Author: Benjamin Bengfort 6 | # Author: Neal Humphrey 7 | # Author: Jason Keung 8 | # Created: Wed May 18 12:39:40 2016 -0400 9 | # 10 | # Copyright (C) 2016 District Data Labs 11 | # For license information, see LICENSE.txt 12 | # 13 | # ID: __init__.py [5eee25b] benjamin@bengfort.com $ 14 | 15 | """ 16 | Visualizations related to evaluating Scikit-Learn classification models. 17 | """ 18 | 19 | ########################################################################## 20 | ## Imports 21 | ########################################################################## 22 | 23 | ## Hoist visualizers into the classifier namespace 24 | from ..base import ScoreVisualizer 25 | from .base import ClassificationScoreVisualizer 26 | from .class_balance import ClassBalance, ClassPredictionError 27 | from .classification_report import ClassificationReport, classification_report 28 | from .confusion_matrix import ConfusionMatrix 29 | from .learning_curve import LearningCurveVisualizer, learning_curve_plot 30 | from .rocauc import ROCAUC, roc_auc 31 | from .boundaries import decisionviz, DecisionBoundariesVisualizer, DecisionViz 32 | from .threshold import ThreshViz, ThresholdVisualizer, thresholdviz 33 | -------------------------------------------------------------------------------- /yellowbrick/cluster/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.cluster 2 | # Visualizers for Cluster analysis and diagnostics 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Thu Mar 23 17:26:57 2017 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [241edca] benjamin@bengfort.com $ 11 | 12 | """ 13 | Visualizers for Cluster analysis and diagnostics, particularly visualizations 14 | related to evaluating Scikit-Learn clustering models. 15 | """ 16 | 17 | ########################################################################## 18 | ## Imports 19 | ########################################################################## 20 | 21 | ## Hoist visualizers into the cluster namespace 22 | from .base import * 23 | from .elbow import * 24 | from .silhouette import * 25 | -------------------------------------------------------------------------------- /yellowbrick/cluster/base.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.cluster.base 2 | # Base class for cluster visualizers. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Thu Mar 23 17:28:38 2017 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: base.py [241edca] benjamin@bengfort.com $ 11 | 12 | """ 13 | Base class for cluster visualizers. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | from ..utils import isclusterer 21 | from ..base import ScoreVisualizer 22 | from ..exceptions import YellowbrickTypeError 23 | 24 | 25 | ## Packages for export 26 | __all__ = [ 27 | "ClusteringScoreVisualizer", 28 | ] 29 | 30 | 31 | ########################################################################## 32 | ## Clustering Score Visualization Base Object 33 | ########################################################################## 34 | 35 | class ClusteringScoreVisualizer(ScoreVisualizer): 36 | """ 37 | Base class for all ScoreVisualizers that evaluate a clustering estimator. 38 | 39 | The primary functionality of this class is to perform a check to ensure 40 | that the wrapped estimator is a cluster estimator, otherwise a 41 | ``YewllowbrickTypeError`` exception is raised. 42 | """ 43 | 44 | def __init__(self, model, ax=None, **kwargs): 45 | if not isclusterer(model): 46 | raise YellowbrickTypeError( 47 | "The supplied model is not a clustering estimator; try a " 48 | "classifier or regression score visualizer instead!" 49 | ) 50 | 51 | super(ClusteringScoreVisualizer, self).__init__(model, ax=ax, **kwargs) 52 | -------------------------------------------------------------------------------- /yellowbrick/exceptions.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.exceptions 2 | # Exceptions hierarchy for the yellowbrick library 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Fri Jun 03 10:39:41 2016 -0700 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: exceptions.py [cb75e0e] benjamin@bengfort.com $ 11 | 12 | """ 13 | Exceptions and warnings hierarchy for the yellowbrick library 14 | """ 15 | 16 | ########################################################################## 17 | ## Exceptions Hierarchy 18 | ########################################################################## 19 | 20 | 21 | class YellowbrickError(Exception): 22 | """ 23 | The root exception for all yellowbrick related errors. 24 | """ 25 | pass 26 | 27 | 28 | class VisualError(YellowbrickError): 29 | """ 30 | A problem when interacting with matplotlib or the display framework. 31 | """ 32 | pass 33 | 34 | 35 | class ModelError(YellowbrickError): 36 | """ 37 | A problem when interacting with sklearn or the ML framework. 38 | """ 39 | pass 40 | 41 | 42 | class NotFitted(ModelError): 43 | """ 44 | An action was called that requires a fitted model. 45 | """ 46 | pass 47 | 48 | 49 | class YellowbrickTypeError(YellowbrickError, TypeError): 50 | """ 51 | There was an unexpected type or none for a property or input. 52 | """ 53 | pass 54 | 55 | 56 | class YellowbrickValueError(YellowbrickError, ValueError): 57 | """ 58 | A bad value was passed into a function. 59 | """ 60 | pass 61 | 62 | 63 | class YellowbrickKeyError(YellowbrickError, KeyError): 64 | """ 65 | An invalid key was used in a hash (dict or set). 66 | """ 67 | pass 68 | 69 | 70 | class YellowbrickWarning(UserWarning): 71 | """ 72 | Warning class used to notify users of Yellowbrick-specific issues. 73 | """ 74 | pass 75 | 76 | 77 | class DataWarning(YellowbrickWarning): 78 | """ 79 | The supplied data has an issue that may produce unexpected visualizations. 80 | """ 81 | pass 82 | -------------------------------------------------------------------------------- /yellowbrick/features/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.features 2 | # Visualizers for feature analysis and diagnostics. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Mon Oct 03 21:30:18 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [0f4b236] benjamin@bengfort.com $ 11 | 12 | """ 13 | Visualizers for feature analysis and diagnostics. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | ## Hoist visualizers into the features namespace 21 | from .pcoords import ParallelCoordinates, parallel_coordinates 22 | from .radviz import RadialVisualizer, RadViz, radviz 23 | from .rankd import Rank1D, rank1d, Rank2D, rank2d 24 | from .scatter import ScatterViz, ScatterVisualizer, scatterviz 25 | from .jointplot import JointPlotVisualizer 26 | from .pca import PCADecomposition, pca_decomposition 27 | from .importances import FeatureImportances, feature_importances 28 | -------------------------------------------------------------------------------- /yellowbrick/gridsearch/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Visualizers for the results of GridSearchCV. 3 | """ 4 | 5 | ########################################################################## 6 | ## Imports 7 | ########################################################################## 8 | 9 | ## Hoist visualizers into the gridsearch namespace 10 | from .pcolor import * 11 | -------------------------------------------------------------------------------- /yellowbrick/regressor/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.regressor 2 | # Visualizers for Regression analysis and diagnostics 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Mon Mar 06 12:23:55 2017 -0500 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [7d3f5e6] benjamin@bengfort.com $ 11 | 12 | """ 13 | Visualizers for Regression analysis and diagnostics, particularly 14 | visualizations related to evaluating Scikit-Learn regressor models. 15 | """ 16 | 17 | ########################################################################## 18 | ## Imports 19 | ########################################################################## 20 | 21 | ## Hoist visualizers into the regressor namespace 22 | from .base import * 23 | from .residuals import * 24 | from .alphas import * 25 | -------------------------------------------------------------------------------- /yellowbrick/regressor/base.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.regressor.base 2 | # Base classes for regressor Visualizers. 3 | # 4 | # Author: Rebecca Bilbro 5 | # Author: Benjamin Bengfort 6 | # Created: Fri Jun 03 10:30:36 2016 -0700 7 | # 8 | # Copyright (C) 2016 District Data Labs 9 | # For license information, see LICENSE.txt 10 | # 11 | # ID: base.py [7d3f5e6] benjamin@bengfort.com $ 12 | 13 | """ 14 | Base classes for regressor Visualizers. 15 | """ 16 | 17 | ########################################################################## 18 | ## Imports 19 | ########################################################################## 20 | 21 | from ..utils import isregressor 22 | from ..base import ScoreVisualizer 23 | from ..exceptions import YellowbrickTypeError 24 | 25 | 26 | ## Packages for export 27 | __all__ = [ 28 | "RegressionScoreVisualizer", 29 | ] 30 | 31 | 32 | ########################################################################## 33 | ## Regression Visualization Base Object 34 | ########################################################################## 35 | 36 | class RegressionScoreVisualizer(ScoreVisualizer): 37 | """ 38 | Base class for all ScoreVisualizers that evaluate a regression estimator. 39 | 40 | The primary functionality of this class is to perform a check to ensure 41 | the passed in estimator is a regressor, otherwise it raises a 42 | ``YellowbrickTypeError``. 43 | """ 44 | 45 | def __init__(self, model, ax=None, **kwargs): 46 | if not isregressor(model): 47 | raise YellowbrickTypeError( 48 | "This estimator is not a regressor; try a classifier or " 49 | "clustering score visualizer instead!" 50 | ) 51 | 52 | super(RegressionScoreVisualizer, self).__init__(model, ax=ax, **kwargs) 53 | -------------------------------------------------------------------------------- /yellowbrick/style/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.style 2 | # Manage the style and aesthetic of the yellowbrick library. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Tue Oct 04 15:09:48 2016 -0400 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [c6aff34] benjamin@bengfort.com $ 11 | 12 | """ 13 | Manage the style and aesthetic of the yellowbrick library. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | from .colors import * 21 | from .palettes import * 22 | from .rcmod import * 23 | from .utils import * 24 | -------------------------------------------------------------------------------- /yellowbrick/style/utils.py: -------------------------------------------------------------------------------- 1 | """ 2 | Utility functions for styles 3 | """ 4 | 5 | ########################################################################## 6 | ## Imports 7 | ########################################################################## 8 | 9 | import numpy as np 10 | 11 | 12 | def find_text_color(base_color, dark_color="black", light_color="white", coef_choice=0): 13 | """ 14 | Takes a background color and returns the appropriate light or dark text color. 15 | Users can specify the dark and light text color, or accept the defaults of 'black' and 'white' 16 | 17 | base_color: The color of the background. This must be 18 | specified in RGBA with values between 0 and 1 (note, this is the default 19 | return value format of a call to base_color = cmap(number) to get the 20 | color corresponding to a desired number). Note, the value of `A` in RGBA 21 | is not considered in determining light/dark. 22 | 23 | dark_color: Any valid matplotlib color value. 24 | Function will return this value if the text should be colored dark 25 | 26 | light_color: Any valid matplotlib color value. 27 | Function will return this value if thet text should be colored light. 28 | 29 | coef_choice: slightly different approaches to calculating brightness. Currently two options in 30 | a list, user can enter 0 or 1 as list index. 0 is default. 31 | """ 32 | 33 | #Coefficients: 34 | # option 0: http://www.nbdtech.com/Blog/archive/2008/04/27/Calculating-the-Perceived-Brightness-of-a-Color.aspx 35 | # option 1: http://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color 36 | coef_options = [np.array((.241, .691, .068, 0)), 37 | np.array((.299, .587, .114, 0)) 38 | ] 39 | 40 | coefs= coef_options[coef_choice] 41 | rgb = np.array(base_color) * 255 42 | brightness = np.sqrt(np.dot(coefs, rgb**2)) 43 | 44 | #Threshold from option 0 link; determined by trial and error. 45 | #base is light 46 | if brightness > 130: 47 | return dark_color 48 | return light_color 49 | -------------------------------------------------------------------------------- /yellowbrick/text/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.text 2 | # Visualizers for text feature analysis and diagnostics. 3 | # 4 | # Author: Rebecca Bilbro 5 | # Created: 2017-01-20 14:42 6 | # 7 | # Copyright (C) 2017 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: __init__.py [75d9b20] rebecca.bilbro@bytecubed.com $ 11 | 12 | """ 13 | Visualizers for text feature analysis and diagnostics. 14 | """ 15 | 16 | ########################################################################## 17 | ## Imports 18 | ########################################################################## 19 | 20 | from .tsne import TSNEVisualizer, tsne 21 | from .freqdist import FreqDistVisualizer, freqdist 22 | from .postag import PosTagVisualizer 23 | -------------------------------------------------------------------------------- /yellowbrick/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.utils 2 | # Utility functions and helpers for the Yellowbrick library. 3 | # 4 | # Author: Jason Keung 5 | # Author: Patrick O'Melveny 6 | # Author: Benjamin Bengfort 7 | # Author: Rebecca Bilbro 8 | # Created: Thu Jun 02 15:33:18 2016 -0500 9 | # 10 | # Copyright (C) 2016 District Data LAbs 11 | # For license information, see LICENSE.txt 12 | # 13 | # ID: __init__.py [79cd8cf] benjamin@bengfort.com $ 14 | 15 | """ 16 | Utility functions and helpers for the Yellowbrick library. 17 | """ 18 | 19 | ########################################################################## 20 | ## Imports 21 | ########################################################################## 22 | 23 | from .helpers import * 24 | from .types import * 25 | -------------------------------------------------------------------------------- /yellowbrick/utils/wrapper.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.utils.wrapper 2 | # Utility package that provides a wrapper for new style classes. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Sun May 21 20:27:32 2017 -0700 6 | # 7 | # Copyright (C) 2017 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: wrapper.py [b2ecd50] benjamin@bengfort.com $ 11 | 12 | """ 13 | Utility package that provides a wrapper for new style classes. 14 | """ 15 | 16 | ########################################################################## 17 | ## Wrapper Class 18 | ########################################################################## 19 | 20 | 21 | class Wrapper(object): 22 | """ 23 | Object wrapper class. 24 | 25 | An object wrapper is initialized with the object it wraps then proxies 26 | any unhandled getattribute methods to it. If no attribute is found either 27 | on the wrapper or the wrapped object, an AttributeError is raised. 28 | 29 | .. seealso:: http://code.activestate.com/recipes/577555-object-wrapper-class/ 30 | 31 | Parameters 32 | ---------- 33 | obj : object 34 | The object to wrap with the wrapper class 35 | """ 36 | 37 | def __init__(self, obj): 38 | self._wrapped = obj 39 | 40 | def __getattr__(self, attr): 41 | # proxy to the wrapped object 42 | return getattr(self._wrapped, attr) 43 | -------------------------------------------------------------------------------- /yellowbrick/version.py: -------------------------------------------------------------------------------- 1 | # yellowbrick.version 2 | # Maintains version and package information for deployment. 3 | # 4 | # Author: Benjamin Bengfort 5 | # Created: Mon Jan 25 14:22:52 2016 -0500 6 | # 7 | # Copyright (C) 2016 District Data Labs 8 | # For license information, see LICENSE.txt 9 | # 10 | # ID: version.py [0c5ba04] benjamin@bengfort.com $ 11 | 12 | """ 13 | Maintains version and package information for deployment. 14 | """ 15 | 16 | ########################################################################## 17 | ## Module Info 18 | ########################################################################## 19 | 20 | __version_info__ = { 21 | 'major': 0, 22 | 'minor': 5, 23 | 'micro': 0, 24 | 'releaselevel': 'final', 25 | 'serial': 10, 26 | } 27 | 28 | ########################################################################## 29 | ## Helper Functions 30 | ########################################################################## 31 | 32 | def get_version(short=False): 33 | """ 34 | Prints the version. 35 | """ 36 | assert __version_info__['releaselevel'] in ('alpha', 'beta', 'final') 37 | vers = ["%(major)i.%(minor)i" % __version_info__, ] 38 | if __version_info__['micro']: 39 | vers.append(".%(micro)i" % __version_info__) 40 | if __version_info__['releaselevel'] != 'final' and not short: 41 | vers.append('%s%i' % (__version_info__['releaselevel'][0], 42 | __version_info__['serial'])) 43 | return ''.join(vers) 44 | --------------------------------------------------------------------------------