In [1]:
%load_ext autoreload
%autoreload 2
import os
import aphrodite.results
import pandas as pd

import vislab
import vislab.datasets
import vislab.results


/Users/sergeyk/anaconda/lib/python2.7/site-packages/configobj.py:145: DeprecationWarning: The compiler package is deprecated and removed in Python 3.x.
  import compiler

In [2]:
c = vislab.util.get_mongodb_client()['predict']['ava_style_oct22']
if c.find({'features': 'noise'}).count() > 0:
    c.remove({'features': 'noise'})
pd.DataFrame([x for x in c.find()])


Out[2]:
_id data features num_test num_train num_val pred_df quadratic results_name score_test score_val task
0 52677171efd80f8750020095 ava_style_style_ALL [lab_hist] 2573 8501 2769 �cpandas.core.frame\nDataFrame\nq)�qcpandas... NaN 0.284286 0.247508 clf
1 52687f4043d2db703b9f97e6 ava_style_style_ALL [gist_256] 2573 8501 2769 �cpandas.core.frame\nDataFrame\nq)�qcpandas... False NaN 0.187143 0.184385 clf
2 5268e26a43d2db703b9f97e7 ava_style_style_ALL [mc_bit] 2573 8501 2769 �cpandas.core.frame\nDataFrame\nq)�qcpandas... False NaN 0.434286 0.417647 clf
3 5269dc0c43d2db703b9f9825 ava_style_style_ALL [decaf_fc6] 2573 8501 2769 �cpandas.core.frame\nDataFrame\nq)�qcpandas... False NaN 0.488571 0.529900 clf
4 5269f802265138430c54b4d6 ava_style_style_ALL [decaf_fc6_flatten] 2573 8501 2769 �cpandas.core.frame\nDataFrame\nq)�qcpandas... False NaN 0.435714 0.823920 clf
5 526edf859622958641aaee55 ava_style_style_ALL [gbvs_saliency] 2573 8501 2769 NaN False data_ava_style_style_ALL_features_['gbvs_salie... 0.084666 0.181594 clf
6 52719c9e9622958641af6842 ava_style_style_ALL [decaf_tuned_fc6] 2573 8501 2769 NaN False data_ava_style_style_ALL_features_['decaf_tune... 0.417053 0.696795 clf
7 5271e1399622958641af6845 ava_style_style_ALL [decaf_tuned_fc6_flatten] 2573 8501 2769 NaN False data_ava_style_style_ALL_features_['decaf_tune... 0.363299 0.820871 clf
8 52724df68dc9cfbe92ca2344 ava_style_style_ALL [fusion_ava_style_oct22] 2573 8501 2769 NaN None data_ava_style_style_ALL_features_['fusion_ava... 0.449765 0.756779 clf
9 527293fd9622958641af684f ava_style_style_ALL [decaf_fc6, pascal_mc_for_decaf_fc6] 2573 8501 2769 NaN pd data_ava_style_style_ALL_features_['decaf_fc6'... 0.384902 0.766639 clf
10 52730a969622958641b1a34b ava_style_style_ALL [decaf_tuned_fc6_ud] 2573 8501 2769 NaN None data_ava_style_style_ALL_features_['decaf_tune... 0.389562 0.684470 clf
11 52731a968dc9cfbe92ca2348 ava_style_style_ALL [fusion_ava_style_oct22, pascal_mc_for_fusion_... 2573 8501 2769 NaN fp data_ava_style_style_ALL_features_['fusion_ava... 0.437559 0.766639 clf
12 527c68079622958641b3d7b7 ava_style_style_ALL [decaf_imagenet] 2573 8501 2769 NaN None data_ava_style_style_ALL_features_['decaf_imag... 0.281454 0.462613 clf

In [3]:
label_df = vislab.datasets.ava.get_style_df()

In [23]:
results_df, preds_panel = aphrodite.results.load_pred_results(
    'ava_style_oct22', os.path.expanduser('~/work/aphrodite/data/results2'),
    multiclass=True, force=True)
pred_prefix = 'pred'
print preds_panel.minor_axis


Results in collection ava_style_oct22: 13
Index([u'decaf_fc6 False vw', u'decaf_fc6,pascal_mc_for_decaf_fc6 pd vw', u'decaf_fc6_flatten False vw', u'decaf_imagenet None vw', u'decaf_tuned_fc6 False vw', u'decaf_tuned_fc6_flatten False vw', u'decaf_tuned_fc6_ud None vw', u'fusion_ava_style_oct22 None vw', u'fusion_ava_style_oct22,pascal_mc_for_fusion_ava_style_oct22 fp vw', u'gbvs_saliency False vw', u'gist_256 False vw', u'lab_hist  vw', u'mc_bit False vw'], dtype='object')

In [24]:
feat_to_evaluate = [
    u'decaf_fc6 False vw',
    #u'decaf_fc6,pascal_mc_for_decaf_fc6 pd vw',
    u'decaf_fc6_flatten False vw',
    u'decaf_tuned_fc6 False vw',
    #u'decaf_tuned_fc6_flatten False vw',
    #u'decaf_tuned_fc6_ud None vw',
    #u'fusion_ava_style_oct22 None vw',
    u'fusion_ava_style_oct22,pascal_mc_for_fusion_ava_style_oct22 fp vw',
    u'gbvs_saliency False vw',
    u'gist_256 False vw',
    u'lab_hist  vw',
    u'mc_bit False vw',
    u'decaf_imagenet None vw'
]
preds_panel = preds_panel.select(lambda x: x in feat_to_evaluate, 'minor')

In [25]:
nice_feat_names = {
    'decaf_fc6 False vw': 'DeCAF_6',
    'decaf_fc6_flatten False vw': 'DeCAF_5',
    'decaf_tuned_fc6 False vw': 'Fine-tuned DeCAF_6',
    'fusion_ava_style_oct22,pascal_mc_for_fusion_ava_style_oct22 fp vw': 'Late-fusion x Content',
    'mc_bit False vw': 'MC-bit',
    'gbvs_saliency False vw': 'Graph-based Saliency',
    'gist_256 False vw': 'GIST',
    'lab_hist  vw': 'L*a*b* Histogram',
    'decaf_imagenet None vw': 'ImageNet scores'
}

mc_metrics = vislab.results.multiclass_metrics_feat_comparison(
    preds_panel, label_df, pred_prefix, features=preds_panel.minor_axis.tolist() + ['random'],
    balanced=True, with_plot=False, with_print=True, nice_feat_names=nice_feat_names)


Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************decaf_fc6 False vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.634921  0.338983  0.441989      118
style_Duotones               0.823529  0.234310  0.364821      239
style_HDR                    0.486842  0.521127  0.503401       71
style_Image_Grain            0.211765  0.428571  0.283465       42
style_Light_On_White         0.598361  0.924051  0.726368       79
style_Long_Exposure          0.436364  0.289157  0.347826       83
style_Macro                  0.403509  0.252747  0.310811       91
style_Motion_Blur            0.304348  0.446809  0.362069       47
style_Negative_Image         0.487500  0.661017  0.561151       59
style_Rule_of_Thirds         0.372093  0.205128  0.264463       78
style_Shallow_DOF            0.121951  0.277778  0.169492       36
style_Silhouettes            0.440000  0.758621  0.556962       58
style_Soft_Focus             0.173333  0.419355  0.245283       31
style_Vanishing_Point        0.316327  0.756098  0.446043       41
accuracy: 0.414725069897

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************decaf_fc6_flatten False vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.470588  0.403361  0.434389      119
style_Duotones               0.696629  0.281818  0.401294      220
style_HDR                    0.750000  0.211268  0.329670       71
style_Image_Grain            0.218750  0.212121  0.215385       33
style_Light_On_White         0.471831  0.893333  0.617512       75
style_Long_Exposure          0.294118  0.240964  0.264901       83
style_Macro                  0.655172  0.213483  0.322034       89
style_Motion_Blur            0.396825  0.454545  0.423729       55
style_Negative_Image         0.393258  0.573770  0.466667       61
style_Rule_of_Thirds         0.226415  0.151899  0.181818       79
style_Shallow_DOF            0.205479  0.326087  0.252101       46
style_Silhouettes            0.409091  0.818182  0.545455       55
style_Soft_Focus             0.158730  0.344828  0.217391       29
style_Vanishing_Point        0.285714  0.818182  0.423529       44
accuracy: 0.392823418319

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************decaf_imagenet None vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.493976  0.356522  0.414141      115
style_Duotones               0.500000  0.069767  0.122449      215
style_HDR                    0.367089  0.408451  0.386667       71
style_Image_Grain            0.106667  0.173913  0.132231       46
style_Light_On_White         0.375000  0.633803  0.471204       71
style_Long_Exposure          0.194444  0.170732  0.181818       82
style_Macro                  0.384615  0.376344  0.380435       93
style_Motion_Blur            0.216667  0.260000  0.236364       50
style_Negative_Image         0.244444  0.400000  0.303448       55
style_Rule_of_Thirds         0.178571  0.063291  0.093458       79
style_Shallow_DOF            0.112903  0.152174  0.129630       46
style_Silhouettes            0.333333  0.573770  0.421687       61
style_Soft_Focus             0.102041  0.172414  0.128205       29
style_Vanishing_Point        0.224299  0.631579  0.331034       38
accuracy: 0.283539486204

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************decaf_tuned_fc6 False vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.608696  0.344262  0.439791      122
style_Duotones               0.728395  0.255411  0.378205      231
style_HDR                    0.523077  0.478873  0.500000       71
style_Image_Grain            0.229730  0.425000  0.298246       40
style_Light_On_White         0.532110  0.816901  0.644444       71
style_Long_Exposure          0.426471  0.322222  0.367089       90
style_Macro                  0.461538  0.242424  0.317881       99
style_Motion_Blur            0.208955  0.304348  0.247788       46
style_Negative_Image         0.410526  0.650000  0.503226       60
style_Rule_of_Thirds         0.266667  0.225352  0.244275       71
style_Shallow_DOF            0.164179  0.268293  0.203704       41
style_Silhouettes            0.510417  0.816667  0.628205       60
style_Soft_Focus             0.148649  0.407407  0.217822       27
style_Vanishing_Point        0.376344  0.853659  0.522388       41
accuracy: 0.409345794393

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************fusion_ava_style_oct22,pascal_mc_for_fusion_ava_style_oct22 fp vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.538462  0.307018  0.391061      114
style_Duotones               0.727273  0.252252  0.374582      222
style_HDR                    0.685185  0.521127  0.592000       71
style_Image_Grain            0.305556  0.523810  0.385965       42
style_Light_On_White         0.735632  0.853333  0.790123       75
style_Long_Exposure          0.464286  0.305882  0.368794       85
style_Macro                  0.391304  0.382979  0.387097       94
style_Motion_Blur            0.297619  0.480769  0.367647       52
style_Negative_Image         0.445652  0.672131  0.535948       61
style_Rule_of_Thirds         0.276923  0.240000  0.257143       75
style_Shallow_DOF            0.217822  0.468085  0.297297       47
style_Silhouettes            0.478261  0.589286  0.528000       56
style_Soft_Focus             0.301887  0.551724  0.390244       29
style_Vanishing_Point        0.364583  0.875000  0.514706       40
accuracy: 0.438381937912

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************gbvs_saliency False vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.000000  0.000000  0.000000      112
style_Duotones               0.152542  0.039823  0.063158      226
style_HDR                    0.052083  0.070423  0.059880       71
style_Image_Grain            0.025316  0.042553  0.031746       47
style_Light_On_White         0.153846  0.263158  0.194175       76
style_Long_Exposure          0.196078  0.113636  0.143885       88
style_Macro                  0.114286  0.043011  0.062500       93
style_Motion_Blur            0.071429  0.120000  0.089552       50
style_Negative_Image         0.064516  0.096774  0.077419       62
style_Rule_of_Thirds         0.131783  0.229730  0.167488       74
style_Shallow_DOF            0.105263  0.122449  0.113208       49
style_Silhouettes            0.085106  0.133333  0.103896       60
style_Soft_Focus             0.028571  0.064516  0.039604       31
style_Vanishing_Point        0.055556  0.097561  0.070796       41
accuracy: 0.0916666666667

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************gist_256 False vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.259740  0.186916  0.217391      107
style_Duotones               0.341463  0.059322  0.101083      236
style_HDR                    0.210526  0.281690  0.240964       71
style_Image_Grain            0.011905  0.024390  0.016000       41
style_Light_On_White         0.442029  0.835616  0.578199       73
style_Long_Exposure          0.150000  0.102273  0.121622       88
style_Macro                  0.215909  0.191919  0.203209       99
style_Motion_Blur            0.105263  0.186047  0.134454       43
style_Negative_Image         0.112245  0.177419  0.137500       62
style_Rule_of_Thirds         0.047619  0.012987  0.020408       77
style_Shallow_DOF            0.060606  0.046512  0.052632       43
style_Silhouettes            0.161017  0.380000  0.226190       50
style_Soft_Focus             0.000000  0.000000  0.000000       33
style_Vanishing_Point        0.069767  0.146341  0.094488       41
accuracy: 0.179511278195

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************lab_hist  vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.430233  0.316239  0.364532      117
style_Duotones               0.668605  0.493562  0.567901      233
style_HDR                    0.239130  0.309859  0.269939       71
style_Image_Grain            0.082192  0.146341  0.105263       41
style_Light_On_White         0.484472  0.987342  0.650000       79
style_Long_Exposure          0.255102  0.284091  0.268817       88
style_Macro                  0.191489  0.102273  0.133333       88
style_Motion_Blur            0.115385  0.061224  0.080000       49
style_Negative_Image         0.306452  0.311475  0.308943       61
style_Rule_of_Thirds         0.156250  0.064103  0.090909       78
style_Shallow_DOF            0.096774  0.061224  0.075000       49
style_Silhouettes            0.204082  0.350877  0.258065       57
style_Soft_Focus             0.074074  0.129032  0.094118       31
style_Vanishing_Point        0.156863  0.195122  0.173913       41
accuracy: 0.326869806094

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************mc_bit False vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.466667  0.128440  0.201439      109
style_Duotones               0.812500  0.105691  0.187050      246
style_HDR                    0.680000  0.485714  0.566667       70
style_Image_Grain            0.276316  0.488372  0.352941       43
style_Light_On_White         0.645161  0.779221  0.705882       77
style_Long_Exposure          0.473684  0.216867  0.297521       83
style_Macro                  0.295775  0.471910  0.363636       89
style_Motion_Blur            0.238095  0.520833  0.326797       48
style_Negative_Image         0.325843  0.527273  0.402778       55
style_Rule_of_Thirds         0.255319  0.155844  0.193548       77
style_Shallow_DOF            0.178082  0.309524  0.226087       42
style_Silhouettes            0.525424  0.632653  0.574074       49
style_Soft_Focus             0.214286  0.206897  0.210526       29
style_Vanishing_Point        0.191919  0.883721  0.315353       43
accuracy: 0.348113207547

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************random********************
------------------------------------------------------------
Classification metrics on {} balanced
                            precision    recall  f1-score  support
style_Complementary_Colors   0.160920  0.115702  0.134615      121
style_Duotones               0.275362  0.078838  0.122581      241
style_HDR                    0.064103  0.070423  0.067114       71
style_Image_Grain            0.012987  0.024390  0.016949       41
style_Light_On_White         0.093333  0.100000  0.096552       70
style_Long_Exposure          0.090909  0.095238  0.093023       84
style_Macro                  0.058140  0.054348  0.056180       92
style_Motion_Blur            0.051948  0.081633  0.063492       49
style_Negative_Image         0.029851  0.033898  0.031746       59
style_Rule_of_Thirds         0.102564  0.123077  0.111888       65
style_Shallow_DOF            0.092308  0.120000  0.104348       50
style_Silhouettes            0.089744  0.120690  0.102941       58
style_Soft_Focus             0.014706  0.038462  0.021277       26
style_Vanishing_Point        0.054054  0.100000  0.070175       40
accuracy: 0.0852858481724


In [26]:
ap_df = mc_metrics['ap_df'].copy()
ap_df = ap_df[sorted(ap_df.columns)]

ap_df['Murray-CVPR-2012'] = 0
ap_df['Murray-CVPR-2012'].iloc[:-1] = [
    .44, .51, .64, .74, .73, .43, .50, .40, .69, .30, .48, .72, .39, .57]
ap_df['Murray-CVPR-2012'].iloc[-1] = ap_df['Murray-CVPR-2012'].iloc[:-1].mean()
ap_df


Out[26]:
DeCAF_5 DeCAF_6 Fine-tuned DeCAF_6 GIST Graph-based Saliency ImageNet scores L*a*b* Histogram Late-fusion x Content MC-bit random Murray-CVPR-2012
style_Complementary_Colors 0.3683569 0.5483643 0.5140856 0.2225432 0.1113646 0.3890846 0.293766 0.4685007 0.3293508 0.1299992 0.440000
style_Duotones 0.3628165 0.7372331 0.6648225 0.2546116 0.2329081 0.3829415 0.581615 0.6764965 0.6117758 0.2586782 0.510000
style_HDR 0.4940769 0.5942884 0.5161139 0.123698 0.100939 0.3350302 0.1940499 0.6691423 0.6238012 0.0909909 0.640000
style_Image_Grain 0.5346317 0.5454793 0.563017 0.1035828 0.1035253 0.2188047 0.2125874 0.6472646 0.7435566 0.0992926 0.740000
style_Light_On_White 0.8049557 0.9149291 0.8604619 0.7041506 0.1720978 0.5084818 0.86734 0.9078907 0.8018531 0.1129146 0.730000
style_Long_Exposure 0.207902 0.4308969 0.4435733 0.1588824 0.1465081 0.2421516 0.2316887 0.4526636 0.419627 0.1274396 0.430000
style_Macro 0.3757973 0.4266545 0.4876671 0.2692966 0.1605435 0.4375507 0.2298055 0.4779298 0.4132621 0.1541289 0.500000
style_Motion_Blur 0.3265708 0.4670489 0.3804504 0.1143102 0.1223063 0.186066 0.1166354 0.4777465 0.4584309 0.0931889 0.400000
style_Negative_Image 0.4270504 0.6190784 0.5607143 0.1886564 0.122612 0.3229297 0.2677185 0.5948597 0.4990895 0.103901 0.690000
style_Rule_of_Thirds 0.2686728 0.3526135 0.2903744 0.1665279 0.2279246 0.2437902 0.188014 0.3515689 0.2355964 0.1705617 0.300000
style_Shallow_DOF 0.5221978 0.6593021 0.6267157 0.2758458 0.2228438 0.5170692 0.331842 0.6235331 0.6369155 0.208029 0.480000
style_Silhouettes 0.6087679 0.8010796 0.8348417 0.2634183 0.1295271 0.40075 0.2605854 0.7910539 0.8011245 0.1169305 0.720000
style_Soft_Focus 0.2247693 0.3536739 0.304915 0.1258997 0.1142462 0.1699457 0.1269511 0.3119699 0.2901328 0.1022715 0.390000
style_Vanishing_Point 0.5269731 0.658135 0.6456404 0.1069214 0.1613084 0.541642 0.122763 0.6837973 0.6852887 0.09170469 0.570000
_mean 0.4323956 0.5791984 0.5495281 0.2198818 0.1520468 0.3497313 0.2875259 0.5810298 0.5392718 0.1328594 0.538571

In [20]:
conf_df = mc_metrics['feat_metrics']['fusion_ava_style_oct22,pascal_mc_for_fusion_ava_style_oct22 fp vw']['conf_df'].astype(float)
conf_df.index = [x.replace('style_', '') for x in conf_df.index]
conf_df.columns = [x.replace('style_', '') for x in conf_df.columns]
fig = vislab.dataset_viz.plot_conditional_occurrence(conf_df, sort_by_prior=False)
fig.savefig('/Users/sergeyk/work/aphrodite-writeup/figures/evaluation/ava_style_conf.pdf', bbox_inches='tight')



In [27]:
acc_df = mc_metrics['acc_df']
fig = vislab.results_viz.plot_top_k_accuracies(acc_df, font_size=16)
fig.savefig('/Users/sergeyk/work/aphrodite-writeup/figures/evaluation/ava_style_top_k.pdf', bbox_inches='tight')



In [28]:
column_order = ap_df.columns[(-ap_df.ix['_mean']).argsort().values]
ap_df.index = [x.replace('style_', '') for x in ap_df.index]
ap_df = ap_df.reindex_axis(column_order, axis=1)
ap_df.to_csv('/Users/sergeyk/work/aphrodite-writeup/results/ava_style_ap_df.csv')
fig = vislab.results_viz.plot_df_bar(ap_df, fontsize=14)
fig.savefig('/Users/sergeyk/work/aphrodite-writeup/figures/ava_style_ap_barplot.pdf', bbox_inches='tight')



In [32]:
del ap_df['random']
print ap_df.to_latex(float_format=lambda x: '%.3f'%x if not np.isnan(x) else '-')


\begin{tabular}{lllllrlllll}
\toprule
{} & Late-fusion x Content & DeCAF\_6 & Fine-tuned DeCAF\_6 & MC-bit &  Murray-CVPR-2012 & DeCAF\_5 & ImageNet scores & L*a*b* Histogram &  GIST & Graph-based Saliency \\
\midrule
Complementary\_Colors &                 0.469 &   0.548 &              0.514 &  0.329 &             0.440 &   0.368 &           0.389 &            0.294 & 0.223 &                0.111 \\
Duotones             &                 0.676 &   0.737 &              0.665 &  0.612 &             0.510 &   0.363 &           0.383 &            0.582 & 0.255 &                0.233 \\
HDR                  &                 0.669 &   0.594 &              0.516 &  0.624 &             0.640 &   0.494 &           0.335 &            0.194 & 0.124 &                0.101 \\
Image\_Grain          &                 0.647 &   0.545 &              0.563 &  0.744 &             0.740 &   0.535 &           0.219 &            0.213 & 0.104 &                0.104 \\
Light\_On\_White       &                 0.908 &   0.915 &              0.860 &  0.802 &             0.730 &   0.805 &           0.508 &            0.867 & 0.704 &                0.172 \\
Long\_Exposure        &                 0.453 &   0.431 &              0.444 &  0.420 &             0.430 &   0.208 &           0.242 &            0.232 & 0.159 &                0.147 \\
Macro                &                 0.478 &   0.427 &              0.488 &  0.413 &             0.500 &   0.376 &           0.438 &            0.230 & 0.269 &                0.161 \\
Motion\_Blur          &                 0.478 &   0.467 &              0.380 &  0.458 &             0.400 &   0.327 &           0.186 &            0.117 & 0.114 &                0.122 \\
Negative\_Image       &                 0.595 &   0.619 &              0.561 &  0.499 &             0.690 &   0.427 &           0.323 &            0.268 & 0.189 &                0.123 \\
Rule\_of\_Thirds       &                 0.352 &   0.353 &              0.290 &  0.236 &             0.300 &   0.269 &           0.244 &            0.188 & 0.167 &                0.228 \\
Shallow\_DOF          &                 0.624 &   0.659 &              0.627 &  0.637 &             0.480 &   0.522 &           0.517 &            0.332 & 0.276 &                0.223 \\
Silhouettes          &                 0.791 &   0.801 &              0.835 &  0.801 &             0.720 &   0.609 &           0.401 &            0.261 & 0.263 &                0.130 \\
Soft\_Focus           &                 0.312 &   0.354 &              0.305 &  0.290 &             0.390 &   0.225 &           0.170 &            0.127 & 0.126 &                0.114 \\
Vanishing\_Point      &                 0.684 &   0.658 &              0.646 &  0.685 &             0.570 &   0.527 &           0.542 &            0.123 & 0.107 &                0.161 \\
\_mean                &                 0.581 &   0.579 &              0.550 &  0.539 &             0.539 &   0.432 &           0.350 &            0.288 & 0.220 &                0.152 \\
\bottomrule
\end{tabular}