In [1]:
%load_ext autoreload
%autoreload 2
import re
import sklearn.metrics
import pandas as pd

import vislab
import vislab.results
import vislab._results
import vislab.datasets

In [2]:
label_df = vislab.datasets.wikipaintings.get_style_df()

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


[u'system.indexes', u'default', u'behance_dec28', u'behance_illustration_jan15', u'flickr_mar23', u'flickr_on_pinterest_80k_mar23', u'pascal_mar23', u'pascal_mc_mar23', u'pascal_mc_on_flickr_mar23', u'pascal_mc_on_pinterest_80k_mar23', u'pascal_mc_on_wikipaintings_mar23', u'pinterest_80k_mar23', u'pinterest_80k_on_flickr_mar23', u'wikipaintings_mar23', u'ava_style_oct22', u'ava_style_jul20']
Out[3]:
_id data features num_test num_train num_val quadratic results_name score_test score_val task
0 532f9ee59f00136077e998d5 wikipaintings_style_ALL [noise] 16492 49475 16492 None data_wikipaintings_style_ALL_features_['noise'... 0.041113 0.040755 clf
1 532fa19f9f00136077e9af6f wikipaintings_style_ALL [caffe_fc7] 16492 49475 16492 None data_wikipaintings_style_ALL_features_['caffe_... 0.426936 0.477634 clf

In [14]:
results_dirname = vislab.util.makedirs(vislab.config['paths']['shared_data'] + '/results')
results_df, preds_panel = vislab._results.load_pred_results(
    'wikipaintings_mar23', results_dirname, multiclass=True, force=False)
pred_prefix = 'pred'
print preds_panel.minor_axis


Results in collection wikipaintings_mar23: 2
Index([u'caffe_fc7 None vw', u'noise None vw'], dtype='object')

In [23]:
collection_name = 'wikipaintings_mar23'
cache_filename = '{}/{}_thresholds_and_accs.h5'.format(results_dirname, collection_name)
threshold_df, acc_df = vislab.results.learn_accuracy_thresholds_for_preds_panel(
    preds_panel, cache_filename)
del acc_df['noise None vw']
acc_df.columns = ['MC-bit accuracy']

In [24]:
acc_df.index = [_.replace('style_', '').replace('_', ' ') for _ in acc_df.index]
acc_df.sort('MC-bit accuracy')


Out[24]:
MC-bit accuracy
Symbolism 0.712406
Expressionism 0.720398
Art Nouveau (Modern) 0.727749
Nave Art (Primitivism) 0.729508
Surrealism 0.744432
Post-Impressionism 0.745107
Romanticism 0.758666
Realism 0.758855
Magic Realism 0.785494
Neoclassicism 0.801835
Abstract Expressionism 0.812500
Baroque 0.814592
Art Informel 0.820988
Impressionism 0.821556
Northern Renaissance 0.823251
High Renaissance 0.829096
Mannerism (Late Renaissance) 0.830409
Pop Art 0.833333
Early Renaissance 0.846910
Abstract Art 0.851032
Cubism 0.868550
Rococo 0.873348
Ukiyo-e 0.931818
Minimalism 0.942197
Color Field Painting 0.955801

25 rows × 1 columns


In [26]:
print acc_df.sort('MC-bit accuracy').to_latex()


\begin{tabular}{lr}
\toprule
{} &  MC-bit accuracy \\
\midrule
Symbolism                    &         0.712406 \\
Expressionism                &         0.720398 \\
Art Nouveau (Modern)         &         0.727749 \\
Nave Art (Primitivism)       &         0.729508 \\
Surrealism                   &         0.744432 \\
Post-Impressionism           &         0.745107 \\
Romanticism                  &         0.758666 \\
Realism                      &         0.758855 \\
Magic Realism                &         0.785494 \\
Neoclassicism                &         0.801835 \\
Abstract Expressionism       &         0.812500 \\
Baroque                      &         0.814592 \\
Art Informel                 &         0.820988 \\
Impressionism                &         0.821556 \\
Northern Renaissance         &         0.823251 \\
High Renaissance             &         0.829096 \\
Mannerism (Late Renaissance) &         0.830409 \\
Pop Art                      &         0.833333 \\
Early Renaissance            &         0.846910 \\
Abstract Art                 &         0.851032 \\
Cubism                       &         0.868550 \\
Rococo                       &         0.873348 \\
Ukiyo-e                      &         0.931818 \\
Minimalism                   &         0.942197 \\
Color Field Painting         &         0.955801 \\
\bottomrule
\end{tabular}


In [5]:
feat_to_evaluate = [
    u'decaf_fc6 False vw',
    #u'decaf_fc6,pascal_mc_for_decaf_fc6 pd vw',
    u'decaf_tuned_fc6 False vw',
    #u'decaf_tuned_fc6_flatten False vw',
    #u'decaf_tuned_fc6_ud None vw',
    #u'fusion_wikipaintings_oct25 None vw',
    u'fusion_wikipaintings_oct25,pascal_mc_for_fusion_wikipaintings_oct25 fp 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 [6]:
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_wikipaintings_oct25,pascal_mc_for_fusion_wikipaintings_oct25 fp vw': 'Late-fusion x Content',
    'mc_bit False vw': 'MC-bit',
    'decaf_imagenet None vw': 'ImageNet'
}

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_Abstract_Art                   0.328125  0.264984  0.293194      317
style_Abstract_Expressionism         0.290323  0.312303  0.300912      317
style_Art_Informel                   0.257143  0.255521  0.256329      317
style_Art_Nouveau_(Modern)           0.275986  0.242902  0.258389      317
style_Baroque                        0.340659  0.391167  0.364170      317
style_Color_Field_Painting           0.515588  0.678233  0.585831      317
style_Cubism                         0.352273  0.488959  0.409511      317
style_Early_Renaissance              0.438871  0.441640  0.440252      317
style_Expressionism                  0.291480  0.205047  0.240741      317
style_High_Renaissance               0.359621  0.360759  0.360190      316
style_Impressionism                  0.422343  0.488959  0.453216      317
style_Magic_Realism                  0.364865  0.425868  0.393013      317
style_Mannerism_(Late_Renaissance)   0.360947  0.384858  0.372519      317
style_Minimalism                     0.473810  0.627760  0.540027      317
style_Nave_Art_(Primitivism)         0.293478  0.255521  0.273187      317
style_Neoclassicism                  0.493976  0.388013  0.434629      317
style_Northern_Renaissance           0.485549  0.529968  0.506787      317
style_Pop_Art                        0.371747  0.315457  0.341297      317
style_Post-Impressionism             0.355649  0.268139  0.305755      317
style_Realism                        0.356589  0.290221  0.320000      317
style_Rococo                         0.477745  0.507886  0.492355      317
style_Romanticism                    0.406844  0.337539  0.368966      317
style_Surrealism                     0.224719  0.189274  0.205479      317
style_Symbolism                      0.345865  0.290221  0.315609      317
style_Ukiyo-e                        0.649485  0.794953  0.714894      317
accuracy: 0.389449772842

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_Abstract_Art                   0.249135  0.236842  0.242833      304
style_Abstract_Expressionism         0.266026  0.273026  0.269481      304
style_Art_Informel                   0.188596  0.141447  0.161654      304
style_Art_Nouveau_(Modern)           0.197605  0.108553  0.140127      304
style_Baroque                        0.256410  0.197368  0.223048      304
style_Color_Field_Painting           0.494652  0.608553  0.545723      304
style_Cubism                         0.286082  0.365132  0.320809      304
style_Early_Renaissance              0.280193  0.382838  0.323570      303
style_Expressionism                  0.146789  0.105263  0.122605      304
style_High_Renaissance               0.220472  0.184818  0.201077      303
style_Impressionism                  0.273349  0.394737  0.323015      304
style_Magic_Realism                  0.297468  0.309211  0.303226      304
style_Mannerism_(Late_Renaissance)   0.220503  0.375000  0.277710      304
style_Minimalism                     0.426887  0.595395  0.497253      304
style_Nave_Art_(Primitivism)         0.209945  0.125000  0.156701      304
style_Neoclassicism                  0.357724  0.144737  0.206089      304
style_Northern_Renaissance           0.250000  0.210526  0.228571      304
style_Pop_Art                        0.247059  0.276316  0.260870      304
style_Post-Impressionism             0.230769  0.207237  0.218371      304
style_Realism                        0.227488  0.157895  0.186408      304
style_Rococo                         0.287212  0.450658  0.350832      304
style_Romanticism                    0.323864  0.187500  0.237500      304
style_Surrealism                     0.153846  0.105263  0.125000      304
style_Symbolism                      0.265385  0.226974  0.244681      304
style_Ukiyo-e                        0.364162  0.621711  0.459295      304
accuracy: 0.279678862859

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_Abstract_Art                   0.324723  0.277603  0.299320      317
style_Abstract_Expressionism         0.280864  0.287066  0.283931      317
style_Art_Informel                   0.200772  0.164038  0.180556      317
style_Art_Nouveau_(Modern)           0.333333  0.296530  0.313856      317
style_Baroque                        0.326478  0.400631  0.359773      317
style_Color_Field_Painting           0.562500  0.652997  0.604380      317
style_Cubism                         0.365672  0.463722  0.408901      317
style_Early_Renaissance              0.438953  0.476341  0.456884      317
style_Expressionism                  0.318367  0.246057  0.277580      317
style_High_Renaissance               0.348765  0.357595  0.353125      316
style_Impressionism                  0.420213  0.498423  0.455988      317
style_Magic_Realism                  0.392265  0.447950  0.418262      317
style_Mannerism_(Late_Renaissance)   0.367647  0.394322  0.380518      317
style_Minimalism                     0.482063  0.678233  0.563565      317
style_Nave_Art_(Primitivism)         0.270463  0.239748  0.254181      317
style_Neoclassicism                  0.512821  0.378549  0.435572      317
style_Northern_Renaissance           0.386707  0.403785  0.395062      317
style_Pop_Art                        0.375000  0.359621  0.367150      317
style_Post-Impressionism             0.369048  0.293375  0.326889      317
style_Realism                        0.332192  0.305994  0.318555      317
style_Rococo                         0.480938  0.517350  0.498480      317
style_Romanticism                    0.393305  0.296530  0.338129      317
style_Surrealism                     0.210084  0.157729  0.180180      317
style_Symbolism                      0.320132  0.305994  0.312903      317
style_Ukiyo-e                        0.647215  0.769716  0.703170      317
accuracy: 0.386799596164

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************fusion_wikipaintings_oct25,pascal_mc_for_fusion_wikipaintings_oct25 fp vw********************
------------------------------------------------------------
Classification metrics on {} balanced
                                    precision    recall  f1-score  support
style_Abstract_Art                   0.532468  0.258675  0.348195      317
style_Abstract_Expressionism         0.350923  0.419558  0.382184      317
style_Art_Informel                   0.358108  0.167192  0.227957      317
style_Art_Nouveau_(Modern)           0.433526  0.473186  0.452489      317
style_Baroque                        0.450980  0.507886  0.477745      317
style_Color_Field_Painting           0.694631  0.652997  0.673171      317
style_Cubism                         0.514754  0.495268  0.504823      317
style_Early_Renaissance              0.647059  0.520505  0.576923      317
style_Expressionism                  0.270341  0.324921  0.295129      317
style_High_Renaissance               0.539216  0.348101  0.423077      316
style_Impressionism                  0.540717  0.523659  0.532051      317
style_Magic_Realism                  0.661376  0.394322  0.494071      317
style_Mannerism_(Late_Renaissance)   0.535714  0.425868  0.474517      317
style_Minimalism                     0.611285  0.615142  0.613208      317
style_Nave_Art_(Primitivism)         0.482906  0.356467  0.410163      317
style_Neoclassicism                  0.647059  0.520505  0.576923      317
style_Northern_Renaissance           0.608392  0.548896  0.577114      317
style_Pop_Art                        0.582938  0.388013  0.465909      317
style_Post-Impressionism             0.318486  0.451104  0.373368      317
style_Realism                        0.291367  0.511041  0.371134      317
style_Rococo                         0.648352  0.558360  0.600000      317
style_Romanticism                    0.376582  0.375394  0.375987      317
style_Surrealism                     0.199280  0.523659  0.288696      317
style_Symbolism                      0.380952  0.403785  0.392037      317
style_Ukiyo-e                        0.911032  0.807571  0.856187      317
accuracy: 0.462897526502

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_Abstract_Art                   0.402439  0.312303  0.351687      317
style_Abstract_Expressionism         0.340426  0.403785  0.369408      317
style_Art_Informel                   0.302632  0.217666  0.253211      317
style_Art_Nouveau_(Modern)           0.423529  0.454259  0.438356      317
style_Baroque                        0.410334  0.425868  0.417957      317
style_Color_Field_Painting           0.591781  0.681388  0.633431      317
style_Cubism                         0.408313  0.526814  0.460055      317
style_Early_Renaissance              0.511299  0.570978  0.539493      317
style_Expressionism                  0.283019  0.331230  0.305233      317
style_High_Renaissance               0.400000  0.360759  0.379368      316
style_Impressionism                  0.406122  0.627760  0.493185      317
style_Magic_Realism                  0.577093  0.413249  0.481618      317
style_Mannerism_(Late_Renaissance)   0.438806  0.463722  0.450920      317
style_Minimalism                     0.521739  0.567823  0.543807      317
style_Nave_Art_(Primitivism)         0.445205  0.410095  0.426929      317
style_Neoclassicism                  0.615721  0.444795  0.516484      317
style_Northern_Renaissance           0.482759  0.529968  0.505263      317
style_Pop_Art                        0.533898  0.397476  0.455696      317
style_Post-Impressionism             0.384937  0.290221  0.330935      317
style_Realism                        0.365132  0.350158  0.357488      317
style_Rococo                         0.491979  0.580442  0.532562      317
style_Romanticism                    0.402878  0.353312  0.376471      317
style_Surrealism                     0.342205  0.283912  0.310345      317
style_Symbolism                      0.370262  0.400631  0.384848      317
style_Ukiyo-e                        0.839623  0.842271  0.840945      317
accuracy: 0.44964664311

Looks like the preds frame already has gt info.
Only taking 'test' split predictions.
********************random********************
/Users/sergeyk/work/vislab/vislab/results.py:72: UserWarning: The precision and recall are equal to zero for some labels. fbeta_score is ill defined for those labels [ True]. 
  pred_df['label'], pred_df['pred_bin'])
/Users/sergeyk/work/vislab/vislab/results.py:72: UserWarning: The sum of true positives and false positives are equal to zero for some labels. Precision is ill defined for those labels [False]. The precision and recall are equal to zero for some labels. fbeta_score is ill defined for those labels [False]. 
  pred_df['label'], pred_df['pred_bin'])
------------------------------------------------------------
Classification metrics on {} balanced
                                    precision    recall  f1-score  support
style_Abstract_Art                   0.029801  0.028391  0.029079      317
style_Abstract_Expressionism         0.051020  0.047319  0.049100      317
style_Art_Informel                   0.037543  0.034700  0.036066      317
style_Art_Nouveau_(Modern)           0.041534  0.041009  0.041270      317
style_Baroque                        0.028391  0.028391  0.028391      317
style_Color_Field_Painting           0.050420  0.056782  0.053412      317
style_Cubism                         0.046358  0.044164  0.045234      317
style_Early_Renaissance              0.027523  0.028391  0.027950      317
style_Expressionism                  0.040816  0.044164  0.042424      317
style_High_Renaissance               0.027108  0.028481  0.027778      316
style_Impressionism                  0.035144  0.034700  0.034921      317
style_Magic_Realism                  0.021212  0.022082  0.021638      317
style_Mannerism_(Late_Renaissance)   0.033223  0.031546  0.032362      317
style_Minimalism                     0.035503  0.037855  0.036641      317
style_Nave_Art_(Primitivism)         0.055172  0.050473  0.052718      317
style_Neoclassicism                  0.038348  0.041009  0.039634      317
style_Northern_Renaissance           0.039088  0.037855  0.038462      317
style_Pop_Art                        0.025000  0.022082  0.023451      317
style_Post-Impressionism             0.034985  0.037855  0.036364      317
style_Realism                        0.038835  0.037855  0.038339      317
style_Rococo                         0.040404  0.037855  0.039088      317
style_Romanticism                    0.046296  0.047319  0.046802      317
style_Surrealism                     0.037037  0.041009  0.038922      317
style_Symbolism                      0.015674  0.015773  0.015723      317
style_Ukiyo-e                        0.036304  0.034700  0.035484      317
accuracy: 0.036471479051


In [7]:
conf_df = mc_metrics['feat_metrics']['fusion_wikipaintings_oct25,pascal_mc_for_fusion_wikipaintings_oct25 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, font_size=16)
fig.savefig('/Users/sergeyk/work/aphrodite-writeup/figures/evaluation/wikipaintings_conf.pdf', bbox_inches='tight')



In [7]:
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/wikipaintings_top_k.pdf', bbox_inches='tight')



In [8]:
ap_df = mc_metrics['ap_df']
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/wikipaintings_ap_df.csv')
fig = vislab.results_viz.plot_df_bar(ap_df, fontsize=14)
fig.savefig('/Users/sergeyk/work/aphrodite-writeup/figures/wikipaintings_ap_barplot.pdf', bbox_inches='tight')



In [9]:
ap_df


Out[9]:
Late-fusion x Content MC-bit DeCAF_6 Fine-tuned DeCAF_6 ImageNet random
Abstract_Art 0.3408741 0.314286 0.2581126 0.2327877 0.1919652 0.04458511
Abstract_Expressionism 0.3511457 0.340092 0.2427984 0.2217563 0.1591215 0.04248396
Art_Informel 0.2205038 0.2172885 0.1873358 0.1584967 0.1378139 0.04490386
Art_Nouveau_(Modern) 0.4209187 0.4020631 0.1966565 0.2188454 0.0959655 0.04410202
Baroque 0.4358401 0.3861757 0.313266 0.3301908 0.1621591 0.04315334
Color_Field_Painting 0.7729533 0.7385744 0.6889791 0.7030232 0.5031868 0.04675067
Cubism 0.4946188 0.4875746 0.3998066 0.4269867 0.1931283 0.04124769
Early_Renaissance 0.5779964 0.5589526 0.4531317 0.4235125 0.1924041 0.04391501
Expressionism 0.2345758 0.2296231 0.1862808 0.1864192 0.09266244 0.04203498
High_Renaissance 0.4006721 0.3449425 0.2878271 0.2808455 0.1651937 0.04193798
Impressionism 0.5860341 0.5275845 0.4112192 0.4332585 0.2273747 0.04213495
Magic_Realism 0.5213222 0.465428 0.427639 0.4346304 0.1979401 0.04029367
Mannerism_(Late_Renaissance) 0.5050997 0.4387333 0.3562755 0.3586191 0.170793 0.04085562
Minimalism 0.6597822 0.6139783 0.6035631 0.6361203 0.4486967 0.04118817
Nave_Art_(Primitivism) 0.3952866 0.4246116 0.2249727 0.2097868 0.1114974 0.04827145
Neoclassicism 0.6006608 0.5369265 0.3986599 0.4376815 0.1794897 0.04343214
Northern_Renaissance 0.5603976 0.4782201 0.4329004 0.3385602 0.1194115 0.0428254
Pop_Art 0.4409714 0.3979092 0.2807598 0.3041805 0.16347 0.04104864
Post-Impressionism 0.3482422 0.3481652 0.2921657 0.3172412 0.1351095 0.0426341
Realism 0.407858 0.3089611 0.265889 0.2654375 0.1594275 0.04183101
Rococo 0.6158318 0.5476848 0.4674117 0.5006484 0.2422815 0.04204905
Romanticism 0.3920337 0.3889378 0.3433306 0.2645811 0.1845379 0.05087902
Surrealism 0.2622257 0.246988 0.1338807 0.1518604 0.09890591 0.04549665
Symbolism 0.3899539 0.3895733 0.2596021 0.2963766 0.1724564 0.04415311
Ukiyo-e 0.8951411 0.8936194 0.7879372 0.7650901 0.2598779 0.0422402
_mean 0.4732376 0.4410757 0.3560161 0.3558775 0.1905948 0.04337791

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


\begin{tabular}{llllll}
\toprule
{} & Late-fusion x Content & MC-bit & DeCAF\_6 & Fine-tuned DeCAF\_6 & ImageNet \\
\midrule
Abstract\_Art                 &                 0.341 &  0.314 &   0.258 &              0.233 &    0.192 \\
Abstract\_Expressionism       &                 0.351 &  0.340 &   0.243 &              0.222 &    0.159 \\
Art\_Informel                 &                 0.221 &  0.217 &   0.187 &              0.158 &    0.138 \\
Art\_Nouveau\_(Modern)         &                 0.421 &  0.402 &   0.197 &              0.219 &    0.096 \\
Baroque                      &                 0.436 &  0.386 &   0.313 &              0.330 &    0.162 \\
Color\_Field\_Painting         &                 0.773 &  0.739 &   0.689 &              0.703 &    0.503 \\
Cubism                       &                 0.495 &  0.488 &   0.400 &              0.427 &    0.193 \\
Early\_Renaissance            &                 0.578 &  0.559 &   0.453 &              0.424 &    0.192 \\
Expressionism                &                 0.235 &  0.230 &   0.186 &              0.186 &    0.093 \\
High\_Renaissance             &                 0.401 &  0.345 &   0.288 &              0.281 &    0.165 \\
Impressionism                &                 0.586 &  0.528 &   0.411 &              0.433 &    0.227 \\
Magic\_Realism                &                 0.521 &  0.465 &   0.428 &              0.435 &    0.198 \\
Mannerism\_(Late\_Renaissance) &                 0.505 &  0.439 &   0.356 &              0.359 &    0.171 \\
Minimalism                   &                 0.660 &  0.614 &   0.604 &              0.636 &    0.449 \\
Nave\_Art\_(Primitivism)       &                 0.395 &  0.425 &   0.225 &              0.210 &    0.111 \\
Neoclassicism                &                 0.601 &  0.537 &   0.399 &              0.438 &    0.179 \\
Northern\_Renaissance         &                 0.560 &  0.478 &   0.433 &              0.339 &    0.119 \\
Pop\_Art                      &                 0.441 &  0.398 &   0.281 &              0.304 &    0.163 \\
Post-Impressionism           &                 0.348 &  0.348 &   0.292 &              0.317 &    0.135 \\
Realism                      &                 0.408 &  0.309 &   0.266 &              0.265 &    0.159 \\
Rococo                       &                 0.616 &  0.548 &   0.467 &              0.501 &    0.242 \\
Romanticism                  &                 0.392 &  0.389 &   0.343 &              0.265 &    0.185 \\
Surrealism                   &                 0.262 &  0.247 &   0.134 &              0.152 &    0.099 \\
Symbolism                    &                 0.390 &  0.390 &   0.260 &              0.296 &    0.172 \\
Ukiyo-e                      &                 0.895 &  0.894 &   0.788 &              0.765 &    0.260 \\
\_mean                        &                 0.473 &  0.441 &   0.356 &              0.356 &    0.191 \\
\bottomrule
\end{tabular}