.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/02_stdnormal_K1/plot-01-demo=deletes-model=dp_mix+gauss.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_02_stdnormal_K1_plot-01-demo=deletes-model=dp_mix+gauss.py: ======================================================================== Variational with merge and delete proposals for DP mixtures of Gaussians ======================================================================== How delete moves can be more effective than merges. In this example, we show how merge moves alone may not be enough to reliably escape local optima. Instead, we show that more flexible delete moves can escape from situations where merges alone fail. .. GENERATED FROM PYTHON SOURCE LINES 12-25 .. code-block:: default # SPECIFY WHICH PLOT CREATED BY THIS SCRIPT IS THE THUMBNAIL IMAGE # sphinx_gallery_thumbnail_number = 2 import bnpy import numpy as np import os from matplotlib import pylab import seaborn as sns FIG_SIZE = (3, 3) pylab.rcParams['figure.figsize'] = FIG_SIZE .. GENERATED FROM PYTHON SOURCE LINES 26-27 Create toy dataset of many points drawn from standard normal .. GENERATED FROM PYTHON SOURCE LINES 28-33 .. code-block:: default prng = np.random.RandomState(42) X = prng.randn(100000, 1) dataset = bnpy.data.XData(X, name='StandardNormalK1') .. GENERATED FROM PYTHON SOURCE LINES 34-35 Make a simple plot of the raw data .. GENERATED FROM PYTHON SOURCE LINES 36-43 .. code-block:: default pylab.hist(dataset.X[:, 0], 50, density=True) pylab.xlabel('x') pylab.ylabel('p(x)') pylab.tight_layout() .. image-sg:: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_001.png :alt: plot 01 demo=deletes model=dp mix+gauss :srcset: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 44-46 Setup: Determine specific settings of the proposals --------------------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 46-59 .. code-block:: default merge_kwargs = dict( m_startLap=10, m_pair_ranking_procedure='total_size', m_pair_ranking_direction='descending', ) delete_kwargs = dict( d_startLap=10, d_nRefineSteps=50, ) .. GENERATED FROM PYTHON SOURCE LINES 60-62 Setup: Helper function to display the learned clusters ------------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 63-84 .. code-block:: default def show_clusters_over_time( task_output_path=None, query_laps=[0, 1, 2, 10, 20, None], nrows=2): ''' ''' ncols = int(np.ceil(len(query_laps) // float(nrows))) fig_handle, ax_handle_list = pylab.subplots( figsize=(FIG_SIZE[0] * ncols, FIG_SIZE[1] * nrows), nrows=nrows, ncols=ncols, sharex=True, sharey=True) for plot_id, lap_val in enumerate(query_laps): cur_model, lap_val = bnpy.load_model_at_lap(task_output_path, lap_val) cur_ax_handle = ax_handle_list.flatten()[plot_id] bnpy.viz.PlotComps.plotCompsFromHModel( cur_model, dataset=dataset, ax_handle=cur_ax_handle) cur_ax_handle.set_xlim([-4.5, 4.5]) cur_ax_handle.set_xlabel("lap: %d" % lap_val) pylab.tight_layout() .. GENERATED FROM PYTHON SOURCE LINES 85-90 Run with *merge* moves only, from K=5 initial clusters -------------------------------------------------------- Unfortunately, no pairwise merge is accepted. The model is stuck using 5 clusters when one cluster would do. .. GENERATED FROM PYTHON SOURCE LINES 91-109 .. code-block:: default gamma = 5.0 sF = 0.1 K = 5 m_trained_model, m_info_dict = bnpy.run( dataset, 'DPMixtureModel', 'Gauss', 'memoVB', output_path=('/tmp/StandardNormalK1/' + 'trymoves-K=%d-gamma=%s-ECovMat=%s*eye-moves=merge,shuffle/' % ( K, gamma, sF)), nLap=100, nTask=1, nBatch=1, gamma0=gamma, sF=sF, ECovMat='eye', K=K, initname='randexamplesbydist', moves='merge,shuffle', **dict(**merge_kwargs)) show_clusters_over_time(m_info_dict['task_output_path']) .. image-sg:: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_002.png :alt: plot 01 demo=deletes model=dp mix+gauss :srcset: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none Dataset Summary: X Data total size: 100000 units batch size: 100000 units num. batches: 1 Allocation Model: DP mixture with K=0. Concentration gamma0= 5.00 Obs. Data Model: Gaussian with full covariance. Obs. Data Prior: Gauss-Wishart on mean and covar of each cluster E[ mean[k] ] = [0.] E[ covar[k] ] = [[0.1]] Initialization: initname = randexamplesbydist K = 5 (number of clusters) seed = 1607680 elapsed_time: 0.0 sec Learn Alg: memoVB | task 1/1 | alg. seed: 1607680 | data order seed: 8541952 task_output_path: /tmp/StandardNormalK1/trymoves-K=5-gamma=5.0-ECovMat=0.1*eye-moves=merge,shuffle/1 MERGE @ lap 1.00: Disabled. Cannot plan merge on first lap. Need valid SS that represent whole dataset. 1.000/100 after 0 sec. | 218.3 MiB | K 5 | loss 1.547776525e+00 | MERGE @ lap 2.00: Disabled. Waiting for lap >= 10 (--m_startLap). 2.000/100 after 0 sec. | 218.3 MiB | K 5 | loss 1.446186110e+00 | Ndiff 251.672 MERGE @ lap 3.00: Disabled. Waiting for lap >= 10 (--m_startLap). 3.000/100 after 0 sec. | 218.3 MiB | K 5 | loss 1.434177601e+00 | Ndiff 126.605 MERGE @ lap 4.00: Disabled. Waiting for lap >= 10 (--m_startLap). 4.000/100 after 0 sec. | 218.3 MiB | K 5 | loss 1.429642157e+00 | Ndiff 81.076 MERGE @ lap 5.00: Disabled. Waiting for lap >= 10 (--m_startLap). 5.000/100 after 0 sec. | 218.3 MiB | K 5 | loss 1.427329685e+00 | Ndiff 57.141 MERGE @ lap 6.00: Disabled. Waiting for lap >= 10 (--m_startLap). 6.000/100 after 0 sec. | 218.3 MiB | K 5 | loss 1.425951747e+00 | Ndiff 42.744 MERGE @ lap 7.00: Disabled. Waiting for lap >= 10 (--m_startLap). 7.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.425047267e+00 | Ndiff 33.297 MERGE @ lap 8.00: Disabled. Waiting for lap >= 10 (--m_startLap). 8.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.424412975e+00 | Ndiff 26.709 MERGE @ lap 9.00: Disabled. Waiting for lap >= 10 (--m_startLap). 9.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.423946233e+00 | Ndiff 21.904 MERGE @ lap 10.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 10.000/100 after 1 sec. | 210.9 MiB | K 5 | loss 1.423589980e+00 | Ndiff 18.275 MERGE @ lap 11.00: No promising candidates, so no attempts. 11.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.423310120e+00 | Ndiff 15.457 MERGE @ lap 12.00: No promising candidates, so no attempts. 12.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.423085107e+00 | Ndiff 13.219 MERGE @ lap 13.00: No promising candidates, so no attempts. 13.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.422900698e+00 | Ndiff 11.408 MERGE @ lap 14.00: No promising candidates, so no attempts. 14.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.422747120e+00 | Ndiff 9.920 MERGE @ lap 15.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 15.000/100 after 1 sec. | 210.9 MiB | K 5 | loss 1.422617464e+00 | Ndiff 8.680 MERGE @ lap 16.00: No promising candidates, so no attempts. 16.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.422506710e+00 | Ndiff 7.635 MERGE @ lap 17.00: No promising candidates, so no attempts. 17.000/100 after 1 sec. | 218.3 MiB | K 5 | loss 1.422411133e+00 | Ndiff 6.745 MERGE @ lap 18.00: No promising candidates, so no attempts. 18.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.422327908e+00 | Ndiff 6.095 MERGE @ lap 19.00: No promising candidates, so no attempts. 19.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.422254864e+00 | Ndiff 5.547 MERGE @ lap 20.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 20.000/100 after 2 sec. | 210.9 MiB | K 5 | loss 1.422190300e+00 | Ndiff 5.057 MERGE @ lap 21.00: No promising candidates, so no attempts. 21.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.422132869e+00 | Ndiff 4.617 MERGE @ lap 22.00: No promising candidates, so no attempts. 22.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.422081490e+00 | Ndiff 4.220 MERGE @ lap 23.00: No promising candidates, so no attempts. 23.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.422035287e+00 | Ndiff 3.860 MERGE @ lap 24.00: No promising candidates, so no attempts. 24.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.421993542e+00 | Ndiff 3.534 MERGE @ lap 25.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 25.000/100 after 2 sec. | 210.9 MiB | K 5 | loss 1.421955661e+00 | Ndiff 3.236 MERGE @ lap 26.00: No promising candidates, so no attempts. 26.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.421921151e+00 | Ndiff 2.964 MERGE @ lap 27.00: No promising candidates, so no attempts. 27.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.421889597e+00 | Ndiff 2.714 MERGE @ lap 28.00: No promising candidates, so no attempts. 28.000/100 after 2 sec. | 218.3 MiB | K 5 | loss 1.421860649e+00 | Ndiff 2.558 MERGE @ lap 29.00: No promising candidates, so no attempts. 29.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421834007e+00 | Ndiff 2.440 MERGE @ lap 30.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 30.000/100 after 3 sec. | 210.9 MiB | K 5 | loss 1.421809418e+00 | Ndiff 2.331 MERGE @ lap 31.00: No promising candidates, so no attempts. 31.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421786661e+00 | Ndiff 2.230 MERGE @ lap 32.00: No promising candidates, so no attempts. 32.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421765547e+00 | Ndiff 2.137 MERGE @ lap 33.00: No promising candidates, so no attempts. 33.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421745910e+00 | Ndiff 2.050 MERGE @ lap 34.00: No promising candidates, so no attempts. 34.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421727607e+00 | Ndiff 1.969 MERGE @ lap 35.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 35.000/100 after 3 sec. | 210.9 MiB | K 5 | loss 1.421710511e+00 | Ndiff 1.894 MERGE @ lap 36.00: No promising candidates, so no attempts. 36.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421694512e+00 | Ndiff 1.824 MERGE @ lap 37.00: No promising candidates, so no attempts. 37.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421679511e+00 | Ndiff 1.758 MERGE @ lap 38.00: No promising candidates, so no attempts. 38.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421665422e+00 | Ndiff 1.696 MERGE @ lap 39.00: No promising candidates, so no attempts. 39.000/100 after 3 sec. | 218.3 MiB | K 5 | loss 1.421652166e+00 | Ndiff 1.638 MERGE @ lap 40.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 40.000/100 after 4 sec. | 210.9 MiB | K 5 | loss 1.421639676e+00 | Ndiff 1.583 MERGE @ lap 41.00: No promising candidates, so no attempts. 41.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421627889e+00 | Ndiff 1.532 MERGE @ lap 42.00: No promising candidates, so no attempts. 42.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421616749e+00 | Ndiff 1.483 MERGE @ lap 43.00: No promising candidates, so no attempts. 43.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421606208e+00 | Ndiff 1.437 MERGE @ lap 44.00: No promising candidates, so no attempts. 44.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421596220e+00 | Ndiff 1.393 MERGE @ lap 45.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 45.000/100 after 4 sec. | 210.9 MiB | K 5 | loss 1.421586745e+00 | Ndiff 1.351 MERGE @ lap 46.00: No promising candidates, so no attempts. 46.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421577745e+00 | Ndiff 1.324 MERGE @ lap 47.00: No promising candidates, so no attempts. 47.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421569187e+00 | Ndiff 1.299 MERGE @ lap 48.00: No promising candidates, so no attempts. 48.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421561041e+00 | Ndiff 1.275 MERGE @ lap 49.00: No promising candidates, so no attempts. 49.000/100 after 4 sec. | 218.3 MiB | K 5 | loss 1.421553280e+00 | Ndiff 1.252 MERGE @ lap 50.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 50.000/100 after 5 sec. | 210.9 MiB | K 5 | loss 1.421545876e+00 | Ndiff 1.229 MERGE @ lap 51.00: No promising candidates, so no attempts. 51.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421538809e+00 | Ndiff 1.206 MERGE @ lap 52.00: No promising candidates, so no attempts. 52.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421532055e+00 | Ndiff 1.184 MERGE @ lap 53.00: No promising candidates, so no attempts. 53.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421525596e+00 | Ndiff 1.163 MERGE @ lap 54.00: No promising candidates, so no attempts. 54.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421519413e+00 | Ndiff 1.143 MERGE @ lap 55.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 55.000/100 after 5 sec. | 210.9 MiB | K 5 | loss 1.421513490e+00 | Ndiff 1.122 MERGE @ lap 56.00: No promising candidates, so no attempts. 56.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421507811e+00 | Ndiff 1.103 MERGE @ lap 57.00: No promising candidates, so no attempts. 57.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421502363e+00 | Ndiff 1.084 MERGE @ lap 58.00: No promising candidates, so no attempts. 58.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421497133e+00 | Ndiff 1.065 MERGE @ lap 59.00: No promising candidates, so no attempts. 59.000/100 after 5 sec. | 218.3 MiB | K 5 | loss 1.421492107e+00 | Ndiff 1.047 MERGE @ lap 60.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 60.000/100 after 5 sec. | 210.9 MiB | K 5 | loss 1.421487275e+00 | Ndiff 1.029 MERGE @ lap 61.00: No promising candidates, so no attempts. 61.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421482626e+00 | Ndiff 1.012 MERGE @ lap 62.00: No promising candidates, so no attempts. 62.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421478151e+00 | Ndiff 0.995 MERGE @ lap 63.00: No promising candidates, so no attempts. 63.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421473840e+00 | Ndiff 0.979 MERGE @ lap 64.00: No promising candidates, so no attempts. 64.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421469686e+00 | Ndiff 0.963 MERGE @ lap 65.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 65.000/100 after 6 sec. | 210.9 MiB | K 5 | loss 1.421465679e+00 | Ndiff 0.948 MERGE @ lap 66.00: No promising candidates, so no attempts. 66.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421461813e+00 | Ndiff 0.933 MERGE @ lap 67.00: No promising candidates, so no attempts. 67.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421458080e+00 | Ndiff 0.918 MERGE @ lap 68.00: No promising candidates, so no attempts. 68.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421454475e+00 | Ndiff 0.904 MERGE @ lap 69.00: No promising candidates, so no attempts. 69.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421450991e+00 | Ndiff 0.890 MERGE @ lap 70.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 70.000/100 after 6 sec. | 210.9 MiB | K 5 | loss 1.421447622e+00 | Ndiff 0.877 MERGE @ lap 71.00: No promising candidates, so no attempts. 71.000/100 after 6 sec. | 218.3 MiB | K 5 | loss 1.421444363e+00 | Ndiff 0.867 MERGE @ lap 72.00: No promising candidates, so no attempts. 72.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421441210e+00 | Ndiff 0.881 MERGE @ lap 73.00: No promising candidates, so no attempts. 73.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421438156e+00 | Ndiff 0.894 MERGE @ lap 74.00: No promising candidates, so no attempts. 74.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421435198e+00 | Ndiff 0.907 MERGE @ lap 75.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 75.000/100 after 7 sec. | 210.9 MiB | K 5 | loss 1.421432332e+00 | Ndiff 0.920 MERGE @ lap 76.00: No promising candidates, so no attempts. 76.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421429553e+00 | Ndiff 0.931 MERGE @ lap 77.00: No promising candidates, so no attempts. 77.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421426858e+00 | Ndiff 0.942 MERGE @ lap 78.00: No promising candidates, so no attempts. 78.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421424243e+00 | Ndiff 0.953 MERGE @ lap 79.00: No promising candidates, so no attempts. 79.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421421705e+00 | Ndiff 0.963 MERGE @ lap 80.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 80.000/100 after 7 sec. | 210.9 MiB | K 5 | loss 1.421419241e+00 | Ndiff 0.973 MERGE @ lap 81.00: No promising candidates, so no attempts. 81.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421416847e+00 | Ndiff 0.983 MERGE @ lap 82.00: No promising candidates, so no attempts. 82.000/100 after 7 sec. | 218.3 MiB | K 5 | loss 1.421414521e+00 | Ndiff 0.991 MERGE @ lap 83.00: No promising candidates, so no attempts. 83.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421412261e+00 | Ndiff 1.000 MERGE @ lap 84.00: No promising candidates, so no attempts. 84.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421410063e+00 | Ndiff 1.008 MERGE @ lap 85.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 85.000/100 after 8 sec. | 210.9 MiB | K 5 | loss 1.421407925e+00 | Ndiff 1.016 MERGE @ lap 86.00: No promising candidates, so no attempts. 86.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421405845e+00 | Ndiff 1.023 MERGE @ lap 87.00: No promising candidates, so no attempts. 87.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421403820e+00 | Ndiff 1.031 MERGE @ lap 88.00: No promising candidates, so no attempts. 88.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421401849e+00 | Ndiff 1.038 MERGE @ lap 89.00: No promising candidates, so no attempts. 89.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421399930e+00 | Ndiff 1.044 MERGE @ lap 90.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 90.000/100 after 8 sec. | 210.9 MiB | K 5 | loss 1.421398060e+00 | Ndiff 1.050 MERGE @ lap 91.00: No promising candidates, so no attempts. 91.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421396238e+00 | Ndiff 1.056 MERGE @ lap 92.00: No promising candidates, so no attempts. 92.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421394462e+00 | Ndiff 1.062 MERGE @ lap 93.00: No promising candidates, so no attempts. 93.000/100 after 8 sec. | 218.3 MiB | K 5 | loss 1.421392731e+00 | Ndiff 1.068 MERGE @ lap 94.00: No promising candidates, so no attempts. 94.000/100 after 9 sec. | 218.3 MiB | K 5 | loss 1.421391043e+00 | Ndiff 1.077 MERGE @ lap 95.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 95.000/100 after 9 sec. | 210.9 MiB | K 5 | loss 1.421389396e+00 | Ndiff 1.087 MERGE @ lap 96.00: No promising candidates, so no attempts. 96.000/100 after 9 sec. | 218.3 MiB | K 5 | loss 1.421387789e+00 | Ndiff 1.096 MERGE @ lap 97.00: No promising candidates, so no attempts. 97.000/100 after 9 sec. | 218.3 MiB | K 5 | loss 1.421386221e+00 | Ndiff 1.105 MERGE @ lap 98.00: No promising candidates, so no attempts. 98.000/100 after 9 sec. | 218.3 MiB | K 5 | loss 1.421384690e+00 | Ndiff 1.114 MERGE @ lap 99.00: No promising candidates, so no attempts. 99.000/100 after 9 sec. | 218.3 MiB | K 5 | loss 1.421383195e+00 | Ndiff 1.122 MERGE @ lap 100.00 : 0/10 accepted. Ndiff 0.00. 0 skipped. 100.000/100 after 9 sec. | 210.9 MiB | K 5 | loss 1.421381735e+00 | Ndiff 1.130 ... done. not converged. max laps thru data exceeded. .. GENERATED FROM PYTHON SOURCE LINES 110-114 Run with *delete* moves, from K=5 initial clusters -------------------------------------------------------- More flexible delete moves *are* accepted. .. GENERATED FROM PYTHON SOURCE LINES 115-130 .. code-block:: default d_trained_model, d_info_dict = bnpy.run( dataset, 'DPMixtureModel', 'Gauss', 'memoVB', output_path=('/tmp/StandardNormalK1/' + 'trymoves-K=%d-gamma=%s-ECovMat=%s*eye-moves=delete,shuffle/' % ( K, gamma, sF)), nLap=100, nTask=1, nBatch=1, gamma0=gamma, sF=sF, ECovMat='eye', K=K, initname='randexamplesbydist', moves='delete,shuffle', **dict(delete_kwargs)) show_clusters_over_time(d_info_dict['task_output_path']) .. image-sg:: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_003.png :alt: plot 01 demo=deletes model=dp mix+gauss :srcset: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_003.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none Dataset Summary: X Data total size: 100000 units batch size: 100000 units num. batches: 1 Allocation Model: DP mixture with K=0. Concentration gamma0= 5.00 Obs. Data Model: Gaussian with full covariance. Obs. Data Prior: Gauss-Wishart on mean and covar of each cluster E[ mean[k] ] = [0.] E[ covar[k] ] = [[0.1]] Initialization: initname = randexamplesbydist K = 5 (number of clusters) seed = 1607680 elapsed_time: 0.0 sec Learn Alg: memoVB | task 1/1 | alg. seed: 1607680 | data order seed: 8541952 task_output_path: /tmp/StandardNormalK1/trymoves-K=5-gamma=5.0-ECovMat=0.1*eye-moves=delete,shuffle/1 DELETE @ lap 1.00: Disabled. Cannot delete before first complete lap, because SS that represents whole dataset is required. 1.000/100 after 0 sec. | 228.8 MiB | K 5 | loss 1.547776525e+00 | DELETE @ lap 2.00: Disabled. Waiting for lap >= 10 (--d_startLap). 2.000/100 after 0 sec. | 228.8 MiB | K 5 | loss 1.446186110e+00 | Ndiff 251.672 DELETE @ lap 3.00: Disabled. Waiting for lap >= 10 (--d_startLap). 3.000/100 after 0 sec. | 228.8 MiB | K 5 | loss 1.434177601e+00 | Ndiff 126.605 DELETE @ lap 4.00: Disabled. Waiting for lap >= 10 (--d_startLap). 4.000/100 after 0 sec. | 228.8 MiB | K 5 | loss 1.429642157e+00 | Ndiff 81.076 DELETE @ lap 5.00: Disabled. Waiting for lap >= 10 (--d_startLap). 5.000/100 after 0 sec. | 228.8 MiB | K 5 | loss 1.427329685e+00 | Ndiff 57.141 DELETE @ lap 6.00: Disabled. Waiting for lap >= 10 (--d_startLap). 6.000/100 after 1 sec. | 228.8 MiB | K 5 | loss 1.425951747e+00 | Ndiff 42.744 DELETE @ lap 7.00: Disabled. Waiting for lap >= 10 (--d_startLap). 7.000/100 after 1 sec. | 228.8 MiB | K 5 | loss 1.425047267e+00 | Ndiff 33.297 DELETE @ lap 8.00: Disabled. Waiting for lap >= 10 (--d_startLap). 8.000/100 after 1 sec. | 228.8 MiB | K 5 | loss 1.424412975e+00 | Ndiff 26.709 DELETE @ lap 9.00: Disabled. Waiting for lap >= 10 (--d_startLap). 9.000/100 after 1 sec. | 228.8 MiB | K 5 | loss 1.423946233e+00 | Ndiff 21.904 DELETE @ lap 10.00: 1/1 accepted. Ndiff 43526.74. 10.000/100 after 3 sec. | 231.9 MiB | K 4 | loss 1.421389609e+00 | Ndiff 21.904 DELETE @ lap 11.00: 1/1 accepted. Ndiff 49884.65. 11.000/100 after 5 sec. | 228.8 MiB | K 3 | loss 1.421157450e+00 | Ndiff 21.904 DELETE @ lap 12.00: 1/1 accepted. Ndiff 43419.31. 12.000/100 after 7 sec. | 228.8 MiB | K 2 | loss 1.420888889e+00 | Ndiff 21.904 DELETE @ lap 13.00: 1/1 accepted. Ndiff 42527.97. 13.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 21.904 DELETE @ lap 14.00: Ineligible. Did not find >= 2 UIDs in entire model. 14.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 15.00: Ineligible. Did not find >= 2 UIDs in entire model. 15.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 16.00: Ineligible. Did not find >= 2 UIDs in entire model. 16.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 17.00: Ineligible. Did not find >= 2 UIDs in entire model. 17.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 18.00: Ineligible. Did not find >= 2 UIDs in entire model. 18.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 19.00: Ineligible. Did not find >= 2 UIDs in entire model. 19.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 20.00: Ineligible. Did not find >= 2 UIDs in entire model. 20.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 21.00: Ineligible. Did not find >= 2 UIDs in entire model. 21.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 22.00: Ineligible. Did not find >= 2 UIDs in entire model. 22.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 23.00: Ineligible. Did not find >= 2 UIDs in entire model. 23.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 DELETE @ lap 24.00: Ineligible. Did not find >= 2 UIDs in entire model. 24.000/100 after 7 sec. | 224.2 MiB | K 1 | loss 1.420559635e+00 | Ndiff 0.000 ... done. converged. .. GENERATED FROM PYTHON SOURCE LINES 131-134 Loss function trace plot ------------------------ .. GENERATED FROM PYTHON SOURCE LINES 135-148 .. code-block:: default pylab.plot( m_info_dict['lap_history'][1:], m_info_dict['loss_history'][1:], 'k.-', label='vb_with_merges') pylab.plot( d_info_dict['lap_history'][1:], d_info_dict['loss_history'][1:], 'b.-', label='vb_with_deletes') pylab.legend(loc='upper right') pylab.xlabel('num. laps') pylab.ylabel('loss') pylab.tight_layout() .. image-sg:: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_004.png :alt: plot 01 demo=deletes model=dp mix+gauss :srcset: /examples/02_stdnormal_K1/images/sphx_glr_plot-01-demo=deletes-model=dp_mix+gauss_004.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 18.568 seconds) .. _sphx_glr_download_examples_02_stdnormal_K1_plot-01-demo=deletes-model=dp_mix+gauss.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot-01-demo=deletes-model=dp_mix+gauss.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot-01-demo=deletes-model=dp_mix+gauss.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_