diff --git a/tensorflow_privacy/privacy/membership_inference_attack/codelabs/privacy_risk_score_codelab.ipynb b/tensorflow_privacy/privacy/membership_inference_attack/codelabs/privacy_risk_score_codelab.ipynb index e400289..21a83c4 100644 --- a/tensorflow_privacy/privacy/membership_inference_attack/codelabs/privacy_risk_score_codelab.ipynb +++ b/tensorflow_privacy/privacy/membership_inference_attack/codelabs/privacy_risk_score_codelab.ipynb @@ -189,211 +189,211 @@ "Non-trainable params: 0\n", "_________________________________________________________________\n", "Epoch 1/100\n", - "200/200 [==============================] - 2s 8ms/step - loss: 2.0358 - accuracy: 0.2449 - val_loss: 1.7640 - val_accuracy: 0.3603\n", + "200/200 [==============================] - 2s 11ms/step - loss: 2.0612 - accuracy: 0.2296 - val_loss: 1.7651 - val_accuracy: 0.3543\n", "Epoch 2/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.6132 - accuracy: 0.4126 - val_loss: 1.4455 - val_accuracy: 0.4848\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.6134 - accuracy: 0.4093 - val_loss: 1.4970 - val_accuracy: 0.4533\n", "Epoch 3/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.4018 - accuracy: 0.4956 - val_loss: 1.3218 - val_accuracy: 0.5261\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.4312 - accuracy: 0.4798 - val_loss: 1.3316 - val_accuracy: 0.5254\n", "Epoch 4/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.2939 - accuracy: 0.5394 - val_loss: 1.2748 - val_accuracy: 0.5392\n", + "200/200 [==============================] - 2s 9ms/step - loss: 1.3117 - accuracy: 0.5308 - val_loss: 1.2511 - val_accuracy: 0.5495\n", "Epoch 5/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.2074 - accuracy: 0.5735 - val_loss: 1.1824 - val_accuracy: 0.5801\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.2103 - accuracy: 0.5715 - val_loss: 1.1634 - val_accuracy: 0.5906\n", "Epoch 6/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.1278 - accuracy: 0.6020 - val_loss: 1.1652 - val_accuracy: 0.5881\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.1535 - accuracy: 0.5943 - val_loss: 1.1286 - val_accuracy: 0.6007\n", "Epoch 7/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.0936 - accuracy: 0.6150 - val_loss: 1.1092 - val_accuracy: 0.6069\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.0921 - accuracy: 0.6147 - val_loss: 1.1256 - val_accuracy: 0.6005\n", "Epoch 8/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 1.0410 - accuracy: 0.6349 - val_loss: 1.0702 - val_accuracy: 0.6230\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.0472 - accuracy: 0.6319 - val_loss: 1.0726 - val_accuracy: 0.6266\n", "Epoch 9/100\n", - "200/200 [==============================] - 1s 6ms/step - loss: 0.9952 - accuracy: 0.6493 - val_loss: 1.0984 - val_accuracy: 0.6175\n", + "200/200 [==============================] - 2s 10ms/step - loss: 1.0173 - accuracy: 0.6434 - val_loss: 1.0692 - val_accuracy: 0.6228\n", "Epoch 10/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.9682 - accuracy: 0.6600 - val_loss: 1.0346 - val_accuracy: 0.6408\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.9775 - accuracy: 0.6543 - val_loss: 0.9961 - val_accuracy: 0.6544\n", "Epoch 11/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.9370 - accuracy: 0.6719 - val_loss: 1.0140 - val_accuracy: 0.6442\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.9361 - accuracy: 0.6747 - val_loss: 0.9996 - val_accuracy: 0.6519\n", "Epoch 12/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.9146 - accuracy: 0.6792 - val_loss: 0.9974 - val_accuracy: 0.6564\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.9077 - accuracy: 0.6815 - val_loss: 1.0096 - val_accuracy: 0.6526\n", "Epoch 13/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.8839 - accuracy: 0.6880 - val_loss: 1.0525 - val_accuracy: 0.6343\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.8918 - accuracy: 0.6865 - val_loss: 0.9685 - val_accuracy: 0.6624\n", "Epoch 14/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.8554 - accuracy: 0.7000 - val_loss: 1.0280 - val_accuracy: 0.6574\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.8501 - accuracy: 0.7016 - val_loss: 0.9513 - val_accuracy: 0.6737\n", "Epoch 15/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.8444 - accuracy: 0.7030 - val_loss: 0.9596 - val_accuracy: 0.6697\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.8402 - accuracy: 0.7041 - val_loss: 1.0338 - val_accuracy: 0.6449\n", "Epoch 16/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.8255 - accuracy: 0.7095 - val_loss: 0.9406 - val_accuracy: 0.6798\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.8218 - accuracy: 0.7099 - val_loss: 0.9843 - val_accuracy: 0.6588\n", "Epoch 17/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.8038 - accuracy: 0.7172 - val_loss: 1.0018 - val_accuracy: 0.6632\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.8029 - accuracy: 0.7167 - val_loss: 0.9515 - val_accuracy: 0.6724\n", "Epoch 18/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.8045 - accuracy: 0.7172 - val_loss: 0.9343 - val_accuracy: 0.6810\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.7858 - accuracy: 0.7230 - val_loss: 0.9279 - val_accuracy: 0.6790\n", "Epoch 19/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.7672 - accuracy: 0.7308 - val_loss: 0.9666 - val_accuracy: 0.6752\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.7609 - accuracy: 0.7316 - val_loss: 0.9664 - val_accuracy: 0.6705\n", "Epoch 20/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.7660 - accuracy: 0.7309 - val_loss: 0.9823 - val_accuracy: 0.6676\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.7452 - accuracy: 0.7352 - val_loss: 0.9328 - val_accuracy: 0.6880\n", "Epoch 21/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.7396 - accuracy: 0.7391 - val_loss: 0.9548 - val_accuracy: 0.6777\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.7412 - accuracy: 0.7378 - val_loss: 0.9045 - val_accuracy: 0.6869\n", "Epoch 22/100\n", - "200/200 [==============================] - 1s 6ms/step - loss: 0.7285 - accuracy: 0.7415 - val_loss: 0.9568 - val_accuracy: 0.6856\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.7174 - accuracy: 0.7468 - val_loss: 0.9313 - val_accuracy: 0.6844\n", "Epoch 23/100\n", - "200/200 [==============================] - 1s 6ms/step - loss: 0.7235 - accuracy: 0.7454 - val_loss: 0.9302 - val_accuracy: 0.6886\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.7113 - accuracy: 0.7481 - val_loss: 0.9915 - val_accuracy: 0.6594\n", "Epoch 24/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.7017 - accuracy: 0.7525 - val_loss: 0.9557 - val_accuracy: 0.6867\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6890 - accuracy: 0.7575 - val_loss: 0.9174 - val_accuracy: 0.6922\n", "Epoch 25/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6921 - accuracy: 0.7562 - val_loss: 0.9379 - val_accuracy: 0.6921\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6839 - accuracy: 0.7578 - val_loss: 0.9313 - val_accuracy: 0.6891\n", "Epoch 26/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6752 - accuracy: 0.7606 - val_loss: 0.9930 - val_accuracy: 0.6720\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6696 - accuracy: 0.7627 - val_loss: 0.9411 - val_accuracy: 0.6838\n", "Epoch 27/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6769 - accuracy: 0.7590 - val_loss: 0.9484 - val_accuracy: 0.6923\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6581 - accuracy: 0.7673 - val_loss: 0.9240 - val_accuracy: 0.6900\n", "Epoch 28/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6629 - accuracy: 0.7656 - val_loss: 0.9388 - val_accuracy: 0.6917\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6504 - accuracy: 0.7717 - val_loss: 0.9469 - val_accuracy: 0.6872\n", "Epoch 29/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6571 - accuracy: 0.7672 - val_loss: 0.9473 - val_accuracy: 0.6898\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6486 - accuracy: 0.7700 - val_loss: 0.9310 - val_accuracy: 0.6924\n", "Epoch 30/100\n", - "200/200 [==============================] - 1s 6ms/step - loss: 0.6494 - accuracy: 0.7690 - val_loss: 0.9819 - val_accuracy: 0.6849\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6389 - accuracy: 0.7761 - val_loss: 0.9203 - val_accuracy: 0.6977\n", "Epoch 31/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6554 - accuracy: 0.7663 - val_loss: 0.9548 - val_accuracy: 0.6901\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6198 - accuracy: 0.7808 - val_loss: 0.9639 - val_accuracy: 0.6865\n", "Epoch 32/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6218 - accuracy: 0.7806 - val_loss: 0.9712 - val_accuracy: 0.6741\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6234 - accuracy: 0.7810 - val_loss: 0.9300 - val_accuracy: 0.6978\n", "Epoch 33/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6199 - accuracy: 0.7808 - val_loss: 0.9795 - val_accuracy: 0.6824\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.6213 - accuracy: 0.7801 - val_loss: 0.9401 - val_accuracy: 0.6939\n", "Epoch 34/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6096 - accuracy: 0.7825 - val_loss: 0.9969 - val_accuracy: 0.6802\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5966 - accuracy: 0.7881 - val_loss: 0.9759 - val_accuracy: 0.6893\n", "Epoch 35/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.6156 - accuracy: 0.7806 - val_loss: 0.9656 - val_accuracy: 0.6839\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5935 - accuracy: 0.7905 - val_loss: 0.9545 - val_accuracy: 0.6918\n", "Epoch 36/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5957 - accuracy: 0.7885 - val_loss: 0.9679 - val_accuracy: 0.6905\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5843 - accuracy: 0.7943 - val_loss: 0.9762 - val_accuracy: 0.6881\n", "Epoch 37/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5996 - accuracy: 0.7862 - val_loss: 1.0140 - val_accuracy: 0.6847\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5841 - accuracy: 0.7923 - val_loss: 0.9974 - val_accuracy: 0.6932\n", "Epoch 38/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5943 - accuracy: 0.7890 - val_loss: 0.9588 - val_accuracy: 0.6992\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5705 - accuracy: 0.8001 - val_loss: 0.9882 - val_accuracy: 0.6956\n", "Epoch 39/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5895 - accuracy: 0.7924 - val_loss: 1.0227 - val_accuracy: 0.6876\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5755 - accuracy: 0.7966 - val_loss: 1.0226 - val_accuracy: 0.6828\n", "Epoch 40/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5755 - accuracy: 0.7959 - val_loss: 0.9813 - val_accuracy: 0.6912\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5720 - accuracy: 0.7977 - val_loss: 1.0234 - val_accuracy: 0.6865\n", "Epoch 41/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5767 - accuracy: 0.7946 - val_loss: 1.0326 - val_accuracy: 0.6819\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5625 - accuracy: 0.7990 - val_loss: 1.0069 - val_accuracy: 0.6901\n", "Epoch 42/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5606 - accuracy: 0.7993 - val_loss: 1.1191 - val_accuracy: 0.6622\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5516 - accuracy: 0.8031 - val_loss: 1.0525 - val_accuracy: 0.6834\n", "Epoch 43/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5489 - accuracy: 0.8054 - val_loss: 1.0608 - val_accuracy: 0.6795\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5506 - accuracy: 0.8029 - val_loss: 0.9840 - val_accuracy: 0.6958\n", "Epoch 44/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5465 - accuracy: 0.8066 - val_loss: 1.0195 - val_accuracy: 0.6887\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5461 - accuracy: 0.8055 - val_loss: 1.0448 - val_accuracy: 0.6848\n", "Epoch 45/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5403 - accuracy: 0.8073 - val_loss: 1.0288 - val_accuracy: 0.6901\n", - "Epoch 46/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5375 - accuracy: 0.8092 - val_loss: 1.0732 - val_accuracy: 0.6793\n" + "200/200 [==============================] - 2s 10ms/step - loss: 0.5351 - accuracy: 0.8098 - val_loss: 1.0133 - val_accuracy: 0.6991\n", + "Epoch 46/100\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ + "200/200 [==============================] - 2s 9ms/step - loss: 0.5219 - accuracy: 0.8157 - val_loss: 1.0694 - val_accuracy: 0.6729\n", "Epoch 47/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5312 - accuracy: 0.8089 - val_loss: 1.0477 - val_accuracy: 0.6851\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5232 - accuracy: 0.8121 - val_loss: 1.0447 - val_accuracy: 0.6902\n", "Epoch 48/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5348 - accuracy: 0.8073 - val_loss: 1.0623 - val_accuracy: 0.6823\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5180 - accuracy: 0.8149 - val_loss: 1.0495 - val_accuracy: 0.6907\n", "Epoch 49/100\n", - "200/200 [==============================] - 1s 6ms/step - loss: 0.5392 - accuracy: 0.8071 - val_loss: 1.0662 - val_accuracy: 0.6852\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5022 - accuracy: 0.8217 - val_loss: 1.0147 - val_accuracy: 0.6941\n", "Epoch 50/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5270 - accuracy: 0.8115 - val_loss: 1.0746 - val_accuracy: 0.6802\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5017 - accuracy: 0.8210 - val_loss: 1.0510 - val_accuracy: 0.6925\n", "Epoch 51/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5112 - accuracy: 0.8167 - val_loss: 1.0665 - val_accuracy: 0.6789\n", + "200/200 [==============================] - 2s 9ms/step - loss: 0.4997 - accuracy: 0.8230 - val_loss: 1.0620 - val_accuracy: 0.6935\n", "Epoch 52/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5082 - accuracy: 0.8185 - val_loss: 1.0820 - val_accuracy: 0.6839\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.5001 - accuracy: 0.8214 - val_loss: 1.1083 - val_accuracy: 0.6832\n", "Epoch 53/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5062 - accuracy: 0.8195 - val_loss: 1.1127 - val_accuracy: 0.6836\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4976 - accuracy: 0.8213 - val_loss: 1.0512 - val_accuracy: 0.6924\n", "Epoch 54/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5046 - accuracy: 0.8194 - val_loss: 1.1327 - val_accuracy: 0.6810\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4858 - accuracy: 0.8250 - val_loss: 1.0825 - val_accuracy: 0.6936\n", "Epoch 55/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4952 - accuracy: 0.8237 - val_loss: 1.0908 - val_accuracy: 0.6868\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4859 - accuracy: 0.8241 - val_loss: 1.1278 - val_accuracy: 0.6763\n", "Epoch 56/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.5086 - accuracy: 0.8181 - val_loss: 1.0766 - val_accuracy: 0.6876\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4839 - accuracy: 0.8275 - val_loss: 1.1310 - val_accuracy: 0.6900\n", "Epoch 57/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4831 - accuracy: 0.8266 - val_loss: 1.1173 - val_accuracy: 0.6884\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4805 - accuracy: 0.8295 - val_loss: 1.1174 - val_accuracy: 0.6838\n", "Epoch 58/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4883 - accuracy: 0.8230 - val_loss: 1.1164 - val_accuracy: 0.6855\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4836 - accuracy: 0.8278 - val_loss: 1.1538 - val_accuracy: 0.6884\n", "Epoch 59/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4881 - accuracy: 0.8249 - val_loss: 1.1151 - val_accuracy: 0.6828\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4816 - accuracy: 0.8278 - val_loss: 1.1088 - val_accuracy: 0.6831\n", "Epoch 60/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4891 - accuracy: 0.8250 - val_loss: 1.1092 - val_accuracy: 0.6842\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4589 - accuracy: 0.8351 - val_loss: 1.1430 - val_accuracy: 0.6827\n", "Epoch 61/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4806 - accuracy: 0.8279 - val_loss: 1.1259 - val_accuracy: 0.6821\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4633 - accuracy: 0.8337 - val_loss: 1.0974 - val_accuracy: 0.6935\n", "Epoch 62/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4816 - accuracy: 0.8267 - val_loss: 1.1461 - val_accuracy: 0.6736\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4562 - accuracy: 0.8362 - val_loss: 1.1591 - val_accuracy: 0.6809\n", "Epoch 63/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4599 - accuracy: 0.8349 - val_loss: 1.1267 - val_accuracy: 0.6877\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4604 - accuracy: 0.8340 - val_loss: 1.1722 - val_accuracy: 0.6778\n", "Epoch 64/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4650 - accuracy: 0.8325 - val_loss: 1.1498 - val_accuracy: 0.6827\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4536 - accuracy: 0.8378 - val_loss: 1.1837 - val_accuracy: 0.6740\n", "Epoch 65/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4720 - accuracy: 0.8303 - val_loss: 1.1468 - val_accuracy: 0.6819\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4773 - accuracy: 0.8281 - val_loss: 1.2039 - val_accuracy: 0.6746\n", "Epoch 66/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4769 - accuracy: 0.8293 - val_loss: 1.1620 - val_accuracy: 0.6857\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4444 - accuracy: 0.8400 - val_loss: 1.1762 - val_accuracy: 0.6784\n", "Epoch 67/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4621 - accuracy: 0.8326 - val_loss: 1.1993 - val_accuracy: 0.6746\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4452 - accuracy: 0.8404 - val_loss: 1.2105 - val_accuracy: 0.6767\n", "Epoch 68/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4496 - accuracy: 0.8381 - val_loss: 1.1665 - val_accuracy: 0.6803\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4444 - accuracy: 0.8387 - val_loss: 1.2040 - val_accuracy: 0.6763\n", "Epoch 69/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4463 - accuracy: 0.8378 - val_loss: 1.2094 - val_accuracy: 0.6858\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4482 - accuracy: 0.8383 - val_loss: 1.2023 - val_accuracy: 0.6807\n", "Epoch 70/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4453 - accuracy: 0.8399 - val_loss: 1.2300 - val_accuracy: 0.6736\n", + "200/200 [==============================] - 2s 9ms/step - loss: 0.4482 - accuracy: 0.8388 - val_loss: 1.1758 - val_accuracy: 0.6891\n", "Epoch 71/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4554 - accuracy: 0.8365 - val_loss: 1.1662 - val_accuracy: 0.6776\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4323 - accuracy: 0.8447 - val_loss: 1.1958 - val_accuracy: 0.6883\n", "Epoch 72/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4416 - accuracy: 0.8411 - val_loss: 1.2145 - val_accuracy: 0.6784\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4402 - accuracy: 0.8399 - val_loss: 1.2304 - val_accuracy: 0.6834\n", "Epoch 73/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4474 - accuracy: 0.8381 - val_loss: 1.2112 - val_accuracy: 0.6781\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4259 - accuracy: 0.8479 - val_loss: 1.2637 - val_accuracy: 0.6711\n", "Epoch 74/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4365 - accuracy: 0.8422 - val_loss: 1.2111 - val_accuracy: 0.6738\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4319 - accuracy: 0.8444 - val_loss: 1.1960 - val_accuracy: 0.6826\n", "Epoch 75/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4354 - accuracy: 0.8431 - val_loss: 1.2956 - val_accuracy: 0.6663\n", + "200/200 [==============================] - 2s 9ms/step - loss: 0.4332 - accuracy: 0.8420 - val_loss: 1.2422 - val_accuracy: 0.6868\n", "Epoch 76/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4268 - accuracy: 0.8457 - val_loss: 1.2118 - val_accuracy: 0.6826\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4207 - accuracy: 0.8477 - val_loss: 1.2335 - val_accuracy: 0.6802\n", "Epoch 77/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4190 - accuracy: 0.8479 - val_loss: 1.2825 - val_accuracy: 0.6732\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4284 - accuracy: 0.8452 - val_loss: 1.2575 - val_accuracy: 0.6802\n", "Epoch 78/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4423 - accuracy: 0.8407 - val_loss: 1.2410 - val_accuracy: 0.6757\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4129 - accuracy: 0.8502 - val_loss: 1.3147 - val_accuracy: 0.6734\n", "Epoch 79/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4301 - accuracy: 0.8438 - val_loss: 1.2291 - val_accuracy: 0.6786\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4300 - accuracy: 0.8448 - val_loss: 1.2489 - val_accuracy: 0.6795\n", "Epoch 80/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4337 - accuracy: 0.8418 - val_loss: 1.2695 - val_accuracy: 0.6854\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4190 - accuracy: 0.8490 - val_loss: 1.3098 - val_accuracy: 0.6658\n", "Epoch 81/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4209 - accuracy: 0.8480 - val_loss: 1.2480 - val_accuracy: 0.6764\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4192 - accuracy: 0.8475 - val_loss: 1.3094 - val_accuracy: 0.6794\n", "Epoch 82/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4267 - accuracy: 0.8456 - val_loss: 1.2956 - val_accuracy: 0.6762\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4179 - accuracy: 0.8474 - val_loss: 1.2586 - val_accuracy: 0.6812\n", "Epoch 83/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4112 - accuracy: 0.8517 - val_loss: 1.2998 - val_accuracy: 0.6745\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4101 - accuracy: 0.8509 - val_loss: 1.2885 - val_accuracy: 0.6766\n", "Epoch 84/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4202 - accuracy: 0.8487 - val_loss: 1.2688 - val_accuracy: 0.6775\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4076 - accuracy: 0.8521 - val_loss: 1.3107 - val_accuracy: 0.6728\n", "Epoch 85/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4338 - accuracy: 0.8434 - val_loss: 1.3085 - val_accuracy: 0.6786\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4095 - accuracy: 0.8510 - val_loss: 1.3321 - val_accuracy: 0.6797\n", "Epoch 86/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4105 - accuracy: 0.8525 - val_loss: 1.3298 - val_accuracy: 0.6762\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4051 - accuracy: 0.8535 - val_loss: 1.3349 - val_accuracy: 0.6755\n", "Epoch 87/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4154 - accuracy: 0.8493 - val_loss: 1.2965 - val_accuracy: 0.6755\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3985 - accuracy: 0.8536 - val_loss: 1.2849 - val_accuracy: 0.6760\n", "Epoch 88/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4042 - accuracy: 0.8543 - val_loss: 1.3223 - val_accuracy: 0.6790\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3933 - accuracy: 0.8576 - val_loss: 1.3214 - val_accuracy: 0.6799\n", "Epoch 89/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4088 - accuracy: 0.8523 - val_loss: 1.3251 - val_accuracy: 0.6754\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4005 - accuracy: 0.8537 - val_loss: 1.3200 - val_accuracy: 0.6793\n", "Epoch 90/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4008 - accuracy: 0.8557 - val_loss: 1.2946 - val_accuracy: 0.6830\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3939 - accuracy: 0.8561 - val_loss: 1.3327 - val_accuracy: 0.6755\n", "Epoch 91/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4057 - accuracy: 0.8530 - val_loss: 1.3121 - val_accuracy: 0.6815\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3904 - accuracy: 0.8565 - val_loss: 1.3969 - val_accuracy: 0.6770\n", "Epoch 92/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4049 - accuracy: 0.8543 - val_loss: 1.3541 - val_accuracy: 0.6765\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3989 - accuracy: 0.8554 - val_loss: 1.3437 - val_accuracy: 0.6761\n", "Epoch 93/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4090 - accuracy: 0.8529 - val_loss: 1.2951 - val_accuracy: 0.6746\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3921 - accuracy: 0.8578 - val_loss: 1.4248 - val_accuracy: 0.6763\n", "Epoch 94/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4057 - accuracy: 0.8545 - val_loss: 1.3573 - val_accuracy: 0.6743\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3781 - accuracy: 0.8609 - val_loss: 1.3771 - val_accuracy: 0.6728\n", "Epoch 95/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4067 - accuracy: 0.8524 - val_loss: 1.3811 - val_accuracy: 0.6710\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.4045 - accuracy: 0.8528 - val_loss: 1.4156 - val_accuracy: 0.6735\n", "Epoch 96/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.3892 - accuracy: 0.8591 - val_loss: 1.3791 - val_accuracy: 0.6712\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3998 - accuracy: 0.8536 - val_loss: 1.3608 - val_accuracy: 0.6770\n", "Epoch 97/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.3978 - accuracy: 0.8550 - val_loss: 1.3702 - val_accuracy: 0.6680\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3875 - accuracy: 0.8587 - val_loss: 1.4172 - val_accuracy: 0.6642\n", "Epoch 98/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4045 - accuracy: 0.8554 - val_loss: 1.4202 - val_accuracy: 0.6670\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3975 - accuracy: 0.8537 - val_loss: 1.3898 - val_accuracy: 0.6758\n", "Epoch 99/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.3891 - accuracy: 0.8602 - val_loss: 1.3683 - val_accuracy: 0.6712\n", + "200/200 [==============================] - 2s 9ms/step - loss: 0.3779 - accuracy: 0.8610 - val_loss: 1.3825 - val_accuracy: 0.6743\n", "Epoch 100/100\n", - "200/200 [==============================] - 1s 5ms/step - loss: 0.4081 - accuracy: 0.8506 - val_loss: 1.3715 - val_accuracy: 0.6707\n", + "200/200 [==============================] - 2s 10ms/step - loss: 0.3836 - accuracy: 0.8613 - val_loss: 1.4445 - val_accuracy: 0.6738\n", "Finished training.\n" ] } @@ -555,65 +555,65 @@ "output_type": "stream", "text": [ "Best-performing attacks over all slices\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.74 on slice CORRECTLY_CLASSIFIED=False\n", - " LOGISTIC_REGRESSION achieved an advantage of 0.40 on slice CORRECTLY_CLASSIFIED=False\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.75 on slice CORRECTLY_CLASSIFIED=False\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.39 on slice CORRECTLY_CLASSIFIED=False\n", "\n", "Best-performing attacks over slice: \"Entire dataset\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.61\n", - " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.21\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.62\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.21\n", "\n", "Best-performing attacks over slice: \"CLASS=0\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.66\n", - " LOGISTIC_REGRESSION achieved an advantage of 0.25\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.65\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.28\n", "\n", "Best-performing attacks over slice: \"CLASS=1\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.58\n", - " THRESHOLD_ATTACK achieved an advantage of 0.17\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.59\n", + " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.18\n", "\n", "Best-performing attacks over slice: \"CLASS=2\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.66\n", - " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.31\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.72\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.33\n", "\n", "Best-performing attacks over slice: \"CLASS=3\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.71\n", - " LOGISTIC_REGRESSION achieved an advantage of 0.35\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.68\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.30\n", "\n", "Best-performing attacks over slice: \"CLASS=4\"\n", - " THRESHOLD_ATTACK achieved an AUC of 0.64\n", - " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.25\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.68\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.28\n", "\n", "Best-performing attacks over slice: \"CLASS=5\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.65\n", - " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.26\n", + " THRESHOLD_ENTROPY_ATTACK achieved an AUC of 0.63\n", + " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.23\n", "\n", "Best-performing attacks over slice: \"CLASS=6\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.60\n", - " THRESHOLD_ATTACK achieved an advantage of 0.16\n", - "\n", - "Best-performing attacks over slice: \"CLASS=7\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.61\n", - " LOGISTIC_REGRESSION achieved an advantage of 0.25\n", - "\n", - "Best-performing attacks over slice: \"CLASS=8\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.58\n", - " THRESHOLD_ATTACK achieved an advantage of 0.16\n", - "\n", - "Best-performing attacks over slice: \"CLASS=9\"\n", " LOGISTIC_REGRESSION achieved an AUC of 0.59\n", " LOGISTIC_REGRESSION achieved an advantage of 0.19\n", "\n", + "Best-performing attacks over slice: \"CLASS=7\"\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.62\n", + " THRESHOLD_ATTACK achieved an advantage of 0.21\n", + "\n", + "Best-performing attacks over slice: \"CLASS=8\"\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.59\n", + " THRESHOLD_ENTROPY_ATTACK achieved an advantage of 0.17\n", + "\n", + "Best-performing attacks over slice: \"CLASS=9\"\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.64\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.22\n", + "\n", "Best-performing attacks over slice: \"CORRECTLY_CLASSIFIED=True\"\n", - " LOGISTIC_REGRESSION achieved an AUC of 0.51\n", - " THRESHOLD_ATTACK achieved an advantage of 0.05\n", + " LOGISTIC_REGRESSION achieved an AUC of 0.52\n", + " THRESHOLD_ATTACK achieved an advantage of 0.06\n", "\n", "Best-performing attacks over slice: \"CORRECTLY_CLASSIFIED=False\"\n", - " THRESHOLD_ENTROPY_ATTACK achieved an AUC of 0.75\n", - " LOGISTIC_REGRESSION achieved an advantage of 0.40\n" + " LOGISTIC_REGRESSION achieved an AUC of 0.75\n", + " LOGISTIC_REGRESSION achieved an advantage of 0.39\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -688,70 +688,75 @@ "text": [ "\n", "Privacy risk score analysis over slice: \"Entire dataset\"\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56143, 0.92450)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.60966, 0.10730)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56588, 0.87102)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=0\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.62567, 0.16380)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56207, 0.89200)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.62251, 0.26880)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.57677, 0.74680)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=1\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.61458, 0.29340)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56183, 0.79240)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.61579, 0.23560)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.58356, 0.64880)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=2\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.63724, 0.56740)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.61159, 0.84400)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.64815, 0.58580)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.62353, 0.80660)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=3\"\n", - " with 1.00000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00100)\n", - " with 0.90000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00100)\n", - " with 0.80000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00100)\n", - " with 0.70000 as the threshold on privacy risk score, the precision-recall pair is (0.77273, 0.00340)\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.65255, 0.35120)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.60833, 0.77660)\n", + " with 1.00000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00060)\n", + " with 0.90000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00060)\n", + " with 0.80000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00060)\n", + " with 0.70000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00060)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.62839, 0.60200)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.59257, 0.90320)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=4\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.61174, 0.41280)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.59076, 0.74920)\n", + " with 1.00000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00140)\n", + " with 0.90000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00140)\n", + " with 0.80000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00140)\n", + " with 0.70000 as the threshold on privacy risk score, the precision-recall pair is (1.00000, 0.00140)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.63558, 0.16220)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.57909, 0.87500)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=5\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.60540, 0.34520)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.58148, 0.89060)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.62834, 0.10820)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.57398, 0.87440)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=6\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.60929, 0.10760)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.57011, 0.69360)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.61623, 0.11240)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.57273, 0.70640)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=7\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.61250, 0.29400)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56678, 0.85040)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.62541, 0.15360)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.57991, 0.77720)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=8\"\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.54417, 0.92520)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.62054, 0.11120)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.55600, 0.81520)\n", "\n", "Privacy risk score analysis over slice: \"CLASS=9\"\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.61538, 0.08640)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56456, 0.78440)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.56808, 0.68920)\n", "\n", "Privacy risk score analysis over slice: \"CORRECTLY_CLASSIFIED=True\"\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.52433, 0.59775)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.53422, 0.43662)\n", "\n", "Privacy risk score analysis over slice: \"CORRECTLY_CLASSIFIED=False\"\n", - " with 0.70000 as the threshold on privacy risk score, the precision-recall pair is (0.70957, 0.36504)\n", - " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.68111, 0.67130)\n", - " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.63809, 0.87166)\n" + " with 0.70000 as the threshold on privacy risk score, the precision-recall pair is (0.71764, 0.35140)\n", + " with 0.60000 as the threshold on privacy risk score, the precision-recall pair is (0.68704, 0.64067)\n", + " with 0.50000 as the threshold on privacy risk score, the precision-recall pair is (0.64406, 0.84983)\n" ] } ], "source": [ "# compute privacy risk scores on all given data slices\n", - "risk_score_results = mia.privacy_risk_score_analysis(input,\n", - " SlicingSpec(\n", - " entire_dataset = True,\n", - " by_class = True,\n", - " by_classification_correctness = True))\n", + "risk_score_results = mia.run_privacy_risk_score_analysis(input,\n", + " SlicingSpec(\n", + " entire_dataset = True,\n", + " by_class = True,\n", + " by_classification_correctness = True))\n", "# print the summary of privacy risk score analysis\n", - "print(risk_score_results.summary())" + "print(risk_score_results.summary(threshold_list=[1, 0.9, 0.8, 0.7, 0.6, 0.5]))" ] }, {