@@ -218,7 +218,8 @@ def run_optimization(self):
218218 k_to = min (self .k_to , len (self .data ))
219219 kmeans = KMeans (
220220 init = ['random' , 'k-means++' ][self .smart_init ],
221- n_init = self .n_init , max_iter = self .max_iterations )
221+ n_init = self .n_init , max_iter = self .max_iterations ,
222+ compute_silhouette_score = self .scoring == self .SILHOUETTE )
222223 with self .progressBar (k_to - self .k_from + 1 ) as progress :
223224 for k in range (self .k_from , k_to + 1 ):
224225 progress .advance ()
@@ -264,7 +265,7 @@ def show_results(self):
264265 best_run = scores .index (best_score )
265266 score_span = (best_score - worst_score ) or 1
266267 max_score = max (scores )
267- nplaces = min (5 , int (abs (math .log (max (max_score , 1e-10 )))) + 2 )
268+ nplaces = min (5 , np . floor (abs (math .log (max (max_score , 1e-10 )))) + 2 )
268269 fmt = "{{:.{}f}}" .format (nplaces )
269270 model = self .table_model
270271 model .setRowCount (len (k_scores ))
@@ -278,7 +279,8 @@ def show_results(self):
278279 item = model .item (i , 1 )
279280 if item is None :
280281 item = QStandardItem ()
281- item .setData (fmt .format (score ), Qt .DisplayRole )
282+ item .setData (fmt .format (score ) if not np .isnan (score ) else 'out-of-memory error' ,
283+ Qt .DisplayRole )
282284 bar_ratio = 0.95 * (score - worst_score ) / score_span
283285 item .setData (bar_ratio , gui .TableBarItem .BarRole )
284286 model .setItem (i , 1 , item )
0 commit comments